Imported Upstream version 0.2.10
Alberto Garcia
10 years ago
0 | commit d88e91c9abc801266f3a5a06b3d9689307f6d9ba | |
1 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> | |
2 | Date: Wed Mar 19 12:04:31 2014 +0000 | |
3 | ||
4 | Release 0.2.10 | |
5 | ||
6 | NEWS | 29 +++++++++++++++++++++++++++++ | |
7 | configure.ac | 6 +++--- | |
8 | src/data/grl-media.c | 4 ++++ | |
9 | src/grl-registry.c | 2 ++ | |
10 | 4 files changed, 38 insertions(+), 3 deletions(-) | |
11 | ||
12 | commit b88a996231a70334f08bef1153d9cf88ab54f48e | |
13 | Author: Bastien Nocera <hadess@hadess.net> | |
14 | Date: Tue Mar 18 18:08:34 2014 +0100 | |
15 | ||
16 | pls: Set file size attribute | |
17 | ||
18 | https://bugzilla.gnome.org/show_bug.cgi?id=629002 | |
19 | ||
20 | libs/pls/grl-pls.c | 4 ++++ | |
21 | 1 file changed, 4 insertions(+) | |
22 | ||
23 | commit 09d9b0a88286a5bf29414187ebcf636474d83c75 | |
24 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> | |
25 | Date: Mon Mar 3 00:03:14 2014 +0000 | |
26 | ||
27 | core: Add metadata key for size | |
28 | ||
29 | Add GRL_METADATA_KEY_SIZE, and proper functions, that get/set the size in media | |
30 | size in bytes. | |
31 | ||
32 | https://bugzilla.gnome.org/show_bug.cgi?id=629002 | |
33 | ||
34 | doc/grilo/grilo-sections.txt | 2 ++ | |
35 | src/data/grl-media.c | 28 ++++++++++++++++++++++++++++ | |
36 | src/data/grl-media.h | 4 ++++ | |
37 | src/grl-metadata-key.c | 13 +++++++++++++ | |
38 | src/grl-metadata-key.h | 1 + | |
39 | 5 files changed, 48 insertions(+) | |
40 | ||
41 | commit 21e6fb514884251d5dfb042b56b78e687d05d5a0 | |
42 | Author: Bastien Nocera <hadess@hadess.net> | |
43 | Date: Fri Mar 14 14:01:39 2014 +0100 | |
44 | ||
45 | core: Add guards for public API | |
46 | ||
47 | Add guards for all the grl_data_* public API functions. | |
48 | ||
49 | https://bugzilla.gnome.org/show_bug.cgi?id=726340 | |
50 | ||
51 | src/data/grl-data.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++---- | |
52 | 1 file changed, 73 insertions(+), 6 deletions(-) | |
53 | ||
54 | commit 1d806abd6310e013035eb98347df700d93b11dd6 | |
55 | Author: Ryan Lortie <desrt@desrt.ca> | |
56 | Date: Wed Mar 12 15:35:03 2014 -0400 | |
57 | ||
58 | configure: don't hardcode lib64 | |
59 | ||
60 | If the user wants libraries installed in a directory called lib64 then | |
61 | they will specify this via the --libdir option. | |
62 | ||
63 | https://bugzilla.gnome.org/show_bug.cgi?id=726197 | |
64 | ||
65 | configure.ac | 11 ----------- | |
66 | 1 file changed, 11 deletions(-) | |
67 | ||
68 | commit 8f82675b221a15287e12546bb2fc8cc08f67c618 | |
69 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> | |
70 | Date: Sun Mar 9 21:54:21 2014 +0000 | |
71 | ||
72 | core: Rename variable | |
73 | ||
74 | src/grl-source.c | 6 +++--- | |
75 | 1 file changed, 3 insertions(+), 3 deletions(-) | |
76 | ||
77 | commit 90253afd0e30bc1e33a69c6cc6c89b28461dd04c | |
78 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> | |
79 | Date: Sun Mar 9 21:52:18 2014 +0000 | |
80 | ||
81 | doc: Update grl-inspect man page | |
82 | ||
83 | Add documentation about inspecting metadata keys. | |
84 | ||
85 | grl-inspect.1 | 14 ++++++++++---- | |
86 | 1 file changed, 10 insertions(+), 4 deletions(-) | |
87 | ||
88 | commit 4ce8e5056180a54c027e88b4c7ed9b11038aa029 | |
89 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> | |
90 | Date: Sun Mar 9 19:32:02 2014 +0000 | |
91 | ||
92 | test-ui: Show new registered metadata keys. | |
93 | ||
94 | tools/grilo-test-ui/main.c | 20 ++++++++++++++++++++ | |
95 | 1 file changed, 20 insertions(+) | |
96 | ||
97 | commit f2a3ad3cadffb35833dd8ab00280aaa62b0c2110 | |
98 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> | |
99 | Date: Sun Mar 9 19:31:21 2014 +0000 | |
100 | ||
101 | core: Add "metadata-key-added" signal | |
102 | ||
103 | This signal is emitted when a source registers a new custom metadata key. | |
104 | ||
105 | src/grl-registry.c | 36 ++++++++++++++++++++++++++++++++---- | |
106 | 1 file changed, 32 insertions(+), 4 deletions(-) | |
107 | ||
108 | commit 2c331dfe66e79459ca85a8fd8c888edbb9e30c45 | |
109 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> | |
110 | Date: Sun Mar 9 17:29:44 2014 +0000 | |
111 | ||
112 | core: Pull plugin leak | |
113 | ||
114 | src/grl-registry.c | 2 +- | |
115 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
116 | ||
117 | commit 1c3bd7f7d76f13c43f7d66d2836adac6f88cabd0 | |
118 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> | |
119 | Date: Sun Mar 9 16:11:33 2014 +0000 | |
120 | ||
121 | core: Use a hashtable to store metadatakeys | |
122 | ||
123 | Do not use a GParamSpecPool for it, as this class does not have a way to free | |
124 | it. | |
125 | ||
126 | Instead, use a GHashTable. | |
127 | ||
128 | src/grl-metadata-key.c | 908 ++++++++++++++++++++++++------------------------ | |
129 | src/grl-registry-priv.h | 8 +- | |
130 | src/grl-registry.c | 106 +++--- | |
131 | 3 files changed, 517 insertions(+), 505 deletions(-) | |
132 | ||
133 | commit 90aa982ee7a75da374424064d3ffe5552e3e3435 | |
134 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> | |
135 | Date: Sun Mar 9 00:36:49 2014 +0000 | |
136 | ||
137 | core: Free tags | |
138 | ||
139 | src/grl-source.c | 1 + | |
140 | 1 file changed, 1 insertion(+) | |
141 | ||
142 | commit 0c3913e2a01f8949c380dc3c5eb86c73020410d8 | |
143 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> | |
144 | Date: Sun Mar 9 00:03:32 2014 +0000 | |
145 | ||
146 | core: configurations are stored in a list | |
147 | ||
148 | When freeing the list of configurations, do not unref directly because they are | |
149 | inside a list. Use g_list_free_full() to do the job. | |
150 | ||
151 | src/grl-registry.c | 10 +++++++++- | |
152 | 1 file changed, 9 insertions(+), 1 deletion(-) | |
153 | ||
154 | commit 806a8598c34d5b408eeebd3b699d50a03bd5c105 | |
155 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> | |
156 | Date: Thu Mar 6 17:28:08 2014 +0000 | |
157 | ||
158 | core: Use g_clear_pointer/object when possible | |
159 | ||
160 | Reduces the number of lines and makes the code more readable. | |
161 | ||
162 | configure.ac | 2 +- | |
163 | libs/net/grl-net-mock.c | 37 ++++++++------------------- | |
164 | libs/net/grl-net-wc.c | 10 +++----- | |
165 | libs/pls/grl-pls.c | 32 ++++++----------------- | |
166 | src/grl-caps.c | 8 ++---- | |
167 | src/grl-plugin.c | 9 +++---- | |
168 | src/grl-range-value.c | 9 ++----- | |
169 | src/grl-registry.c | 31 ++++++----------------- | |
170 | src/grl-source.c | 13 +++------- | |
171 | tools/grilo-test-ui/main.c | 63 ++++++++++++---------------------------------- | |
172 | 10 files changed, 58 insertions(+), 156 deletions(-) | |
173 | ||
174 | commit 0d380b7e10b84740a54ec108df61fc4c62b43e0f | |
175 | Author: Bastien Nocera <hadess@hadess.net> | |
176 | Date: Fri Feb 28 21:22:32 2014 +0100 | |
177 | ||
178 | core: Add names to all the timeouts and idles | |
179 | ||
180 | For debugging purposes. | |
181 | ||
182 | https://bugzilla.gnome.org/show_bug.cgi?id=725419 | |
183 | ||
184 | libs/net/grl-net-wc.c | 1 + | |
185 | libs/pls/grl-pls.c | 5 +- | |
186 | src/grl-multiple.c | 8 ++- | |
187 | src/grl-source.c | 151 ++++++++++++++++++++++++++++++-------------------- | |
188 | 4 files changed, 101 insertions(+), 64 deletions(-) | |
189 | ||
190 | commit 5520b4e219d9a9e1dd66aefcd27b2bda2d040a8e | |
191 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> | |
192 | Date: Sun Mar 2 01:24:03 2014 +0000 | |
193 | ||
194 | core: Free registry resources before unreffing it | |
195 | ||
196 | We can't unref the registry to finalize all the sources and plugins, because | |
197 | they can try to access the registry again in their finalize method. | |
198 | ||
199 | This commit first finalizes the sources, plugins, and other resources, and at | |
200 | the end it unrefs the registry. | |
201 | ||
202 | https://bugzilla.gnome.org/show_bug.cgi?id=724660 | |
203 | ||
204 | src/grilo.c | 2 +- | |
205 | src/grl-registry-priv.h | 2 + | |
206 | src/grl-registry.c | 141 ++++++++++++++++++++++++------------------------ | |
207 | 3 files changed, 72 insertions(+), 73 deletions(-) | |
208 | ||
209 | commit 30823a258d7340436bf0c6f79f77cc2947d9086c | |
210 | Author: Marcus Lundblad <ml@update.uu.se> | |
211 | Date: Fri Feb 28 21:17:16 2014 +0000 | |
212 | ||
213 | Added Swedish translation | |
214 | ||
215 | po/LINGUAS | 1 + | |
216 | po/sv.po | 192 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
217 | 2 files changed, 193 insertions(+) | |
218 | ||
219 | commit f6b7305afcf1264f90e51004ea0eda95d4413089 | |
220 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> | |
221 | Date: Fri Feb 28 00:23:35 2014 +0000 | |
222 | ||
223 | build: Detect Vala presence | |
224 | ||
225 | Build vala bindings if vala is present. | |
226 | ||
227 | https://bugzilla.gnome.org/show_bug.cgi?id=724648 | |
228 | ||
229 | configure.ac | 51 +++++++++++++++++++++++++++++++-------------------- | |
230 | 1 file changed, 31 insertions(+), 20 deletions(-) | |
231 | ||
232 | commit 171211cfc75d241b0208308c198f0495e80f3f80 | |
233 | Author: Bastien Nocera <hadess@hadess.net> | |
234 | Date: Fri Feb 21 12:25:28 2014 +0100 | |
235 | ||
236 | core: Add documentation for source-tags | |
237 | ||
238 | Explain usage and commonly used tags. | |
239 | ||
240 | https://bugzilla.gnome.org/show_bug.cgi?id=724019 | |
241 | ||
242 | src/grl-source.c | 42 ++++++++++++++++++++++++++++++++++++++++++ | |
243 | 1 file changed, 42 insertions(+) | |
244 | ||
245 | commit 636ac50f093c11afbc68a0158fe8baaab363085b | |
246 | Author: Bastien Nocera <hadess@hadess.net> | |
247 | Date: Tue Feb 25 14:37:13 2014 +0100 | |
248 | ||
249 | core: Fix gtk-doc for source-tags | |
250 | ||
251 | They were referred to as "tags" in some places, and "source-tags" | |
252 | in others. | |
253 | ||
254 | src/grl-source.c | 10 +++++----- | |
255 | 1 file changed, 5 insertions(+), 5 deletions(-) | |
256 | ||
257 | commit 790f3508d5f805577f4d9187ab5bf6e89262d4b5 | |
258 | Author: Bastien Nocera <hadess@hadess.net> | |
259 | Date: Sun Feb 23 19:02:02 2014 +0100 | |
260 | ||
261 | pls: Fix build with grilo never installed | |
262 | ||
263 | This re-applies the fix from: | |
264 | https://git.gnome.org/browse/grilo/commit/?id=3f66bb29a2d0f81479a435c1fabc80c08c4961be | |
265 | ||
266 | Which got broken by the wrong de-duplicating done in | |
267 | 5f88b535800d1105439641795ddd2e07fd113744 | |
268 | ||
269 | https://bugzilla.gnome.org/show_bug.cgi?id=724871 | |
270 | ||
271 | libs/pls/Makefile.am | 2 +- | |
272 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
273 | ||
274 | commit bd2a3875e3460e8a93ba30a9c7841650669a8c3f | |
275 | Author: Bastien Nocera <hadess@hadess.net> | |
276 | Date: Fri Feb 21 12:30:26 2014 +0100 | |
277 | ||
278 | core: Fix API documentation typo | |
279 | ||
280 | ../../src/data/grl-data.c:389: warning: Parameter description | |
281 | for grl_data_get_boolean::key is missing in source code comment block. | |
282 | ||
283 | https://bugzilla.gnome.org/show_bug.cgi?id=724871 | |
284 | ||
285 | src/data/grl-data.c | 2 +- | |
286 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
287 | ||
288 | commit 5f88b535800d1105439641795ddd2e07fd113744 | |
289 | Author: Bastien Nocera <hadess@hadess.net> | |
290 | Date: Fri Feb 21 12:24:59 2014 +0100 | |
291 | ||
292 | pls: Fix redefinition of compiler args | |
293 | ||
294 | https://bugzilla.gnome.org/show_bug.cgi?id=724871 | |
295 | ||
296 | libs/pls/Makefile.am | 1 - | |
297 | 1 file changed, 1 deletion(-) | |
298 | ||
299 | commit 71def91bc93da36d1abf7332e899b5fd88dd1cf1 | |
300 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> | |
301 | Date: Fri Feb 21 00:35:42 2014 +0100 | |
302 | ||
303 | travis: Update package dependencies | |
304 | ||
305 | .travis.yml | 4 ++-- | |
306 | 1 file changed, 2 insertions(+), 2 deletions(-) | |
307 | ||
308 | commit 0defc30bd6e432cfb04c8956fef13d035d9c2178 | |
309 | Author: Bastien Nocera <hadess@hadess.net> | |
310 | Date: Mon Feb 10 12:39:44 2014 +0100 | |
311 | ||
312 | test-ui: Show "source-tags" property | |
313 | ||
314 | https://bugzilla.gnome.org/show_bug.cgi?id=724019 | |
315 | ||
316 | tools/grilo-test-ui/main.c | 28 ++++++++++++++++++++++++++++ | |
317 | 1 file changed, 28 insertions(+) | |
318 | ||
319 | commit 5fd88084afe8a7469fc65abe1eff3b0a7ac5488f | |
320 | Author: Bastien Nocera <hadess@hadess.net> | |
321 | Date: Mon Feb 10 12:37:40 2014 +0100 | |
322 | ||
323 | core: Add "source-tags" property | |
324 | ||
325 | So that more information can be conveyed about the source's content | |
326 | to the front-end applications, such as: | |
327 | - the genre of the media (tv, cinema, radio, music, etc.) | |
328 | - the countries the media is relevant to | |
329 | - whether the media served is from the same machine, or from | |
330 | the local network | |
331 | ||
332 | https://bugzilla.gnome.org/show_bug.cgi?id=724019 | |
333 | ||
334 | Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com> | |
335 | ||
336 | src/grl-source.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- | |
337 | src/grl-source.h | 2 ++ | |
338 | 2 files changed, 60 insertions(+), 1 deletion(-) | |
339 | ||
340 | commit 4f68bcff087ad0a073a86fbbeaec88a1dae2d4f3 | |
341 | Author: Bastien Nocera <hadess@hadess.net> | |
342 | Date: Tue Feb 18 16:46:21 2014 +0100 | |
343 | ||
344 | test-ui: Fix crasher on exit | |
345 | ||
346 | The test UI was crashing because we left closing through the | |
347 | "Close" button destroy the window, which left all the pointers | |
348 | dangling. | |
349 | ||
350 | https://bugzilla.gnome.org/show_bug.cgi?id=724658 | |
351 | ||
352 | tools/grilo-test-ui/main.c | 14 ++++++++++++-- | |
353 | 1 file changed, 12 insertions(+), 2 deletions(-) | |
354 | ||
355 | commit 4e38032dc0bdc62d868ebdb8c2d08983b5865760 | |
356 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> | |
357 | Date: Tue Feb 18 14:18:14 2014 +0000 | |
358 | ||
359 | Post-release version bump to 0.2.10 | |
360 | ||
361 | configure.ac | 2 +- | |
362 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
363 | ||
0 | 364 | commit c3add1a606383bd0e583d48cf85ad5c714ff1639 |
1 | 365 | Author: Juan A. Suarez Romero <jasuarez@igalia.com> |
2 | 366 | Date: Tue Feb 18 14:15:33 2014 +0000 |
0 | NEW in 0.2.10 | |
1 | ============= | |
2 | ||
3 | * Increase glib requirement to 2.34 or greater | |
4 | * Added new property in GrlSource: "source-tags" | |
5 | * Added new signal in GrlRegistry: "metadata-key-added" | |
6 | * Added new functions: grl_media_{set,get}_size() | |
7 | * Added new key: GRL_METADATA_KEY_SIZE | |
8 | * Updated man page | |
9 | * Several fixes, including: | |
10 | * BGO#629002 - Add GRL_METADATA_KEY_SIZE | |
11 | * BGO#724019 - core: Add "source-tags" property | |
12 | * BGO#724648 - Vala dependency is not correctly detected | |
13 | * BGO#724658 - test-ui: Fix crasher on exit | |
14 | * BGO#724660 - Warnings on exit | |
15 | * BGO#724871 - Warning fixes | |
16 | * BGO#725419 - core: Add names to all the timeouts and idles | |
17 | * BGO#726197 - grilo should not ignore ${libdir} and hardcode lib64 | |
18 | * BGO#726340 - core: Add guards for public API | |
19 | * Added/Updated support for i18n | |
20 | * Swedish (new) | |
21 | ||
22 | * Contributors to this release: | |
23 | Bastien Nocera <hadess@hadess.net> | |
24 | Juan A. Suarez Romero <jasuarez@igalia.com> | |
25 | Marcus Lundblad <ml@update.uu.se> | |
26 | Ryan Lortie <desrt@desrt.ca> | |
27 | ||
28 | ||
0 | 29 | NEW in 0.2.9 |
1 | 30 | ============ |
2 | 31 |
999 | 999 | END |
1000 | 1000 | AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) |
1001 | 1001 | fi |
1002 | fi]) | |
1002 | fi | |
1003 | ]) | |
1003 | 1004 | |
1004 | 1005 | dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not |
1005 | 1006 | dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further |
129 | 129 | public unowned string get_region_data (out unowned GLib.DateTime publication_date, string certificate); |
130 | 130 | public unowned string get_region_data_nth (uint index, out unowned GLib.DateTime publication_date, string certificate); |
131 | 131 | public unowned string get_site (); |
132 | public int get_size (); | |
132 | 133 | public unowned string get_source (); |
133 | 134 | public float get_start_time (); |
134 | 135 | public unowned string get_studio (); |
163 | 164 | public void set_region (string region); |
164 | 165 | public void set_region_data (string region, GLib.DateTime publication_date, string certificate); |
165 | 166 | public void set_site (string site); |
167 | public void set_size (int size); | |
166 | 168 | public void set_source (string source); |
167 | 169 | public void set_studio (string studio); |
168 | 170 | public void set_thumbnail (string thumbnail); |
448 | 450 | public bool register_source (Grl.Plugin plugin, Grl.Source source) throws GLib.Error; |
449 | 451 | public bool unload_plugin (string plugin_id) throws GLib.Error; |
450 | 452 | public bool unregister_source (Grl.Source source) throws GLib.Error; |
453 | public virtual signal void metadata_key_added (string p0); | |
451 | 454 | public virtual signal void source_added (Grl.Source p0); |
452 | 455 | public virtual signal void source_removed (Grl.Source p0); |
453 | 456 | } |
497 | 500 | public unowned Grl.Plugin get_plugin (); |
498 | 501 | public int get_rank (); |
499 | 502 | public Grl.MediaType get_supported_media (); |
503 | public unowned string get_tags (); | |
500 | 504 | public virtual bool may_resolve (Grl.Media media, Grl.KeyID key_id, out GLib.List<weak Grl.KeyID> missing_keys); |
501 | 505 | [NoWrapper] |
502 | 506 | public virtual void media_from_uri (Grl.SourceMediaFromUriSpec mfus); |
535 | 539 | public string source_id { owned get; set construct; } |
536 | 540 | [NoAccessorMethod] |
537 | 541 | public string source_name { owned get; set construct; } |
542 | [CCode (array_length = false, array_null_terminated = true)] | |
543 | [NoAccessorMethod] | |
544 | public string[] source_tags { owned get; set construct; } | |
538 | 545 | [NoAccessorMethod] |
539 | 546 | public Grl.MediaType supported_media { get; set construct; } |
540 | 547 | public virtual signal void content_changed (GLib.PtrArray p0, Grl.SourceChangeType p1, bool p2); |
0 | 0 | #! /bin/sh |
1 | 1 | # Guess values for system-dependent variables and create Makefiles. |
2 | # Generated by GNU Autoconf 2.69 for grilo 0.2.9. | |
2 | # Generated by GNU Autoconf 2.69 for grilo 0.2.10. | |
3 | 3 | # |
4 | 4 | # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=grilo;component=core>. |
5 | 5 | # |
590 | 590 | # Identity of this package. |
591 | 591 | PACKAGE_NAME='grilo' |
592 | 592 | PACKAGE_TARNAME='grilo' |
593 | PACKAGE_VERSION='0.2.9' | |
594 | PACKAGE_STRING='grilo 0.2.9' | |
593 | PACKAGE_VERSION='0.2.10' | |
594 | PACKAGE_STRING='grilo 0.2.10' | |
595 | 595 | PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=grilo;component=core' |
596 | 596 | PACKAGE_URL='https://wiki.gnome.org/Projects/Grilo' |
597 | 597 | |
1454 | 1454 | # Omit some internal or obsolete options to make the list less imposing. |
1455 | 1455 | # This message is too long to be a string in the A/UX 3.1 sh. |
1456 | 1456 | cat <<_ACEOF |
1457 | \`configure' configures grilo 0.2.9 to adapt to many kinds of systems. | |
1457 | \`configure' configures grilo 0.2.10 to adapt to many kinds of systems. | |
1458 | 1458 | |
1459 | 1459 | Usage: $0 [OPTION]... [VAR=VALUE]... |
1460 | 1460 | |
1524 | 1524 | |
1525 | 1525 | if test -n "$ac_init_help"; then |
1526 | 1526 | case $ac_init_help in |
1527 | short | recursive ) echo "Configuration of grilo 0.2.9:";; | |
1527 | short | recursive ) echo "Configuration of grilo 0.2.10:";; | |
1528 | 1528 | esac |
1529 | 1529 | cat <<\_ACEOF |
1530 | 1530 | |
1554 | 1554 | --enable-grl-pls Enable Grilo Pls library (default: auto) |
1555 | 1555 | --enable-debug include debug symbols |
1556 | 1556 | --enable-tests build unit tests |
1557 | --enable-vala Enable Vala plugin support | |
1557 | --enable-vala Enable Vala plugin support (default: auto) | |
1558 | 1558 | --enable-gtk-doc use gtk-doc to build documentation [[default=no]] |
1559 | 1559 | --enable-gtk-doc-html build documentation in html format [[default=yes]] |
1560 | 1560 | --enable-gtk-doc-pdf build documentation in pdf format [[default=no]] |
1671 | 1671 | test -n "$ac_init_help" && exit $ac_status |
1672 | 1672 | if $ac_init_version; then |
1673 | 1673 | cat <<\_ACEOF |
1674 | grilo configure 0.2.9 | |
1674 | grilo configure 0.2.10 | |
1675 | 1675 | generated by GNU Autoconf 2.69 |
1676 | 1676 | |
1677 | 1677 | Copyright (C) 2012 Free Software Foundation, Inc. |
1949 | 1949 | This file contains any messages produced by compilers while |
1950 | 1950 | running configure, to aid debugging if configure makes a mistake. |
1951 | 1951 | |
1952 | It was created by grilo $as_me 0.2.9, which was | |
1952 | It was created by grilo $as_me 0.2.10, which was | |
1953 | 1953 | generated by GNU Autoconf 2.69. Invocation command line was |
1954 | 1954 | |
1955 | 1955 | $ $0 $@ |
2813 | 2813 | |
2814 | 2814 | # Define the identity of the package. |
2815 | 2815 | PACKAGE='grilo' |
2816 | VERSION='0.2.9' | |
2816 | VERSION='0.2.10' | |
2817 | 2817 | |
2818 | 2818 | |
2819 | 2819 | cat >>confdefs.h <<_ACEOF |
2905 | 2905 | as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 |
2906 | 2906 | fi |
2907 | 2907 | fi |
2908 | ||
2908 | 2909 | |
2909 | 2910 | |
2910 | 2911 | |
11776 | 11777 | # Libtool library version, not to confuse with API version |
11777 | 11778 | # see http://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html |
11778 | 11779 | |
11779 | GRL_LT_VERSION=6:1:5 | |
11780 | GRLNET_LT_VERSION=1:6:1 | |
11781 | GRLPLS_LT_VERSION=0:1:0 | |
11780 | GRL_LT_VERSION=7:0:6 | |
11781 | GRLNET_LT_VERSION=1:7:1 | |
11782 | GRLPLS_LT_VERSION=0:2:0 | |
11782 | 11783 | |
11783 | 11784 | |
11784 | 11785 | |
11982 | 11983 | |
11983 | 11984 | if test "x${exec_prefix}" = "xNONE" ; then |
11984 | 11985 | exec_prefix="${prefix}" |
11985 | fi | |
11986 | ||
11987 | if test "${libdir}" = '${exec_prefix}/lib'; then | |
11988 | case `uname -m` in | |
11989 | x86_64|ppc64|powerpc64) | |
11990 | libdir='${exec_prefix}/lib64' | |
11991 | ;; | |
11992 | *) | |
11993 | libdir='${exec_prefix}/lib' | |
11994 | ;; | |
11995 | esac | |
11996 | 11986 | fi |
11997 | 11987 | |
11998 | 11988 | # Plugins directory |
12138 | 12128 | pkg_cv_DEPS_CFLAGS="$DEPS_CFLAGS" |
12139 | 12129 | elif test -n "$PKG_CONFIG"; then |
12140 | 12130 | if test -n "$PKG_CONFIG" && \ |
12141 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.32 \\ | |
12131 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.34 \\ | |
12142 | 12132 | gobject-2.0 \\ |
12143 | 12133 | gmodule-2.0 \\ |
12144 | 12134 | gio-2.0 \\ |
12145 | 12135 | libxml-2.0\""; } >&5 |
12146 | ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.32 \ | |
12136 | ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.34 \ | |
12147 | 12137 | gobject-2.0 \ |
12148 | 12138 | gmodule-2.0 \ |
12149 | 12139 | gio-2.0 \ |
12151 | 12141 | ac_status=$? |
12152 | 12142 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 |
12153 | 12143 | test $ac_status = 0; }; then |
12154 | pkg_cv_DEPS_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.32 \ | |
12144 | pkg_cv_DEPS_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.34 \ | |
12155 | 12145 | gobject-2.0 \ |
12156 | 12146 | gmodule-2.0 \ |
12157 | 12147 | gio-2.0 \ |
12167 | 12157 | pkg_cv_DEPS_LIBS="$DEPS_LIBS" |
12168 | 12158 | elif test -n "$PKG_CONFIG"; then |
12169 | 12159 | if test -n "$PKG_CONFIG" && \ |
12170 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.32 \\ | |
12160 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.34 \\ | |
12171 | 12161 | gobject-2.0 \\ |
12172 | 12162 | gmodule-2.0 \\ |
12173 | 12163 | gio-2.0 \\ |
12174 | 12164 | libxml-2.0\""; } >&5 |
12175 | ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.32 \ | |
12165 | ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.34 \ | |
12176 | 12166 | gobject-2.0 \ |
12177 | 12167 | gmodule-2.0 \ |
12178 | 12168 | gio-2.0 \ |
12180 | 12170 | ac_status=$? |
12181 | 12171 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 |
12182 | 12172 | test $ac_status = 0; }; then |
12183 | pkg_cv_DEPS_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.32 \ | |
12173 | pkg_cv_DEPS_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.34 \ | |
12184 | 12174 | gobject-2.0 \ |
12185 | 12175 | gmodule-2.0 \ |
12186 | 12176 | gio-2.0 \ |
12205 | 12195 | _pkg_short_errors_supported=no |
12206 | 12196 | fi |
12207 | 12197 | if test $_pkg_short_errors_supported = yes; then |
12208 | DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.32 \ | |
12198 | DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.34 \ | |
12209 | 12199 | gobject-2.0 \ |
12210 | 12200 | gmodule-2.0 \ |
12211 | 12201 | gio-2.0 \ |
12212 | 12202 | libxml-2.0" 2>&1` |
12213 | 12203 | else |
12214 | DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.32 \ | |
12204 | DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.34 \ | |
12215 | 12205 | gobject-2.0 \ |
12216 | 12206 | gmodule-2.0 \ |
12217 | 12207 | gio-2.0 \ |
12220 | 12210 | # Put the nasty error message in config.log where it belongs |
12221 | 12211 | echo "$DEPS_PKG_ERRORS" >&5 |
12222 | 12212 | |
12223 | as_fn_error $? "Package requirements (glib-2.0 >= 2.32 \ | |
12213 | as_fn_error $? "Package requirements (glib-2.0 >= 2.34 \ | |
12224 | 12214 | gobject-2.0 \ |
12225 | 12215 | gmodule-2.0 \ |
12226 | 12216 | gio-2.0 \ |
12718 | 12708 | # VALA BINDINGS |
12719 | 12709 | # ---------------------------------------------------------- |
12720 | 12710 | |
12721 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Vala plugin support is requested" >&5 | |
12722 | $as_echo_n "checking whether Vala plugin support is requested... " >&6; } | |
12723 | # Check whether --enable-vala was given. | |
12724 | if test "${enable_vala+set}" = set; then : | |
12725 | enableval=$enable_vala; enable_vala=$enableval have_vala=$enableval | |
12726 | else | |
12727 | enable_vala=autodetect have_vala=yes | |
12728 | fi | |
12729 | ||
12730 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_vala" >&5 | |
12731 | $as_echo "$enable_vala" >&6; } | |
12732 | if test "x$enable_vala" != "xno"; then | |
12733 | # Extract the first word of "valac", so it can be a program name with args. | |
12711 | # Extract the first word of "valac", so it can be a program name with args. | |
12734 | 12712 | set dummy valac; ac_word=$2 |
12735 | 12713 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
12736 | 12714 | $as_echo_n "checking for $ac_word... " >&6; } |
12770 | 12748 | fi |
12771 | 12749 | |
12772 | 12750 | |
12773 | if test "x$VALAC" = "x"; then | |
12774 | as_fn_error $? "No Vala compiler found." "$LINENO" 5 | |
12775 | fi | |
12776 | ||
12777 | # Extract the first word of "vala-gen-introspect", so it can be a program name with args. | |
12751 | # Extract the first word of "vala-gen-introspect", so it can be a program name with args. | |
12778 | 12752 | set dummy vala-gen-introspect; ac_word=$2 |
12779 | 12753 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
12780 | 12754 | $as_echo_n "checking for $ac_word... " >&6; } |
12814 | 12788 | fi |
12815 | 12789 | |
12816 | 12790 | |
12817 | if test "x$VALA_GEN_INTROSPECT" = "x"; then | |
12818 | as_fn_error $? "Cannot find \"vala-gen-introspect\" in your PATH" "$LINENO" 5 | |
12819 | fi | |
12820 | ||
12821 | # Extract the first word of "vapigen", so it can be a program name with args. | |
12791 | # Extract the first word of "vapigen", so it can be a program name with args. | |
12822 | 12792 | set dummy vapigen; ac_word=$2 |
12823 | 12793 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
12824 | 12794 | $as_echo_n "checking for $ac_word... " >&6; } |
12858 | 12828 | fi |
12859 | 12829 | |
12860 | 12830 | |
12861 | if test "x$VAPIGEN" = "x"; then | |
12862 | as_fn_error $? "Cannot fine \"vapigen\" in your PATH" "$LINENO" 5 | |
12831 | ||
12832 | # Check whether --enable-vala was given. | |
12833 | if test "${enable_vala+set}" = set; then : | |
12834 | enableval=$enable_vala; | |
12835 | case "$enableval" in | |
12836 | yes) | |
12837 | if test "x$VALAC" = "x"; then | |
12838 | as_fn_error $? "valac not found, install it or use --disable-vala" "$LINENO" 5 | |
12839 | fi | |
12840 | if test "x$VALA_GEN_INTROSPECT" = "x"; then | |
12841 | as_fn_error $? "vala-gen-introspect not found, install it or use --disable-vala" "$LINENO" 5 | |
12842 | fi | |
12843 | if test "x$VAPIGEN" = "x"; then | |
12844 | as_fn_error $? "vapigen not found, install it or use --disable-vala" "$LINENO" 5 | |
12845 | fi | |
12846 | ;; | |
12847 | no) | |
12848 | enable_vala=no | |
12849 | ;; | |
12850 | esac | |
12851 | ||
12852 | else | |
12853 | ||
12854 | if test "x$VALAC" != "x" -a "x$VALA_GEN_INTROSPECT" != "x" -a "x$VAPIGEN" != "x"; then | |
12855 | enable_vala=yes | |
12856 | else | |
12857 | enable_vala=no | |
12863 | 12858 | fi |
12864 | fi | |
12865 | if test "x$enable_vala" != "xno"; then | |
12859 | ||
12860 | fi | |
12861 | ||
12862 | ||
12863 | if test "x$enable_vala" = "xyes"; then | |
12866 | 12864 | HAVE_VALA_TRUE= |
12867 | 12865 | HAVE_VALA_FALSE='#' |
12868 | 12866 | else |
14553 | 14551 | # report actual input values of CONFIG_FILES etc. instead of their |
14554 | 14552 | # values after options handling. |
14555 | 14553 | ac_log=" |
14556 | This file was extended by grilo $as_me 0.2.9, which was | |
14554 | This file was extended by grilo $as_me 0.2.10, which was | |
14557 | 14555 | generated by GNU Autoconf 2.69. Invocation command line was |
14558 | 14556 | |
14559 | 14557 | CONFIG_FILES = $CONFIG_FILES |
14620 | 14618 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
14621 | 14619 | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" |
14622 | 14620 | ac_cs_version="\\ |
14623 | grilo config.status 0.2.9 | |
14621 | grilo config.status 0.2.10 | |
14624 | 14622 | configured by $0, generated by GNU Autoconf 2.69, |
14625 | 14623 | with options \\"\$ac_cs_config\\" |
14626 | 14624 |
8 | 8 | m4_define([prj_gir_name], [Grilo]) |
9 | 9 | m4_define([grl_major_version], [0]) |
10 | 10 | m4_define([grl_minor_version], [2]) |
11 | m4_define([grl_micro_version], [9]) | |
11 | m4_define([grl_micro_version], [10]) | |
12 | 12 | m4_define([prj_version], grl_major_version.grl_minor_version.grl_micro_version) |
13 | 13 | |
14 | 14 | AC_INIT([prj_name], |
56 | 56 | # Libtool library version, not to confuse with API version |
57 | 57 | # see http://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html |
58 | 58 | |
59 | GRL_LT_VERSION=6:1:5 | |
60 | GRLNET_LT_VERSION=1:6:1 | |
61 | GRLPLS_LT_VERSION=0:1:0 | |
59 | GRL_LT_VERSION=7:0:6 | |
60 | GRLNET_LT_VERSION=1:7:1 | |
61 | GRLPLS_LT_VERSION=0:2:0 | |
62 | 62 | |
63 | 63 | AC_SUBST([GRL_LT_VERSION]) |
64 | 64 | AC_SUBST([GRLNET_LT_VERSION]) |
101 | 101 | exec_prefix="${prefix}" |
102 | 102 | fi |
103 | 103 | |
104 | if test "${libdir}" = '${exec_prefix}/lib'; then | |
105 | case `uname -m` in | |
106 | x86_64|ppc64|powerpc64) | |
107 | libdir='${exec_prefix}/lib64' | |
108 | ;; | |
109 | *) | |
110 | libdir='${exec_prefix}/lib' | |
111 | ;; | |
112 | esac | |
113 | fi | |
114 | ||
115 | 104 | # Plugins directory |
116 | 105 | |
117 | 106 | GRL_PLUGINS_DIR=`eval echo ${libdir}/${GRL_NAME}` |
122 | 111 | # DEPENDENCIES |
123 | 112 | # ---------------------------------------------------------- |
124 | 113 | |
125 | PKG_CHECK_MODULES(DEPS, glib-2.0 >= 2.32 \ | |
114 | PKG_CHECK_MODULES(DEPS, glib-2.0 >= 2.34 \ | |
126 | 115 | gobject-2.0 \ |
127 | 116 | gmodule-2.0 \ |
128 | 117 | gio-2.0 \ |
251 | 240 | # VALA BINDINGS |
252 | 241 | # ---------------------------------------------------------- |
253 | 242 | |
254 | AC_MSG_CHECKING([whether Vala plugin support is requested]) | |
243 | AC_PATH_PROG([VALAC], [valac]) | |
244 | AC_PATH_PROG([VALA_GEN_INTROSPECT], [vala-gen-introspect]) | |
245 | AC_PATH_PROG([VAPIGEN], [vapigen]) | |
246 | ||
255 | 247 | AC_ARG_ENABLE([vala], |
256 | AS_HELP_STRING([--enable-vala],[Enable Vala plugin support]), | |
257 | [enable_vala=$enableval have_vala=$enableval], | |
258 | [enable_vala=autodetect have_vala=yes]) | |
259 | AC_MSG_RESULT([$enable_vala]) | |
260 | if test "x$enable_vala" != "xno"; then | |
261 | AC_PATH_PROG([VALAC], [valac]) | |
262 | if test "x$VALAC" = "x"; then | |
263 | AC_MSG_ERROR([No Vala compiler found.]) | |
248 | AS_HELP_STRING([--enable-vala], | |
249 | [Enable Vala plugin support (default: auto)]), | |
250 | [ | |
251 | case "$enableval" in | |
252 | yes) | |
253 | if test "x$VALAC" = "x"; then | |
254 | AC_MSG_ERROR([valac not found, install it or use --disable-vala]) | |
255 | fi | |
256 | if test "x$VALA_GEN_INTROSPECT" = "x"; then | |
257 | AC_MSG_ERROR([vala-gen-introspect not found, install it or use --disable-vala]) | |
258 | fi | |
259 | if test "x$VAPIGEN" = "x"; then | |
260 | AC_MSG_ERROR([vapigen not found, install it or use --disable-vala]) | |
261 | fi | |
262 | ;; | |
263 | no) | |
264 | enable_vala=no | |
265 | ;; | |
266 | esac | |
267 | ], | |
268 | [ | |
269 | if test "x$VALAC" != "x" -a "x$VALA_GEN_INTROSPECT" != "x" -a "x$VAPIGEN" != "x"; then | |
270 | enable_vala=yes | |
271 | else | |
272 | enable_vala=no | |
264 | 273 | fi |
265 | ||
266 | AC_PATH_PROG([VALA_GEN_INTROSPECT], [vala-gen-introspect]) | |
267 | if test "x$VALA_GEN_INTROSPECT" = "x"; then | |
268 | AC_MSG_ERROR([Cannot find "vala-gen-introspect" in your PATH]) | |
269 | fi | |
270 | ||
271 | AC_PATH_PROG([VAPIGEN], [vapigen]) | |
272 | if test "x$VAPIGEN" = "x"; then | |
273 | AC_MSG_ERROR([Cannot fine "vapigen" in your PATH]) | |
274 | fi | |
275 | fi | |
276 | AM_CONDITIONAL(HAVE_VALA, test "x$enable_vala" != "xno") | |
274 | ]) | |
275 | ||
276 | AM_CONDITIONAL([HAVE_VALA], [test "x$enable_vala" = "xyes"]) | |
277 | 277 | |
278 | 278 | # ---------------------------------------------------------- |
279 | 279 | # GTK-DOC |
379 | 379 | grl_media_get_url |
380 | 380 | grl_media_get_url_data |
381 | 381 | grl_media_get_url_data_nth |
382 | grl_media_get_size | |
382 | 383 | grl_media_serialize |
383 | 384 | grl_media_serialize_extended |
384 | 385 | grl_media_set_author |
409 | 410 | grl_media_set_title |
410 | 411 | grl_media_set_url |
411 | 412 | grl_media_set_url_data |
413 | grl_media_set_size | |
412 | 414 | grl_media_unserialize |
413 | 415 | <SUBSECTION Standard> |
414 | 416 | GRL_IS_MEDIA |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlCaps.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlCaps.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | 18 | <a href="#GrlCaps.object-hierarchy" class="shortcut">Object Hierarchy</a></span> |
19 | 19 | </td> |
20 | 20 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlConfig.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlConfig.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | 18 | <a href="#GrlConfig.object-hierarchy" class="shortcut">Object Hierarchy</a></span> |
19 | 19 | </td> |
20 | 20 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlData.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlData.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | 18 | <a href="#GrlData.object-hierarchy" class="shortcut">Object Hierarchy</a></span> |
19 | 19 | </td> |
20 | 20 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
712 | 712 | <col class="parameters_description"> |
713 | 713 | <col width="200px" class="parameters_annotations"> |
714 | 714 | </colgroup> |
715 | <tbody><tr> | |
716 | <td class="parameter_name"><p>data</p></td> | |
717 | <td class="parameter_description"><p>data to inspect | |
718 | <em class="parameter"><code>key</code></em> | |
719 | (type GrlKeyID): key to use</p></td> | |
720 | <td class="parameter_annotations"> </td> | |
721 | </tr></tbody> | |
715 | <tbody> | |
716 | <tr> | |
717 | <td class="parameter_name"><p>data</p></td> | |
718 | <td class="parameter_description"><p>data to inspect</p></td> | |
719 | <td class="parameter_annotations"> </td> | |
720 | </tr> | |
721 | <tr> | |
722 | <td class="parameter_name"><p>key</p></td> | |
723 | <td class="parameter_description"><p> key to use. </p></td> | |
724 | <td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> GrlKeyID]</span></td> | |
725 | </tr> | |
726 | </tbody> | |
722 | 727 | </table></div> |
723 | 728 | </div> |
724 | 729 | <div class="refsect3"> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlMedia.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlMedia.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | 18 | <a href="#GrlMedia.object-hierarchy" class="shortcut">Object Hierarchy</a></span> |
19 | 19 | </td> |
20 | 20 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
381 | 381 | </tr> |
382 | 382 | <tr> |
383 | 383 | <td class="function_type"> |
384 | <span class="returnvalue">gint</span> | |
385 | </td> | |
386 | <td class="function_name"> | |
387 | <a class="link" href="GrlMedia.html#grl-media-get-size" title="grl_media_get_size ()">grl_media_get_size</a> <span class="c_punctuation">()</span> | |
388 | </td> | |
389 | </tr> | |
390 | <tr> | |
391 | <td class="function_type"> | |
384 | 392 | <span class="returnvalue">gchar</span> * |
385 | 393 | </td> |
386 | 394 | <td class="function_name"> |
617 | 625 | </td> |
618 | 626 | <td class="function_name"> |
619 | 627 | <a class="link" href="GrlMedia.html#grl-media-set-url-data" title="grl_media_set_url_data ()">grl_media_set_url_data</a> <span class="c_punctuation">()</span> |
628 | </td> | |
629 | </tr> | |
630 | <tr> | |
631 | <td class="function_type"> | |
632 | <span class="returnvalue">void</span> | |
633 | </td> | |
634 | <td class="function_name"> | |
635 | <a class="link" href="GrlMedia.html#grl-media-set-size" title="grl_media_set_size ()">grl_media_set_size</a> <span class="c_punctuation">()</span> | |
620 | 636 | </td> |
621 | 637 | </tr> |
622 | 638 | <tr> |
2154 | 2170 | </div> |
2155 | 2171 | <hr> |
2156 | 2172 | <div class="refsect2"> |
2173 | <a name="grl-media-get-size"></a><h3>grl_media_get_size ()</h3> | |
2174 | <pre class="programlisting"><span class="returnvalue">gint</span> | |
2175 | grl_media_get_size (<em class="parameter"><code><a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> *media</code></em>);</pre> | |
2176 | <div class="refsect3"> | |
2177 | <a name="id-1.5.8.4.8.48.4"></a><h4>Parameters</h4> | |
2178 | <div class="informaltable"><table width="100%" border="0"> | |
2179 | <colgroup> | |
2180 | <col width="150px" class="parameters_name"> | |
2181 | <col class="parameters_description"> | |
2182 | <col width="200px" class="parameters_annotations"> | |
2183 | </colgroup> | |
2184 | <tbody><tr> | |
2185 | <td class="parameter_name"><p>media</p></td> | |
2186 | <td class="parameter_description"><p>the media object</p></td> | |
2187 | <td class="parameter_annotations"> </td> | |
2188 | </tr></tbody> | |
2189 | </table></div> | |
2190 | </div> | |
2191 | <div class="refsect3"> | |
2192 | <a name="id-1.5.8.4.8.48.5"></a><h4>Returns</h4> | |
2193 | <p> the media's size, in bytes or -1 if unknown.</p> | |
2194 | <p></p> | |
2195 | </div> | |
2196 | <p class="since">Since 0.2.10</p> | |
2197 | </div> | |
2198 | <hr> | |
2199 | <div class="refsect2"> | |
2157 | 2200 | <a name="grl-media-serialize"></a><h3>grl_media_serialize ()</h3> |
2158 | 2201 | <pre class="programlisting"><span class="returnvalue">gchar</span> * |
2159 | 2202 | grl_media_serialize (<em class="parameter"><code><a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> *media</code></em>);</pre> |
2160 | 2203 | <p>Serializes a GrlMedia into a string. It does a basic serialization.</p> |
2161 | 2204 | <p>See <a class="link" href="GrlMedia.html#grl-media-serialize-extended" title="grl_media_serialize_extended ()"><code class="function">grl_media_serialize_extended()</code></a> to get more serialization approaches.</p> |
2162 | 2205 | <div class="refsect3"> |
2163 | <a name="id-1.5.8.4.8.48.6"></a><h4>Parameters</h4> | |
2206 | <a name="id-1.5.8.4.8.49.6"></a><h4>Parameters</h4> | |
2164 | 2207 | <div class="informaltable"><table width="100%" border="0"> |
2165 | 2208 | <colgroup> |
2166 | 2209 | <col width="150px" class="parameters_name"> |
2175 | 2218 | </table></div> |
2176 | 2219 | </div> |
2177 | 2220 | <div class="refsect3"> |
2178 | <a name="id-1.5.8.4.8.48.7"></a><h4>Returns</h4> | |
2221 | <a name="id-1.5.8.4.8.49.7"></a><h4>Returns</h4> | |
2179 | 2222 | <p> serialized media</p> |
2180 | 2223 | <p></p> |
2181 | 2224 | </div> |
2196 | 2239 | with the properties to consider in serialization (id and source are |
2197 | 2240 | always considered).</p> |
2198 | 2241 | <div class="refsect3"> |
2199 | <a name="id-1.5.8.4.8.49.7"></a><h4>Parameters</h4> | |
2242 | <a name="id-1.5.8.4.8.50.7"></a><h4>Parameters</h4> | |
2200 | 2243 | <div class="informaltable"><table width="100%" border="0"> |
2201 | 2244 | <colgroup> |
2202 | 2245 | <col width="150px" class="parameters_name"> |
2223 | 2266 | </table></div> |
2224 | 2267 | </div> |
2225 | 2268 | <div class="refsect3"> |
2226 | <a name="id-1.5.8.4.8.49.8"></a><h4>Returns</h4> | |
2269 | <a name="id-1.5.8.4.8.50.8"></a><h4>Returns</h4> | |
2227 | 2270 | <p> serialized media</p> |
2228 | 2271 | <p></p> |
2229 | 2272 | </div> |
2237 | 2280 | <em class="parameter"><code>const <span class="type">gchar</span> *author</code></em>);</pre> |
2238 | 2281 | <p>Set the media's author</p> |
2239 | 2282 | <div class="refsect3"> |
2240 | <a name="id-1.5.8.4.8.50.5"></a><h4>Parameters</h4> | |
2283 | <a name="id-1.5.8.4.8.51.5"></a><h4>Parameters</h4> | |
2241 | 2284 | <div class="informaltable"><table width="100%" border="0"> |
2242 | 2285 | <colgroup> |
2243 | 2286 | <col width="150px" class="parameters_name"> |
2271 | 2314 | age certificate. Use <a class="link" href="GrlMedia.html#grl-media-set-region-data" title="grl_media_set_region_data ()"><code class="function">grl_media_set_region_data()</code></a> to |
2272 | 2315 | set other age certificates.</p> |
2273 | 2316 | <div class="refsect3"> |
2274 | <a name="id-1.5.8.4.8.51.5"></a><h4>Parameters</h4> | |
2317 | <a name="id-1.5.8.4.8.52.5"></a><h4>Parameters</h4> | |
2275 | 2318 | <div class="informaltable"><table width="100%" border="0"> |
2276 | 2319 | <colgroup> |
2277 | 2320 | <col width="150px" class="parameters_name"> |
2302 | 2345 | <em class="parameter"><code>const <span class="type">GDateTime</span> *creation_date</code></em>);</pre> |
2303 | 2346 | <p>Set the creation_date of the media</p> |
2304 | 2347 | <div class="refsect3"> |
2305 | <a name="id-1.5.8.4.8.52.5"></a><h4>Parameters</h4> | |
2348 | <a name="id-1.5.8.4.8.53.5"></a><h4>Parameters</h4> | |
2306 | 2349 | <div class="informaltable"><table width="100%" border="0"> |
2307 | 2350 | <colgroup> |
2308 | 2351 | <col width="150px" class="parameters_name"> |
2333 | 2376 | <em class="parameter"><code>const <span class="type">gchar</span> *description</code></em>);</pre> |
2334 | 2377 | <p>Set the media's description</p> |
2335 | 2378 | <div class="refsect3"> |
2336 | <a name="id-1.5.8.4.8.53.5"></a><h4>Parameters</h4> | |
2379 | <a name="id-1.5.8.4.8.54.5"></a><h4>Parameters</h4> | |
2337 | 2380 | <div class="informaltable"><table width="100%" border="0"> |
2338 | 2381 | <colgroup> |
2339 | 2382 | <col width="150px" class="parameters_name"> |
2364 | 2407 | <em class="parameter"><code><span class="type">gint</span> duration</code></em>);</pre> |
2365 | 2408 | <p>Set the media's duration</p> |
2366 | 2409 | <div class="refsect3"> |
2367 | <a name="id-1.5.8.4.8.54.5"></a><h4>Parameters</h4> | |
2410 | <a name="id-1.5.8.4.8.55.5"></a><h4>Parameters</h4> | |
2368 | 2411 | <div class="informaltable"><table width="100%" border="0"> |
2369 | 2412 | <colgroup> |
2370 | 2413 | <col width="150px" class="parameters_name"> |
2395 | 2438 | <em class="parameter"><code>const <span class="type">gchar</span> *player</code></em>);</pre> |
2396 | 2439 | <p>Set the location of a player for the media (usually a flash player)</p> |
2397 | 2440 | <div class="refsect3"> |
2398 | <a name="id-1.5.8.4.8.55.5"></a><h4>Parameters</h4> | |
2441 | <a name="id-1.5.8.4.8.56.5"></a><h4>Parameters</h4> | |
2399 | 2442 | <div class="informaltable"><table width="100%" border="0"> |
2400 | 2443 | <colgroup> |
2401 | 2444 | <col width="150px" class="parameters_name"> |
2426 | 2469 | <em class="parameter"><code>const <span class="type">gchar</span> *url</code></em>);</pre> |
2427 | 2470 | <p>Set an external location where users can play the media</p> |
2428 | 2471 | <div class="refsect3"> |
2429 | <a name="id-1.5.8.4.8.56.5"></a><h4>Parameters</h4> | |
2472 | <a name="id-1.5.8.4.8.57.5"></a><h4>Parameters</h4> | |
2430 | 2473 | <div class="informaltable"><table width="100%" border="0"> |
2431 | 2474 | <colgroup> |
2432 | 2475 | <col width="150px" class="parameters_name"> |
2457 | 2500 | <em class="parameter"><code><span class="type">gboolean</span> favourite</code></em>);</pre> |
2458 | 2501 | <p>Set if the media is favourite or not</p> |
2459 | 2502 | <div class="refsect3"> |
2460 | <a name="id-1.5.8.4.8.57.5"></a><h4>Parameters</h4> | |
2503 | <a name="id-1.5.8.4.8.58.5"></a><h4>Parameters</h4> | |
2461 | 2504 | <div class="informaltable"><table width="100%" border="0"> |
2462 | 2505 | <colgroup> |
2463 | 2506 | <col width="150px" class="parameters_name"> |
2488 | 2531 | <em class="parameter"><code>const <span class="type">gchar</span> *id</code></em>);</pre> |
2489 | 2532 | <p>Set the media identifier</p> |
2490 | 2533 | <div class="refsect3"> |
2491 | <a name="id-1.5.8.4.8.58.5"></a><h4>Parameters</h4> | |
2534 | <a name="id-1.5.8.4.8.59.5"></a><h4>Parameters</h4> | |
2492 | 2535 | <div class="informaltable"><table width="100%" border="0"> |
2493 | 2536 | <colgroup> |
2494 | 2537 | <col width="150px" class="parameters_name"> |
2520 | 2563 | <p>Sets the keyword describing the <em class="parameter"><code>media</code></em> |
2521 | 2564 | .</p> |
2522 | 2565 | <div class="refsect3"> |
2523 | <a name="id-1.5.8.4.8.59.5"></a><h4>Parameters</h4> | |
2566 | <a name="id-1.5.8.4.8.60.5"></a><h4>Parameters</h4> | |
2524 | 2567 | <div class="informaltable"><table width="100%" border="0"> |
2525 | 2568 | <colgroup> |
2526 | 2569 | <col width="150px" class="parameters_name"> |
2551 | 2594 | <em class="parameter"><code>const <span class="type">gchar</span> *last_played</code></em>);</pre> |
2552 | 2595 | <p>Set the media last played date</p> |
2553 | 2596 | <div class="refsect3"> |
2554 | <a name="id-1.5.8.4.8.60.5"></a><h4>Parameters</h4> | |
2597 | <a name="id-1.5.8.4.8.61.5"></a><h4>Parameters</h4> | |
2555 | 2598 | <div class="informaltable"><table width="100%" border="0"> |
2556 | 2599 | <colgroup> |
2557 | 2600 | <col width="150px" class="parameters_name"> |
2582 | 2625 | <em class="parameter"><code><span class="type">gint</span> last_position</code></em>);</pre> |
2583 | 2626 | <p>Set the media last played position</p> |
2584 | 2627 | <div class="refsect3"> |
2585 | <a name="id-1.5.8.4.8.61.5"></a><h4>Parameters</h4> | |
2628 | <a name="id-1.5.8.4.8.62.5"></a><h4>Parameters</h4> | |
2586 | 2629 | <div class="informaltable"><table width="100%" border="0"> |
2587 | 2630 | <colgroup> |
2588 | 2631 | <col width="150px" class="parameters_name"> |
2613 | 2656 | <em class="parameter"><code>const <span class="type">gchar</span> *license</code></em>);</pre> |
2614 | 2657 | <p>Set the media license</p> |
2615 | 2658 | <div class="refsect3"> |
2616 | <a name="id-1.5.8.4.8.62.5"></a><h4>Parameters</h4> | |
2659 | <a name="id-1.5.8.4.8.63.5"></a><h4>Parameters</h4> | |
2617 | 2660 | <div class="informaltable"><table width="100%" border="0"> |
2618 | 2661 | <colgroup> |
2619 | 2662 | <col width="150px" class="parameters_name"> |
2644 | 2687 | <em class="parameter"><code>const <span class="type">gchar</span> *mime</code></em>);</pre> |
2645 | 2688 | <p>Set the media's mime-type</p> |
2646 | 2689 | <div class="refsect3"> |
2647 | <a name="id-1.5.8.4.8.63.5"></a><h4>Parameters</h4> | |
2690 | <a name="id-1.5.8.4.8.64.5"></a><h4>Parameters</h4> | |
2648 | 2691 | <div class="informaltable"><table width="100%" border="0"> |
2649 | 2692 | <colgroup> |
2650 | 2693 | <col width="150px" class="parameters_name"> |
2675 | 2718 | <em class="parameter"><code>const <span class="type">GDateTime</span> *modification_date</code></em>);</pre> |
2676 | 2719 | <p>Set the modification date of the media</p> |
2677 | 2720 | <div class="refsect3"> |
2678 | <a name="id-1.5.8.4.8.64.5"></a><h4>Parameters</h4> | |
2721 | <a name="id-1.5.8.4.8.65.5"></a><h4>Parameters</h4> | |
2679 | 2722 | <div class="informaltable"><table width="100%" border="0"> |
2680 | 2723 | <colgroup> |
2681 | 2724 | <col width="150px" class="parameters_name"> |
2706 | 2749 | <em class="parameter"><code><span class="type">gint</span> play_count</code></em>);</pre> |
2707 | 2750 | <p>Set the media play count</p> |
2708 | 2751 | <div class="refsect3"> |
2709 | <a name="id-1.5.8.4.8.65.5"></a><h4>Parameters</h4> | |
2752 | <a name="id-1.5.8.4.8.66.5"></a><h4>Parameters</h4> | |
2710 | 2753 | <div class="informaltable"><table width="100%" border="0"> |
2711 | 2754 | <colgroup> |
2712 | 2755 | <col width="150px" class="parameters_name"> |
2738 | 2781 | <p>Set the publication date of <em class="parameter"><code>media</code></em> |
2739 | 2782 | .</p> |
2740 | 2783 | <div class="refsect3"> |
2741 | <a name="id-1.5.8.4.8.66.5"></a><h4>Parameters</h4> | |
2784 | <a name="id-1.5.8.4.8.67.5"></a><h4>Parameters</h4> | |
2742 | 2785 | <div class="informaltable"><table width="100%" border="0"> |
2743 | 2786 | <colgroup> |
2744 | 2787 | <col width="150px" class="parameters_name"> |
2771 | 2814 | <p>This method receives a rating and its scale and normalizes it on a scale |
2772 | 2815 | from 0...5 to match the usual five-star rating.</p> |
2773 | 2816 | <div class="refsect3"> |
2774 | <a name="id-1.5.8.4.8.67.5"></a><h4>Parameters</h4> | |
2817 | <a name="id-1.5.8.4.8.68.5"></a><h4>Parameters</h4> | |
2775 | 2818 | <div class="informaltable"><table width="100%" border="0"> |
2776 | 2819 | <colgroup> |
2777 | 2820 | <col width="150px" class="parameters_name"> |
2809 | 2852 | where <em class="parameter"><code>media</code></em> |
2810 | 2853 | was published.</p> |
2811 | 2854 | <div class="refsect3"> |
2812 | <a name="id-1.5.8.4.8.68.5"></a><h4>Parameters</h4> | |
2855 | <a name="id-1.5.8.4.8.69.5"></a><h4>Parameters</h4> | |
2813 | 2856 | <div class="informaltable"><table width="100%" border="0"> |
2814 | 2857 | <colgroup> |
2815 | 2858 | <col width="150px" class="parameters_name"> |
2843 | 2886 | <p>Sets regional publication and certification information for <em class="parameter"><code>region</code></em> |
2844 | 2887 | .</p> |
2845 | 2888 | <div class="refsect3"> |
2846 | <a name="id-1.5.8.4.8.69.5"></a><h4>Parameters</h4> | |
2889 | <a name="id-1.5.8.4.8.70.5"></a><h4>Parameters</h4> | |
2847 | 2890 | <div class="informaltable"><table width="100%" border="0"> |
2848 | 2891 | <colgroup> |
2849 | 2892 | <col width="150px" class="parameters_name"> |
2885 | 2928 | <p>Set the media's site. A site is a website about the media such as a |
2886 | 2929 | studio's promotional website for a movie.</p> |
2887 | 2930 | <div class="refsect3"> |
2888 | <a name="id-1.5.8.4.8.70.5"></a><h4>Parameters</h4> | |
2931 | <a name="id-1.5.8.4.8.71.5"></a><h4>Parameters</h4> | |
2889 | 2932 | <div class="informaltable"><table width="100%" border="0"> |
2890 | 2933 | <colgroup> |
2891 | 2934 | <col width="150px" class="parameters_name"> |
2916 | 2959 | <em class="parameter"><code>const <span class="type">gchar</span> *source</code></em>);</pre> |
2917 | 2960 | <p>Set the media's source</p> |
2918 | 2961 | <div class="refsect3"> |
2919 | <a name="id-1.5.8.4.8.71.5"></a><h4>Parameters</h4> | |
2962 | <a name="id-1.5.8.4.8.72.5"></a><h4>Parameters</h4> | |
2920 | 2963 | <div class="informaltable"><table width="100%" border="0"> |
2921 | 2964 | <colgroup> |
2922 | 2965 | <col width="150px" class="parameters_name"> |
2947 | 2990 | <em class="parameter"><code>const <span class="type">gchar</span> *studio</code></em>);</pre> |
2948 | 2991 | <p>Set the media studio</p> |
2949 | 2992 | <div class="refsect3"> |
2950 | <a name="id-1.5.8.4.8.72.5"></a><h4>Parameters</h4> | |
2993 | <a name="id-1.5.8.4.8.73.5"></a><h4>Parameters</h4> | |
2951 | 2994 | <div class="informaltable"><table width="100%" border="0"> |
2952 | 2995 | <colgroup> |
2953 | 2996 | <col width="150px" class="parameters_name"> |
2978 | 3021 | <em class="parameter"><code>const <span class="type">gchar</span> *thumbnail</code></em>);</pre> |
2979 | 3022 | <p>Set the media's thumbnail URL</p> |
2980 | 3023 | <div class="refsect3"> |
2981 | <a name="id-1.5.8.4.8.73.5"></a><h4>Parameters</h4> | |
3024 | <a name="id-1.5.8.4.8.74.5"></a><h4>Parameters</h4> | |
2982 | 3025 | <div class="informaltable"><table width="100%" border="0"> |
2983 | 3026 | <colgroup> |
2984 | 3027 | <col width="150px" class="parameters_name"> |
3010 | 3053 | <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre> |
3011 | 3054 | <p>Set the media's binary thumbnail</p> |
3012 | 3055 | <div class="refsect3"> |
3013 | <a name="id-1.5.8.4.8.74.5"></a><h4>Parameters</h4> | |
3056 | <a name="id-1.5.8.4.8.75.5"></a><h4>Parameters</h4> | |
3014 | 3057 | <div class="informaltable"><table width="100%" border="0"> |
3015 | 3058 | <colgroup> |
3016 | 3059 | <col width="150px" class="parameters_name"> |
3046 | 3089 | <em class="parameter"><code>const <span class="type">gchar</span> *title</code></em>);</pre> |
3047 | 3090 | <p>Set the media's title</p> |
3048 | 3091 | <div class="refsect3"> |
3049 | <a name="id-1.5.8.4.8.75.5"></a><h4>Parameters</h4> | |
3092 | <a name="id-1.5.8.4.8.76.5"></a><h4>Parameters</h4> | |
3050 | 3093 | <div class="informaltable"><table width="100%" border="0"> |
3051 | 3094 | <colgroup> |
3052 | 3095 | <col width="150px" class="parameters_name"> |
3077 | 3120 | <em class="parameter"><code>const <span class="type">gchar</span> *url</code></em>);</pre> |
3078 | 3121 | <p>Set the media's URL</p> |
3079 | 3122 | <div class="refsect3"> |
3080 | <a name="id-1.5.8.4.8.76.5"></a><h4>Parameters</h4> | |
3123 | <a name="id-1.5.8.4.8.77.5"></a><h4>Parameters</h4> | |
3081 | 3124 | <div class="informaltable"><table width="100%" border="0"> |
3082 | 3125 | <colgroup> |
3083 | 3126 | <col width="150px" class="parameters_name"> |
3109 | 3152 | <em class="parameter"><code>const <span class="type">gchar</span> *mime</code></em>);</pre> |
3110 | 3153 | <p>Set the media's URL and its mime-type.</p> |
3111 | 3154 | <div class="refsect3"> |
3112 | <a name="id-1.5.8.4.8.77.5"></a><h4>Parameters</h4> | |
3155 | <a name="id-1.5.8.4.8.78.5"></a><h4>Parameters</h4> | |
3113 | 3156 | <div class="informaltable"><table width="100%" border="0"> |
3114 | 3157 | <colgroup> |
3115 | 3158 | <col width="150px" class="parameters_name"> |
3137 | 3180 | </table></div> |
3138 | 3181 | </div> |
3139 | 3182 | <p class="since">Since 0.1.10</p> |
3183 | </div> | |
3184 | <hr> | |
3185 | <div class="refsect2"> | |
3186 | <a name="grl-media-set-size"></a><h3>grl_media_set_size ()</h3> | |
3187 | <pre class="programlisting"><span class="returnvalue">void</span> | |
3188 | grl_media_set_size (<em class="parameter"><code><a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> *media</code></em>, | |
3189 | <em class="parameter"><code><span class="type">gint</span> size</code></em>);</pre> | |
3190 | <p>Set the size of the media</p> | |
3191 | <div class="refsect3"> | |
3192 | <a name="id-1.5.8.4.8.79.5"></a><h4>Parameters</h4> | |
3193 | <div class="informaltable"><table width="100%" border="0"> | |
3194 | <colgroup> | |
3195 | <col width="150px" class="parameters_name"> | |
3196 | <col class="parameters_description"> | |
3197 | <col width="200px" class="parameters_annotations"> | |
3198 | </colgroup> | |
3199 | <tbody> | |
3200 | <tr> | |
3201 | <td class="parameter_name"><p>media</p></td> | |
3202 | <td class="parameter_description"><p>the media</p></td> | |
3203 | <td class="parameter_annotations"> </td> | |
3204 | </tr> | |
3205 | <tr> | |
3206 | <td class="parameter_name"><p>size</p></td> | |
3207 | <td class="parameter_description"><p>the size in bytes</p></td> | |
3208 | <td class="parameter_annotations"> </td> | |
3209 | </tr> | |
3210 | </tbody> | |
3211 | </table></div> | |
3212 | </div> | |
3213 | <p class="since">Since 0.2.10</p> | |
3140 | 3214 | </div> |
3141 | 3215 | <hr> |
3142 | 3216 | <div class="refsect2"> |
3145 | 3219 | grl_media_unserialize (<em class="parameter"><code>const <span class="type">gchar</span> *serial</code></em>);</pre> |
3146 | 3220 | <p>Unserializes a GrlMedia.</p> |
3147 | 3221 | <div class="refsect3"> |
3148 | <a name="id-1.5.8.4.8.78.5"></a><h4>Parameters</h4> | |
3222 | <a name="id-1.5.8.4.8.80.5"></a><h4>Parameters</h4> | |
3149 | 3223 | <div class="informaltable"><table width="100%" border="0"> |
3150 | 3224 | <colgroup> |
3151 | 3225 | <col width="150px" class="parameters_name"> |
3160 | 3234 | </table></div> |
3161 | 3235 | </div> |
3162 | 3236 | <div class="refsect3"> |
3163 | <a name="id-1.5.8.4.8.78.6"></a><h4>Returns</h4> | |
3237 | <a name="id-1.5.8.4.8.80.6"></a><h4>Returns</h4> | |
3164 | 3238 | <p> the GrlMedia from the serial. </p> |
3165 | 3239 | <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p> |
3166 | 3240 | </div> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlMediaAudio.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlMediaAudio.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | 18 | <a href="#GrlMediaAudio.object-hierarchy" class="shortcut">Object Hierarchy</a></span> |
19 | 19 | </td> |
20 | 20 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlMediaBox.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlMediaBox.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | 18 | <a href="#GrlMediaBox.object-hierarchy" class="shortcut">Object Hierarchy</a></span> |
19 | 19 | </td> |
20 | 20 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlMediaImage.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlMediaImage.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | 18 | <a href="#GrlMediaImage.object-hierarchy" class="shortcut">Object Hierarchy</a></span> |
19 | 19 | </td> |
20 | 20 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlMediaVideo.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlMediaVideo.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | 18 | <a href="#GrlMediaVideo.object-hierarchy" class="shortcut">Object Hierarchy</a></span> |
19 | 19 | </td> |
20 | 20 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlOperationOptions.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlOperationOptions.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | 18 | <a href="#GrlOperationOptions.object-hierarchy" class="shortcut">Object Hierarchy</a></span> |
19 | 19 | </td> |
20 | 20 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlPlugin.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#GrlPlugin.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlPlugin.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#GrlPlugin.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> | |
19 | 19 | <a href="#GrlPlugin.properties" class="shortcut">Properties</a></span> |
20 | 20 | </td> |
21 | 21 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlRegistry.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#GrlRegistry.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals"> <span class="dim">|</span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlRegistry.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#GrlRegistry.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals"> <span class="dim">|</span> | |
19 | 19 | <a href="#GrlRegistry.signals" class="shortcut">Signals</a></span> |
20 | 20 | </td> |
21 | 21 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
263 | 263 | <col width="200px" class="signals_flags"> |
264 | 264 | </colgroup> |
265 | 265 | <tbody> |
266 | <tr> | |
267 | <td class="signal_type"><span class="returnvalue">void</span></td> | |
268 | <td class="signal_name"><a class="link" href="GrlRegistry.html#GrlRegistry-metadata-key-added" title="The “metadata-key-added” signal">metadata-key-added</a></td> | |
269 | <td class="signal_flags">Action</td> | |
270 | </tr> | |
266 | 271 | <tr> |
267 | 272 | <td class="signal_type"><span class="returnvalue">void</span></td> |
268 | 273 | <td class="signal_name"><a class="link" href="GrlRegistry.html#GrlRegistry-source-added" title="The “source-added” signal">source-added</a></td> |
1528 | 1533 | <div class="refsect1"> |
1529 | 1534 | <a name="GrlRegistry.signal-details"></a><h2>Signal Details</h2> |
1530 | 1535 | <div class="refsect2"> |
1536 | <a name="GrlRegistry-metadata-key-added"></a><h3>The <code class="literal">“metadata-key-added”</code> signal</h3> | |
1537 | <pre class="programlisting"><span class="returnvalue">void</span> | |
1538 | user_function (<a class="link" href="GrlRegistry.html" title="GrlRegistry"><span class="type">GrlRegistry</span></a> *registry, | |
1539 | <span class="type">gchar</span> *key, | |
1540 | <span class="type">gpointer</span> user_data)</pre> | |
1541 | <p>Signals that a new metadata key has been registered.</p> | |
1542 | <div class="refsect3"> | |
1543 | <a name="id-1.5.3.2.11.2.5"></a><h4>Parameters</h4> | |
1544 | <div class="informaltable"><table width="100%" border="0"> | |
1545 | <colgroup> | |
1546 | <col width="150px" class="parameters_name"> | |
1547 | <col class="parameters_description"> | |
1548 | <col width="200px" class="parameters_annotations"> | |
1549 | </colgroup> | |
1550 | <tbody> | |
1551 | <tr> | |
1552 | <td class="parameter_name"><p>registry</p></td> | |
1553 | <td class="parameter_description"><p>the registry</p></td> | |
1554 | <td class="parameter_annotations"> </td> | |
1555 | </tr> | |
1556 | <tr> | |
1557 | <td class="parameter_name"><p>key</p></td> | |
1558 | <td class="parameter_description"><p>the name of the new key added</p></td> | |
1559 | <td class="parameter_annotations"> </td> | |
1560 | </tr> | |
1561 | <tr> | |
1562 | <td class="parameter_name"><p>user_data</p></td> | |
1563 | <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> | |
1564 | <td class="parameter_annotations"> </td> | |
1565 | </tr> | |
1566 | </tbody> | |
1567 | </table></div> | |
1568 | </div> | |
1569 | <p>Flags: Action</p> | |
1570 | <p class="since">Since 0.2.10</p> | |
1571 | </div> | |
1572 | <hr> | |
1573 | <div class="refsect2"> | |
1531 | 1574 | <a name="GrlRegistry-source-added"></a><h3>The <code class="literal">“source-added”</code> signal</h3> |
1532 | 1575 | <pre class="programlisting"><span class="returnvalue">void</span> |
1533 | 1576 | user_function (<a class="link" href="GrlRegistry.html" title="GrlRegistry"><span class="type">GrlRegistry</span></a> *registry, |
1535 | 1578 | <span class="type">gpointer</span> user_data)</pre> |
1536 | 1579 | <p>Signals that a source has been added to the registry.</p> |
1537 | 1580 | <div class="refsect3"> |
1538 | <a name="id-1.5.3.2.11.2.5"></a><h4>Parameters</h4> | |
1581 | <a name="id-1.5.3.2.11.3.5"></a><h4>Parameters</h4> | |
1539 | 1582 | <div class="informaltable"><table width="100%" border="0"> |
1540 | 1583 | <colgroup> |
1541 | 1584 | <col width="150px" class="parameters_name"> |
1573 | 1616 | <span class="type">gpointer</span> user_data)</pre> |
1574 | 1617 | <p>Signals that a source has been removed from the registry.</p> |
1575 | 1618 | <div class="refsect3"> |
1576 | <a name="id-1.5.3.2.11.3.5"></a><h4>Parameters</h4> | |
1619 | <a name="id-1.5.3.2.11.4.5"></a><h4>Parameters</h4> | |
1577 | 1620 | <div class="informaltable"><table width="100%" border="0"> |
1578 | 1621 | <colgroup> |
1579 | 1622 | <col width="150px" class="parameters_name"> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlRelatedKeys.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlRelatedKeys.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | 18 | <a href="#GrlRelatedKeys.object-hierarchy" class="shortcut">Object Hierarchy</a></span> |
19 | 19 | </td> |
20 | 20 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlSource.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#GrlSource.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> | |
19 | <a href="#GrlSource.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#GrlSource.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#GrlSource.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> | |
19 | <a href="#GrlSource.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> | |
20 | 20 | <a href="#GrlSource.signals" class="shortcut">Signals</a></span> |
21 | 21 | </td> |
22 | 22 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
405 | 405 | <td class="property_type"> |
406 | 406 | <span class="type">gchar</span> *</td> |
407 | 407 | <td class="property_name"><a class="link" href="GrlSource.html#GrlSource--source-name" title="The “source-name” property">source-name</a></td> |
408 | <td class="property_flags">Read / Write / Construct</td> | |
409 | </tr> | |
410 | <tr> | |
411 | <td class="property_type"><span class="type">GStrv</span></td> | |
412 | <td class="property_name"><a class="link" href="GrlSource.html#GrlSource--source-tags" title="The “source-tags” property">source-tags</a></td> | |
408 | 413 | <td class="property_flags">Read / Write / Construct</td> |
409 | 414 | </tr> |
410 | 415 | <tr> |
3317 | 3322 | </div> |
3318 | 3323 | <hr> |
3319 | 3324 | <div class="refsect2"> |
3325 | <a name="GrlSource--source-tags"></a><h3>The <code class="literal">“source-tags”</code> property</h3> | |
3326 | <pre class="programlisting"> “source-tags” <span class="type">GStrv</span></pre> | |
3327 | <p>A string array of tags relevant this source.</p> | |
3328 | <p>The tags are arbitrary, and applications should just pass over the tags | |
3329 | it does not understand. Applications would usually use this to either | |
3330 | group sources together, or hide certain sources: a radio application | |
3331 | would filter for <a class="link" href="GrlMedia.html#GRL-MEDIA-TYPE-AUDIO:CAPS"><code class="literal">GRL_MEDIA_TYPE_AUDIO</code></a> in GrlSource::supported-media as | |
3332 | well as "radio" being listed in the tags.</p> | |
3333 | <p>To avoid irrelevant content being listed in applications, sources | |
3334 | such as generic video sites should not be tagged as "cinema" or | |
3335 | "tv" as they contain a lot of content that's not either of those.</p> | |
3336 | <p>This is a list of commonly used values:</p> | |
3337 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | |
3338 | <li class="listitem"><p>"cinema", or "tv" | |
3339 | The content served is from cinema or TV sources. For example, a | |
3340 | source for movie trailers would select the former, a source for | |
3341 | streaming live TV would select the latter.</p></li> | |
3342 | <li class="listitem"><p>"radio" | |
3343 | The content served is from streaming radios.</p></li> | |
3344 | <li class="listitem"><p>"music" | |
3345 | The content served is music, for example, music stores such as | |
3346 | Jamendo or Magnatune.</p></li> | |
3347 | <li class="listitem"><p>"country:country-code" | |
3348 | The content is mostly relevant to users from a particular country, | |
3349 | such as a national broadcaster. For example, BBC content would be | |
3350 | tagged as "country:uk". Country codes should be an ISO-639-1 or | |
3351 | ISO-639-2 code.</p></li> | |
3352 | <li class="listitem"><p>"protocol:protocol-name" | |
3353 | The content browsing or searching uses a particular protocol, such | |
3354 | as DLNA/UPnP or DMAP/DAAP. This makes it easier to whitelist or | |
3355 | blacklist sources rather than matching the implementation specific | |
3356 | source ID. Examples are "protocol:dlna" and "protocol:dmap".</p></li> | |
3357 | <li class="listitem"><p>"localhost", or "localuser" | |
3358 | The content is served from the machine the application is running on, | |
3359 | or by an application the user is running. Applications might choose to | |
3360 | avoid showing the user's own data in their interfaces, or integrate it | |
3361 | in the user's local collection.</p></li> | |
3362 | </ul></div> | |
3363 | <p>Flags: Read / Write / Construct</p> | |
3364 | <p class="since">Since 0.2.10</p> | |
3365 | </div> | |
3366 | <hr> | |
3367 | <div class="refsect2"> | |
3320 | 3368 | <a name="GrlSource--supported-media"></a><h3>The <code class="literal">“supported-media”</code> property</h3> |
3321 | 3369 | <pre class="programlisting"> “supported-media” <a class="link" href="GrlMedia.html#GrlMediaType" title="enum GrlMediaType"><span class="type">GrlMediaType</span></a></pre> |
3322 | 3370 | <p>List of supported media types by this source.</p> |
10 | 10 | <link rel="stylesheet" href="style.css" type="text/css"> |
11 | 11 | </head> |
12 | 12 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
13 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
13 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
14 | 14 | <td width="100%" align="left" class="shortcuts"><span id="nav_glossary"><a class="shortcut" href="#glsA">A</a> |
15 | 15 | <span class="dim">|</span> |
16 | 16 | <a class="shortcut" href="#glsE">E</a> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxC">C</a> |
16 | 16 | <span class="dim">|</span> |
17 | 17 | <a class="shortcut" href="#idxD">D</a> |
454 | 454 | </dt> |
455 | 455 | <dd></dd> |
456 | 456 | <dt> |
457 | <a class="link" href="grilo-grl-log.html#grl-log" title="grl_log ()">grl_log</a>, function in <a class="link" href="grilo-grl-log.html" title="grl-log">grl-log</a> | |
458 | </dt> | |
459 | <dd></dd> | |
460 | <dt> | |
457 | 461 | <a class="link" href="grilo-grl-log.html#GRL-LOG:CAPS" title="GRL_LOG()">GRL_LOG</a>, macro in <a class="link" href="grilo-grl-log.html" title="grl-log">grl-log</a> |
458 | 462 | </dt> |
459 | 463 | <dd></dd> |
460 | 464 | <dt> |
461 | <a class="link" href="grilo-grl-log.html#grl-log" title="grl_log ()">grl_log</a>, function in <a class="link" href="grilo-grl-log.html" title="grl-log">grl-log</a> | |
462 | </dt> | |
463 | <dd></dd> | |
464 | <dt> | |
465 | 465 | <a class="link" href="grilo-grl-log.html#GrlLogDomain" title="GrlLogDomain">GrlLogDomain</a>, struct in <a class="link" href="grilo-grl-log.html" title="grl-log">grl-log</a> |
466 | 466 | </dt> |
467 | 467 | <dd></dd> |
486 | 486 | </dt> |
487 | 487 | <dd></dd> |
488 | 488 | <dt> |
489 | <a class="link" href="grilo-grl-log.html#grl-log-domain-free" title="grl_log_domain_free ()">grl_log_domain_free</a>, function in <a class="link" href="grilo-grl-log.html" title="grl-log">grl-log</a> | |
490 | </dt> | |
491 | <dd></dd> | |
492 | <dt> | |
489 | 493 | <a class="link" href="grilo-grl-log.html#GRL-LOG-DOMAIN-FREE:CAPS" title="GRL_LOG_DOMAIN_FREE()">GRL_LOG_DOMAIN_FREE</a>, macro in <a class="link" href="grilo-grl-log.html" title="grl-log">grl-log</a> |
490 | 494 | </dt> |
491 | 495 | <dd></dd> |
492 | 496 | <dt> |
493 | <a class="link" href="grilo-grl-log.html#grl-log-domain-free" title="grl_log_domain_free ()">grl_log_domain_free</a>, function in <a class="link" href="grilo-grl-log.html" title="grl-log">grl-log</a> | |
494 | </dt> | |
495 | <dd></dd> | |
496 | <dt> | |
497 | 497 | <a class="link" href="grilo-grl-log.html#GRL-LOG-DOMAIN-INIT:CAPS" title="GRL_LOG_DOMAIN_INIT()">GRL_LOG_DOMAIN_INIT</a>, macro in <a class="link" href="grilo-grl-log.html" title="grl-log">grl-log</a> |
498 | 498 | </dt> |
499 | 499 | <dd></dd> |
795 | 795 | </dt> |
796 | 796 | <dd></dd> |
797 | 797 | <dt> |
798 | <a class="link" href="GrlMedia.html#grl-media-get-size" title="grl_media_get_size ()">grl_media_get_size</a>, function in <a class="link" href="GrlMedia.html" title="GrlMedia">GrlMedia</a> | |
799 | </dt> | |
800 | <dd></dd> | |
801 | <dt> | |
798 | 802 | <a class="link" href="GrlMedia.html#grl-media-get-source" title="grl_media_get_source ()">grl_media_get_source</a>, function in <a class="link" href="GrlMedia.html" title="GrlMedia">GrlMedia</a> |
799 | 803 | </dt> |
800 | 804 | <dd></dd> |
1015 | 1019 | </dt> |
1016 | 1020 | <dd></dd> |
1017 | 1021 | <dt> |
1022 | <a class="link" href="GrlMedia.html#grl-media-set-size" title="grl_media_set_size ()">grl_media_set_size</a>, function in <a class="link" href="GrlMedia.html" title="GrlMedia">GrlMedia</a> | |
1023 | </dt> | |
1024 | <dd></dd> | |
1025 | <dt> | |
1018 | 1026 | <a class="link" href="GrlMedia.html#grl-media-set-source" title="grl_media_set_source ()">grl_media_set_source</a>, function in <a class="link" href="GrlMedia.html" title="GrlMedia">GrlMedia</a> |
1019 | 1027 | </dt> |
1020 | 1028 | <dd></dd> |
1259 | 1267 | </dt> |
1260 | 1268 | <dd></dd> |
1261 | 1269 | <dt> |
1270 | <a class="link" href="grilo-grl-metadata-key.html#grl-metadata-key-get-desc" title="grl_metadata_key_get_desc ()">grl_metadata_key_get_desc</a>, function in <a class="link" href="grilo-grl-metadata-key.html" title="grl-metadata-key">grl-metadata-key</a> | |
1271 | </dt> | |
1272 | <dd></dd> | |
1273 | <dt> | |
1262 | 1274 | <a class="link" href="grilo-grl-metadata-key.html#GRL-METADATA-KEY-GET-DESC:CAPS" title="GRL_METADATA_KEY_GET_DESC()">GRL_METADATA_KEY_GET_DESC</a>, macro in <a class="link" href="grilo-grl-metadata-key.html" title="grl-metadata-key">grl-metadata-key</a> |
1263 | 1275 | </dt> |
1264 | 1276 | <dd></dd> |
1265 | 1277 | <dt> |
1266 | <a class="link" href="grilo-grl-metadata-key.html#grl-metadata-key-get-desc" title="grl_metadata_key_get_desc ()">grl_metadata_key_get_desc</a>, function in <a class="link" href="grilo-grl-metadata-key.html" title="grl-metadata-key">grl-metadata-key</a> | |
1267 | </dt> | |
1268 | <dd></dd> | |
1269 | <dt> | |
1270 | 1278 | <a class="link" href="grilo-grl-metadata-key.html#GRL-METADATA-KEY-GET-ID:CAPS" title="GRL_METADATA_KEY_GET_ID()">GRL_METADATA_KEY_GET_ID</a>, macro in <a class="link" href="grilo-grl-metadata-key.html" title="grl-metadata-key">grl-metadata-key</a> |
1271 | 1279 | </dt> |
1272 | 1280 | <dd></dd> |
1279 | 1287 | </dt> |
1280 | 1288 | <dd></dd> |
1281 | 1289 | <dt> |
1290 | <a class="link" href="grilo-grl-metadata-key.html#grl-metadata-key-get-type" title="grl_metadata_key_get_type ()">grl_metadata_key_get_type</a>, function in <a class="link" href="grilo-grl-metadata-key.html" title="grl-metadata-key">grl-metadata-key</a> | |
1291 | </dt> | |
1292 | <dd></dd> | |
1293 | <dt> | |
1282 | 1294 | <a class="link" href="grilo-grl-metadata-key.html#GRL-METADATA-KEY-GET-TYPE:CAPS" title="GRL_METADATA_KEY_GET_TYPE()">GRL_METADATA_KEY_GET_TYPE</a>, macro in <a class="link" href="grilo-grl-metadata-key.html" title="grl-metadata-key">grl-metadata-key</a> |
1283 | 1295 | </dt> |
1284 | 1296 | <dd></dd> |
1285 | 1297 | <dt> |
1286 | <a class="link" href="grilo-grl-metadata-key.html#grl-metadata-key-get-type" title="grl_metadata_key_get_type ()">grl_metadata_key_get_type</a>, function in <a class="link" href="grilo-grl-metadata-key.html" title="grl-metadata-key">grl-metadata-key</a> | |
1287 | </dt> | |
1288 | <dd></dd> | |
1289 | <dt> | |
1290 | 1298 | <a class="link" href="grilo-grl-metadata-key.html#GRL-METADATA-KEY-HEIGHT:CAPS" title="GRL_METADATA_KEY_HEIGHT">GRL_METADATA_KEY_HEIGHT</a>, macro in <a class="link" href="grilo-grl-metadata-key.html" title="grl-metadata-key">grl-metadata-key</a> |
1291 | 1299 | </dt> |
1292 | 1300 | <dd></dd> |
1723 | 1731 | </dt> |
1724 | 1732 | <dd></dd> |
1725 | 1733 | <dt> |
1734 | <a class="link" href="GrlRegistry.html#GrlRegistry-metadata-key-added" title="The “metadata-key-added” signal">GrlRegistry::metadata-key-added</a>, object signal in <a class="link" href="GrlRegistry.html" title="GrlRegistry">GrlRegistry</a> | |
1735 | </dt> | |
1736 | <dd></dd> | |
1737 | <dt> | |
1726 | 1738 | <a class="link" href="GrlRegistry.html#GrlRegistry-source-added" title="The “source-added” signal">GrlRegistry::source-added</a>, object signal in <a class="link" href="GrlRegistry.html" title="GrlRegistry">GrlRegistry</a> |
1727 | 1739 | </dt> |
1728 | 1740 | <dd></dd> |
1969 | 1981 | <dd></dd> |
1970 | 1982 | <dt> |
1971 | 1983 | <a class="link" href="GrlSource.html#GrlSource--source-name" title="The “source-name” property">GrlSource:source-name</a>, object property in <a class="link" href="GrlSource.html" title="GrlSource">GrlSource</a> |
1984 | </dt> | |
1985 | <dd></dd> | |
1986 | <dt> | |
1987 | <a class="link" href="GrlSource.html#GrlSource--source-tags" title="The “source-tags” property">GrlSource:source-tags</a>, object property in <a class="link" href="GrlSource.html" title="GrlSource">GrlSource</a> | |
1972 | 1988 | </dt> |
1973 | 1989 | <dd></dd> |
1974 | 1990 | <dt> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><a accesskey="u" href="rn03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><a accesskey="u" href="rn01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><a accesskey="u" href="rn01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><a accesskey="u" href="rn01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><a accesskey="u" href="rn01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><a accesskey="u" href="rn03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><a accesskey="u" href="rn03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><img src="up-insensitive.png" width="16" height="16" border="0"></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-GrlNetWc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#grilo-GrlNetWc.object-hierarchy" class="shortcut">Object Hierarchy</a></span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-GrlNetWc.description" class="shortcut">Description</a></span> | |
19 | 18 | </td> |
20 | 19 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
21 | 20 | <td><a accesskey="u" href="grilo-net.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
158 | 157 | </table></div> |
159 | 158 | </div> |
160 | 159 | <div class="refsect1"> |
161 | <a name="grilo-GrlNetWc.object-hierarchy"></a><h2>Object Hierarchy</h2> | |
162 | <pre class="screen"> | |
163 | </pre> | |
164 | </div> | |
165 | <div class="refsect1"> | |
166 | 160 | <a name="grilo-GrlNetWc.includes"></a><h2>Includes</h2> |
167 | 161 | <pre class="synopsis">#include <grilo.h> |
168 | 162 | </pre> |
181 | 175 | grl_net_wc_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> |
182 | 176 | <p>Creates a new <a class="link" href="grilo-GrlNetWc.html#GrlNetWc" title="struct GrlNetWc"><span class="type">GrlNetWc</span></a>.</p> |
183 | 177 | <div class="refsect3"> |
184 | <a name="id-1.6.4.2.8.2.5"></a><h4>Returns</h4> | |
178 | <a name="id-1.6.4.2.7.2.5"></a><h4>Returns</h4> | |
185 | 179 | <p> a new allocated instance of <a class="link" href="grilo-GrlNetWc.html#GrlNetWc" title="struct GrlNetWc"><span class="type">GrlNetWc</span></a>. Do <code class="function">g_object_unref()</code> after |
186 | 180 | use it.</p> |
187 | 181 | <p></p> |
200 | 194 | grl_net_wc_flush_delayed_requests (<em class="parameter"><code><a class="link" href="grilo-GrlNetWc.html#GrlNetWc" title="struct GrlNetWc"><span class="type">GrlNetWc</span></a> *self</code></em>);</pre> |
201 | 195 | <p>This method will flush all the pending request in the queue.</p> |
202 | 196 | <div class="refsect3"> |
203 | <a name="id-1.6.4.2.8.4.5"></a><h4>Parameters</h4> | |
197 | <a name="id-1.6.4.2.7.4.5"></a><h4>Parameters</h4> | |
204 | 198 | <div class="informaltable"><table width="100%" border="0"> |
205 | 199 | <colgroup> |
206 | 200 | <col width="150px" class="parameters_name"> |
229 | 223 | asynchronous, thus the result will be returned within the <em class="parameter"><code>callback</code></em> |
230 | 224 | .</p> |
231 | 225 | <div class="refsect3"> |
232 | <a name="id-1.6.4.2.8.5.5"></a><h4>Parameters</h4> | |
226 | <a name="id-1.6.4.2.7.5.5"></a><h4>Parameters</h4> | |
233 | 227 | <div class="informaltable"><table width="100%" border="0"> |
234 | 228 | <colgroup> |
235 | 229 | <col width="150px" class="parameters_name"> |
282 | 276 | <p>The content address will be invalidated at the next request. So if you |
283 | 277 | want to keep it, please copy it into another address.</p> |
284 | 278 | <div class="refsect3"> |
285 | <a name="id-1.6.4.2.8.6.6"></a><h4>Parameters</h4> | |
279 | <a name="id-1.6.4.2.7.6.6"></a><h4>Parameters</h4> | |
286 | 280 | <div class="informaltable"><table width="100%" border="0"> |
287 | 281 | <colgroup> |
288 | 282 | <col width="150px" class="parameters_name"> |
320 | 314 | </table></div> |
321 | 315 | </div> |
322 | 316 | <div class="refsect3"> |
323 | <a name="id-1.6.4.2.8.6.7"></a><h4>Returns</h4> | |
317 | <a name="id-1.6.4.2.7.6.7"></a><h4>Returns</h4> | |
324 | 318 | <p> <code class="literal">TRUE</code> if the request was successfull. If <code class="literal">FALSE</code> an error occurred.</p> |
325 | 319 | <p></p> |
326 | 320 | </div> |
340 | 334 | asynchronous, thus the result will be returned within the <em class="parameter"><code>callback</code></em> |
341 | 335 | .</p> |
342 | 336 | <div class="refsect3"> |
343 | <a name="id-1.6.4.2.8.7.5"></a><h4>Parameters</h4> | |
337 | <a name="id-1.6.4.2.7.7.5"></a><h4>Parameters</h4> | |
344 | 338 | <div class="informaltable"><table width="100%" border="0"> |
345 | 339 | <colgroup> |
346 | 340 | <col width="150px" class="parameters_name"> |
401 | 395 | asynchronous, thus the result will be returned within the <em class="parameter"><code>callback</code></em> |
402 | 396 | .</p> |
403 | 397 | <div class="refsect3"> |
404 | <a name="id-1.6.4.2.8.8.5"></a><h4>Parameters</h4> | |
398 | <a name="id-1.6.4.2.7.8.5"></a><h4>Parameters</h4> | |
405 | 399 | <div class="informaltable"><table width="100%" border="0"> |
406 | 400 | <colgroup> |
407 | 401 | <col width="150px" class="parameters_name"> |
456 | 450 | supporting. If sets <code class="literal">TRUE</code>, a new cache will be created. If sets to <code class="literal">FALSE</code>, |
457 | 451 | current cache is clean and removed.</p> |
458 | 452 | <div class="refsect3"> |
459 | <a name="id-1.6.4.2.8.9.5"></a><h4>Parameters</h4> | |
453 | <a name="id-1.6.4.2.7.9.5"></a><h4>Parameters</h4> | |
460 | 454 | <div class="informaltable"><table width="100%" border="0"> |
461 | 455 | <colgroup> |
462 | 456 | <col width="150px" class="parameters_name"> |
488 | 482 | <p>Sets the new maximum size of cache, in Megabytes. Default value is 10. Using |
489 | 483 | 0 means no cache will be done.</p> |
490 | 484 | <div class="refsect3"> |
491 | <a name="id-1.6.4.2.8.10.5"></a><h4>Parameters</h4> | |
485 | <a name="id-1.6.4.2.7.10.5"></a><h4>Parameters</h4> | |
492 | 486 | <div class="informaltable"><table width="100%" border="0"> |
493 | 487 | <colgroup> |
494 | 488 | <col width="150px" class="parameters_name"> |
520 | 514 | <p>Setting the log level the logger feature is added into |
521 | 515 | the libsoup session.</p> |
522 | 516 | <div class="refsect3"> |
523 | <a name="id-1.6.4.2.8.11.5"></a><h4>Parameters</h4> | |
517 | <a name="id-1.6.4.2.7.11.5"></a><h4>Parameters</h4> | |
524 | 518 | <div class="informaltable"><table width="100%" border="0"> |
525 | 519 | <colgroup> |
526 | 520 | <col width="150px" class="parameters_name"> |
551 | 545 | <p>Setting this property, the <a class="link" href="grilo-GrlNetWc.html#GrlNetWc" title="struct GrlNetWc"><span class="type">GrlNetWc</span></a> will queue all the requests and |
552 | 546 | will dispatch them with a pause between them of this value.</p> |
553 | 547 | <div class="refsect3"> |
554 | <a name="id-1.6.4.2.8.12.5"></a><h4>Parameters</h4> | |
548 | <a name="id-1.6.4.2.7.12.5"></a><h4>Parameters</h4> | |
555 | 549 | <div class="informaltable"><table width="100%" border="0"> |
556 | 550 | <colgroup> |
557 | 551 | <col width="150px" class="parameters_name"> |
583 | 577 | }; |
584 | 578 | </pre> |
585 | 579 | <div class="refsect3"> |
586 | <a name="id-1.6.4.2.9.2.4"></a><h4>Members</h4> | |
580 | <a name="id-1.6.4.2.8.2.4"></a><h4>Members</h4> | |
587 | 581 | <div class="informaltable"><table width="100%" border="0"> |
588 | 582 | <colgroup> |
589 | 583 | <col width="300px" class="struct_members_name"> |
609 | 603 | <p>It's a simple and thin web client to be used by the sources to download |
610 | 604 | content from Internet.</p> |
611 | 605 | <div class="refsect3"> |
612 | <a name="id-1.6.4.2.9.3.6"></a><h4>Members</h4> | |
606 | <a name="id-1.6.4.2.8.3.6"></a><h4>Members</h4> | |
613 | 607 | <div class="informaltable"><table width="100%" border="0"> |
614 | 608 | <colgroup> |
615 | 609 | <col width="300px" class="struct_members_name"> |
630 | 624 | <p>These constants identify all the available errors managed by |
631 | 625 | the web client.</p> |
632 | 626 | <div class="refsect3"> |
633 | <a name="id-1.6.4.2.9.4.4"></a><h4>Members</h4> | |
627 | <a name="id-1.6.4.2.8.4.4"></a><h4>Members</h4> | |
634 | 628 | <div class="informaltable"><table width="100%" border="0"> |
635 | 629 | <colgroup> |
636 | 630 | <col width="300px" class="enum_members_name"> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-GrlPls.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#grilo-GrlPls.object-hierarchy" class="shortcut">Object Hierarchy</a></span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-GrlPls.description" class="shortcut">Description</a></span> | |
19 | 18 | </td> |
20 | 19 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
21 | 20 | <td><a accesskey="u" href="grilo-pls.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
67 | 66 | </table></div> |
68 | 67 | </div> |
69 | 68 | <div class="refsect1"> |
70 | <a name="grilo-GrlPls.object-hierarchy"></a><h2>Object Hierarchy</h2> | |
71 | <pre class="screen"> | |
72 | </pre> | |
73 | </div> | |
74 | <div class="refsect1"> | |
75 | 69 | <a name="grilo-GrlPls.includes"></a><h2>Includes</h2> |
76 | 70 | <pre class="synopsis">#include <grilo.h> |
77 | 71 | </pre> |
91 | 85 | <p>Check if a file identified by GrlMedia object is a playlist or not. |
92 | 86 | This function does blocking I/O.</p> |
93 | 87 | <div class="refsect3"> |
94 | <a name="id-1.6.5.2.7.2.5"></a><h4>Parameters</h4> | |
88 | <a name="id-1.6.5.2.6.2.5"></a><h4>Parameters</h4> | |
95 | 89 | <div class="informaltable"><table width="100%" border="0"> |
96 | 90 | <colgroup> |
97 | 91 | <col width="150px" class="parameters_name"> |
106 | 100 | </table></div> |
107 | 101 | </div> |
108 | 102 | <div class="refsect3"> |
109 | <a name="id-1.6.5.2.7.2.6"></a><h4>Returns</h4> | |
103 | <a name="id-1.6.5.2.6.2.6"></a><h4>Returns</h4> | |
110 | 104 | <p> <code class="literal">TRUE</code> if a GrlMedia is recognized as a playlist.</p> |
111 | 105 | <p></p> |
112 | 106 | </div> |
135 | 129 | <p>See <a class="link" href="GrlSource.html#grl-source-browse" title="grl_source_browse ()"><code class="function">grl_source_browse()</code></a> function for additional information |
136 | 130 | and sample code.</p> |
137 | 131 | <div class="refsect3"> |
138 | <a name="id-1.6.5.2.7.3.8"></a><h4>Parameters</h4> | |
132 | <a name="id-1.6.5.2.6.3.8"></a><h4>Parameters</h4> | |
139 | 133 | <div class="informaltable"><table width="100%" border="0"> |
140 | 134 | <colgroup> |
141 | 135 | <col width="150px" class="parameters_name"> |
183 | 177 | </table></div> |
184 | 178 | </div> |
185 | 179 | <div class="refsect3"> |
186 | <a name="id-1.6.5.2.7.3.9"></a><h4>Returns</h4> | |
180 | <a name="id-1.6.5.2.6.3.9"></a><h4>Returns</h4> | |
187 | 181 | <p> the operation identifier</p> |
188 | 182 | <p></p> |
189 | 183 | </div> |
214 | 208 | <p>See <a class="link" href="GrlSource.html#grl-source-browse-sync" title="grl_source_browse_sync ()"><code class="function">grl_source_browse_sync()</code></a> function for additional information |
215 | 209 | and sample code.</p> |
216 | 210 | <div class="refsect3"> |
217 | <a name="id-1.6.5.2.7.4.9"></a><h4>Parameters</h4> | |
211 | <a name="id-1.6.5.2.6.4.9"></a><h4>Parameters</h4> | |
218 | 212 | <div class="informaltable"><table width="100%" border="0"> |
219 | 213 | <colgroup> |
220 | 214 | <col width="150px" class="parameters_name"> |
258 | 252 | </table></div> |
259 | 253 | </div> |
260 | 254 | <div class="refsect3"> |
261 | <a name="id-1.6.5.2.7.4.10"></a><h4>Returns</h4> | |
255 | <a name="id-1.6.5.2.6.4.10"></a><h4>Returns</h4> | |
262 | 256 | <p> a <span class="type">GList</span> with <a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> |
263 | 257 | elements. After use <code class="function">g_object_unref()</code> every element and <code class="function">g_list_free()</code> the |
264 | 258 | list. </p> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-Multiple.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#grilo-Multiple.object-hierarchy" class="shortcut">Object Hierarchy</a></span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-Multiple.description" class="shortcut">Description</a></span> | |
19 | 18 | </td> |
20 | 19 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
21 | 20 | <td><a accesskey="u" href="multiple.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
65 | 64 | </tr> |
66 | 65 | </tbody> |
67 | 66 | </table></div> |
68 | </div> | |
69 | <div class="refsect1"> | |
70 | <a name="grilo-Multiple.object-hierarchy"></a><h2>Object Hierarchy</h2> | |
71 | <pre class="screen"> | |
72 | </pre> | |
73 | 67 | </div> |
74 | 68 | <div class="refsect1"> |
75 | 69 | <a name="grilo-Multiple.includes"></a><h2>Includes</h2> |
100 | 94 | .</p> |
101 | 95 | <p>This method is asynchronous.</p> |
102 | 96 | <div class="refsect3"> |
103 | <a name="id-1.5.6.2.7.2.6"></a><h4>Parameters</h4> | |
97 | <a name="id-1.5.6.2.6.2.6"></a><h4>Parameters</h4> | |
104 | 98 | <div class="informaltable"><table width="100%" border="0"> |
105 | 99 | <colgroup> |
106 | 100 | <col width="150px" class="parameters_name"> |
157 | 151 | plugin (see <a class="link" href="GrlSource.html#grl-source-search" title="grl_source_search ()"><span class="type">grl_source_search</span></a> for more details).</p> |
158 | 152 | <p>This method is asynchronous.</p> |
159 | 153 | <div class="refsect3"> |
160 | <a name="id-1.5.6.2.7.3.7"></a><h4>Parameters</h4> | |
154 | <a name="id-1.5.6.2.6.3.7"></a><h4>Parameters</h4> | |
161 | 155 | <div class="informaltable"><table width="100%" border="0"> |
162 | 156 | <colgroup> |
163 | 157 | <col width="150px" class="parameters_name"> |
201 | 195 | </table></div> |
202 | 196 | </div> |
203 | 197 | <div class="refsect3"> |
204 | <a name="id-1.5.6.2.7.3.8"></a><h4>Returns</h4> | |
198 | <a name="id-1.5.6.2.6.3.8"></a><h4>Returns</h4> | |
205 | 199 | <p> the operation identifier</p> |
206 | 200 | <p></p> |
207 | 201 | </div> |
221 | 215 | .</p> |
222 | 216 | <p>This method is synchronous.</p> |
223 | 217 | <div class="refsect3"> |
224 | <a name="id-1.5.6.2.7.4.6"></a><h4>Parameters</h4> | |
218 | <a name="id-1.5.6.2.6.4.6"></a><h4>Parameters</h4> | |
225 | 219 | <div class="informaltable"><table width="100%" border="0"> |
226 | 220 | <colgroup> |
227 | 221 | <col width="150px" class="parameters_name"> |
261 | 255 | </table></div> |
262 | 256 | </div> |
263 | 257 | <div class="refsect3"> |
264 | <a name="id-1.5.6.2.7.4.7"></a><h4>Returns</h4> | |
258 | <a name="id-1.5.6.2.6.4.7"></a><h4>Returns</h4> | |
265 | 259 | <p> a list with <a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> elements. </p> |
266 | 260 | <p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GrlMedia][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p> |
267 | 261 | </div> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-grilo.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#grilo-grilo.object-hierarchy" class="shortcut">Object Hierarchy</a></span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-grilo.description" class="shortcut">Description</a></span> | |
19 | 18 | </td> |
20 | 19 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
21 | 20 | <td><a accesskey="u" href="rn03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
67 | 66 | </table></div> |
68 | 67 | </div> |
69 | 68 | <div class="refsect1"> |
70 | <a name="grilo-grilo.object-hierarchy"></a><h2>Object Hierarchy</h2> | |
71 | <pre class="screen"> | |
72 | </pre> | |
73 | </div> | |
74 | <div class="refsect1"> | |
75 | 69 | <a name="grilo-grilo.includes"></a><h2>Includes</h2> |
76 | 70 | <pre class="synopsis">#include <grilo.h> |
77 | 71 | </pre> |
96 | 90 | <em class="parameter"><code><span class="type">gchar</span> **argv[]</code></em>);</pre> |
97 | 91 | <p>Initializes the Grilo library</p> |
98 | 92 | <div class="refsect3"> |
99 | <a name="id-1.5.2.7.2.5"></a><h4>Parameters</h4> | |
93 | <a name="id-1.5.2.6.2.5"></a><h4>Parameters</h4> | |
100 | 94 | <div class="informaltable"><table width="100%" border="0"> |
101 | 95 | <colgroup> |
102 | 96 | <col width="150px" class="parameters_name"> |
130 | 124 | libraries that use the GOption commandline parser |
131 | 125 | (see <code class="function">g_option_context_add_group()</code> ).</p> |
132 | 126 | <div class="refsect3"> |
133 | <a name="id-1.5.2.7.3.6"></a><h4>Returns</h4> | |
127 | <a name="id-1.5.2.6.3.6"></a><h4>Returns</h4> | |
134 | 128 | <p> a pointer to Grilo's option group. Should be dereferenced |
135 | 129 | after use.</p> |
136 | 130 | <p></p> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-grl-definitions.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#grilo-grl-definitions.object-hierarchy" class="shortcut">Object Hierarchy</a></span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-grl-definitions.description" class="shortcut">Description</a></span> | |
19 | 18 | </td> |
20 | 19 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
21 | 20 | <td><a accesskey="u" href="misc.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
51 | 50 | </table></div> |
52 | 51 | </div> |
53 | 52 | <div class="refsect1"> |
54 | <a name="grilo-grl-definitions.object-hierarchy"></a><h2>Object Hierarchy</h2> | |
55 | <pre class="screen"> | |
56 | </pre> | |
57 | </div> | |
58 | <div class="refsect1"> | |
59 | 53 | <a name="grilo-grl-definitions.includes"></a><h2>Includes</h2> |
60 | 54 | <pre class="synopsis">#include <grilo.h> |
61 | 55 | </pre> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-grl-error.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#grilo-grl-error.object-hierarchy" class="shortcut">Object Hierarchy</a></span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-grl-error.description" class="shortcut">Description</a></span> | |
19 | 18 | </td> |
20 | 19 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
21 | 20 | <td><a accesskey="u" href="misc.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
51 | 50 | </table></div> |
52 | 51 | </div> |
53 | 52 | <div class="refsect1"> |
54 | <a name="grilo-grl-error.object-hierarchy"></a><h2>Object Hierarchy</h2> | |
55 | <pre class="screen"> | |
56 | </pre> | |
57 | </div> | |
58 | <div class="refsect1"> | |
59 | 53 | <a name="grilo-grl-error.includes"></a><h2>Includes</h2> |
60 | 54 | <pre class="synopsis">#include <grilo.h> |
61 | 55 | </pre> |
72 | 66 | <a name="GrlCoreError"></a><h3>enum GrlCoreError</h3> |
73 | 67 | <p>These constants identify all the available core errors</p> |
74 | 68 | <div class="refsect3"> |
75 | <a name="id-1.5.9.4.8.2.4"></a><h4>Members</h4> | |
69 | <a name="id-1.5.9.4.7.2.4"></a><h4>Members</h4> | |
76 | 70 | <div class="informaltable"><table width="100%" border="0"> |
77 | 71 | <colgroup> |
78 | 72 | <col width="300px" class="enum_members_name"> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-grl-log.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#grilo-grl-log.object-hierarchy" class="shortcut">Object Hierarchy</a></span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-grl-log.description" class="shortcut">Description</a></span> | |
19 | 18 | </td> |
20 | 19 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
21 | 20 | <td><a accesskey="u" href="misc.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
164 | 163 | </table></div> |
165 | 164 | </div> |
166 | 165 | <div class="refsect1"> |
167 | <a name="grilo-grl-log.object-hierarchy"></a><h2>Object Hierarchy</h2> | |
168 | <pre class="screen"> | |
169 | </pre> | |
170 | </div> | |
171 | <div class="refsect1"> | |
172 | 166 | <a name="grilo-grl-log.includes"></a><h2>Includes</h2> |
173 | 167 | <pre class="synopsis">#include <grilo.h> |
174 | 168 | </pre> |
186 | 180 | debugging messages. You will probably want to use one of the ones described |
187 | 181 | below.</p> |
188 | 182 | <div class="refsect3"> |
189 | <a name="id-1.5.9.3.8.2.5"></a><h4>Parameters</h4> | |
183 | <a name="id-1.5.9.3.7.2.5"></a><h4>Parameters</h4> | |
190 | 184 | <div class="informaltable"><table width="100%" border="0"> |
191 | 185 | <colgroup> |
192 | 186 | <col width="150px" class="parameters_name"> |
220 | 214 | </pre> |
221 | 215 | <p>Defines a GrlLogDomain variable.</p> |
222 | 216 | <div class="refsect3"> |
223 | <a name="id-1.5.9.3.8.3.5"></a><h4>Parameters</h4> | |
217 | <a name="id-1.5.9.3.7.3.5"></a><h4>Parameters</h4> | |
224 | 218 | <div class="informaltable"><table width="100%" border="0"> |
225 | 219 | <colgroup> |
226 | 220 | <col width="150px" class="parameters_name"> |
242 | 236 | </pre> |
243 | 237 | <p>Declares a GrlLogDomain variable as extern. Use in header files.</p> |
244 | 238 | <div class="refsect3"> |
245 | <a name="id-1.5.9.3.8.4.5"></a><h4>Parameters</h4> | |
239 | <a name="id-1.5.9.3.7.4.5"></a><h4>Parameters</h4> | |
246 | 240 | <div class="informaltable"><table width="100%" border="0"> |
247 | 241 | <colgroup> |
248 | 242 | <col width="150px" class="parameters_name"> |
263 | 257 | <pre class="programlisting">#define GRL_LOG_DOMAIN_FREE(domain)</pre> |
264 | 258 | <p>Free a previously allocated <a class="link" href="grilo-grl-log.html#GrlLogDomain" title="GrlLogDomain"><span class="type">GrlLogDomain</span></a>.</p> |
265 | 259 | <div class="refsect3"> |
266 | <a name="id-1.5.9.3.8.5.5"></a><h4>Parameters</h4> | |
260 | <a name="id-1.5.9.3.7.5.5"></a><h4>Parameters</h4> | |
267 | 261 | <div class="informaltable"><table width="100%" border="0"> |
268 | 262 | <colgroup> |
269 | 263 | <col width="150px" class="parameters_name"> |
284 | 278 | <pre class="programlisting">#define GRL_LOG_DOMAIN_INIT(domain, name)</pre> |
285 | 279 | <p>Creates a new <a class="link" href="grilo-grl-log.html#GrlLogDomain" title="GrlLogDomain"><span class="type">GrlLogDomain</span></a> with the given name.</p> |
286 | 280 | <div class="refsect3"> |
287 | <a name="id-1.5.9.3.8.6.5"></a><h4>Parameters</h4> | |
281 | <a name="id-1.5.9.3.7.6.5"></a><h4>Parameters</h4> | |
288 | 282 | <div class="informaltable"><table width="100%" border="0"> |
289 | 283 | <colgroup> |
290 | 284 | <col width="150px" class="parameters_name"> |
313 | 307 | </pre> |
314 | 308 | <p>Defines a static GrlLogDomain variable.</p> |
315 | 309 | <div class="refsect3"> |
316 | <a name="id-1.5.9.3.8.7.5"></a><h4>Parameters</h4> | |
310 | <a name="id-1.5.9.3.7.7.5"></a><h4>Parameters</h4> | |
317 | 311 | <div class="informaltable"><table width="100%" border="0"> |
318 | 312 | <colgroup> |
319 | 313 | <col width="150px" class="parameters_name"> |
334 | 328 | <pre class="programlisting">#define GRL_DEBUG(...)</pre> |
335 | 329 | <p>Output a debugging message in the default log domain.</p> |
336 | 330 | <div class="refsect3"> |
337 | <a name="id-1.5.9.3.8.8.5"></a><h4>Parameters</h4> | |
331 | <a name="id-1.5.9.3.7.8.5"></a><h4>Parameters</h4> | |
338 | 332 | <div class="informaltable"><table width="100%" border="0"> |
339 | 333 | <colgroup> |
340 | 334 | <col width="150px" class="parameters_name"> |
355 | 349 | <pre class="programlisting">#define GRL_ERROR(...)</pre> |
356 | 350 | <p>Output an error message in the default log domain.</p> |
357 | 351 | <div class="refsect3"> |
358 | <a name="id-1.5.9.3.8.9.5"></a><h4>Parameters</h4> | |
352 | <a name="id-1.5.9.3.7.9.5"></a><h4>Parameters</h4> | |
359 | 353 | <div class="informaltable"><table width="100%" border="0"> |
360 | 354 | <colgroup> |
361 | 355 | <col width="150px" class="parameters_name"> |
376 | 370 | <pre class="programlisting">#define GRL_INFO(...)</pre> |
377 | 371 | <p>Output an informational message in the default log domain.</p> |
378 | 372 | <div class="refsect3"> |
379 | <a name="id-1.5.9.3.8.10.5"></a><h4>Parameters</h4> | |
373 | <a name="id-1.5.9.3.7.10.5"></a><h4>Parameters</h4> | |
380 | 374 | <div class="informaltable"><table width="100%" border="0"> |
381 | 375 | <colgroup> |
382 | 376 | <col width="150px" class="parameters_name"> |
397 | 391 | <pre class="programlisting">#define GRL_MESSAGE(...)</pre> |
398 | 392 | <p>Output a logging message in the default log domain.</p> |
399 | 393 | <div class="refsect3"> |
400 | <a name="id-1.5.9.3.8.11.5"></a><h4>Parameters</h4> | |
394 | <a name="id-1.5.9.3.7.11.5"></a><h4>Parameters</h4> | |
401 | 395 | <div class="informaltable"><table width="100%" border="0"> |
402 | 396 | <colgroup> |
403 | 397 | <col width="150px" class="parameters_name"> |
418 | 412 | <pre class="programlisting">#define GRL_WARNING(...)</pre> |
419 | 413 | <p>Output a warning message in the default log domain.</p> |
420 | 414 | <div class="refsect3"> |
421 | <a name="id-1.5.9.3.8.12.5"></a><h4>Parameters</h4> | |
415 | <a name="id-1.5.9.3.7.12.5"></a><h4>Parameters</h4> | |
422 | 416 | <div class="informaltable"><table width="100%" border="0"> |
423 | 417 | <colgroup> |
424 | 418 | <col width="150px" class="parameters_name"> |
444 | 438 | <em class="parameter"><code>...</code></em>);</pre> |
445 | 439 | <p>Send a log message.</p> |
446 | 440 | <div class="refsect3"> |
447 | <a name="id-1.5.9.3.8.13.5"></a><h4>Parameters</h4> | |
441 | <a name="id-1.5.9.3.7.13.5"></a><h4>Parameters</h4> | |
448 | 442 | <div class="informaltable"><table width="100%" border="0"> |
449 | 443 | <colgroup> |
450 | 444 | <col width="150px" class="parameters_name"> |
524 | 518 | defining the GRL_DEBUG environment variable to a configuration string |
525 | 519 | as described above</div> |
526 | 520 | <div class="refsect3"> |
527 | <a name="id-1.5.9.3.8.14.11"></a><h4>Parameters</h4> | |
521 | <a name="id-1.5.9.3.7.14.11"></a><h4>Parameters</h4> | |
528 | 522 | <div class="informaltable"><table width="100%" border="0"> |
529 | 523 | <colgroup> |
530 | 524 | <col width="150px" class="parameters_name"> |
548 | 542 | <p>Releases <em class="parameter"><code>domain</code></em> |
549 | 543 | .</p> |
550 | 544 | <div class="refsect3"> |
551 | <a name="id-1.5.9.3.8.15.5"></a><h4>Parameters</h4> | |
545 | <a name="id-1.5.9.3.7.15.5"></a><h4>Parameters</h4> | |
552 | 546 | <div class="informaltable"><table width="100%" border="0"> |
553 | 547 | <colgroup> |
554 | 548 | <col width="150px" class="parameters_name"> |
570 | 564 | <pre class="programlisting"><a class="link" href="grilo-grl-log.html#GrlLogDomain" title="GrlLogDomain"><span class="returnvalue">GrlLogDomain</span></a> * |
571 | 565 | grl_log_domain_new (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre> |
572 | 566 | <div class="refsect3"> |
573 | <a name="id-1.5.9.3.8.16.4"></a><h4>Parameters</h4> | |
567 | <a name="id-1.5.9.3.7.16.4"></a><h4>Parameters</h4> | |
574 | 568 | <div class="informaltable"><table width="100%" border="0"> |
575 | 569 | <colgroup> |
576 | 570 | <col width="150px" class="parameters_name"> |
585 | 579 | </table></div> |
586 | 580 | </div> |
587 | 581 | <div class="refsect3"> |
588 | <a name="id-1.5.9.3.8.16.5"></a><h4>Returns</h4> | |
582 | <a name="id-1.5.9.3.7.16.5"></a><h4>Returns</h4> | |
589 | 583 | <p> The new log domain</p> |
590 | 584 | <p></p> |
591 | 585 | </div> |
603 | 597 | <a name="GrlLogLevel"></a><h3>enum GrlLogLevel</h3> |
604 | 598 | <p>Grilo log levels. Defines the level of verbosity selected in Grilo.</p> |
605 | 599 | <div class="refsect3"> |
606 | <a name="id-1.5.9.3.9.3.4"></a><h4>Members</h4> | |
600 | <a name="id-1.5.9.3.8.3.4"></a><h4>Members</h4> | |
607 | 601 | <div class="informaltable"><table width="100%" border="0"> |
608 | 602 | <colgroup> |
609 | 603 | <col width="300px" class="enum_members_name"> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-grl-metadata-key.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#grilo-grl-metadata-key.object-hierarchy" class="shortcut">Object Hierarchy</a></span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-grl-metadata-key.description" class="shortcut">Description</a></span> | |
19 | 18 | </td> |
20 | 19 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
21 | 20 | <td><a accesskey="u" href="misc.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
328 | 327 | </table></div> |
329 | 328 | </div> |
330 | 329 | <div class="refsect1"> |
331 | <a name="grilo-grl-metadata-key.object-hierarchy"></a><h2>Object Hierarchy</h2> | |
332 | <pre class="screen"> | |
333 | </pre> | |
334 | </div> | |
335 | <div class="refsect1"> | |
336 | 330 | <a name="grilo-grl-metadata-key.includes"></a><h2>Includes</h2> |
337 | 331 | <pre class="synopsis">#include <grilo.h> |
338 | 332 | </pre> |
385 | 379 | grl_metadata_key_get_desc (<em class="parameter"><code><a class="link" href="grilo-grl-metadata-key.html#GrlKeyID" title="GrlKeyID"><span class="type">GrlKeyID</span></a> key</code></em>);</pre> |
386 | 380 | <p>Retrieves the description associated with the key</p> |
387 | 381 | <div class="refsect3"> |
388 | <a name="id-1.5.9.2.8.8.5"></a><h4>Parameters</h4> | |
382 | <a name="id-1.5.9.2.7.8.5"></a><h4>Parameters</h4> | |
389 | 383 | <div class="informaltable"><table width="100%" border="0"> |
390 | 384 | <colgroup> |
391 | 385 | <col width="150px" class="parameters_name"> |
400 | 394 | </table></div> |
401 | 395 | </div> |
402 | 396 | <div class="refsect3"> |
403 | <a name="id-1.5.9.2.8.8.6"></a><h4>Returns</h4> | |
397 | <a name="id-1.5.9.2.7.8.6"></a><h4>Returns</h4> | |
404 | 398 | <p> the description of the key</p> |
405 | 399 | <p></p> |
406 | 400 | </div> |
413 | 407 | grl_metadata_key_get_name (<em class="parameter"><code><a class="link" href="grilo-grl-metadata-key.html#GrlKeyID" title="GrlKeyID"><span class="type">GrlKeyID</span></a> key</code></em>);</pre> |
414 | 408 | <p>Retrieves the name associated with the key</p> |
415 | 409 | <div class="refsect3"> |
416 | <a name="id-1.5.9.2.8.9.5"></a><h4>Parameters</h4> | |
410 | <a name="id-1.5.9.2.7.9.5"></a><h4>Parameters</h4> | |
417 | 411 | <div class="informaltable"><table width="100%" border="0"> |
418 | 412 | <colgroup> |
419 | 413 | <col width="150px" class="parameters_name"> |
428 | 422 | </table></div> |
429 | 423 | </div> |
430 | 424 | <div class="refsect3"> |
431 | <a name="id-1.5.9.2.8.9.6"></a><h4>Returns</h4> | |
425 | <a name="id-1.5.9.2.7.9.6"></a><h4>Returns</h4> | |
432 | 426 | <p> The name of the key</p> |
433 | 427 | <p></p> |
434 | 428 | </div> |
441 | 435 | grl_metadata_key_get_type (<em class="parameter"><code><a class="link" href="grilo-grl-metadata-key.html#GrlKeyID" title="GrlKeyID"><span class="type">GrlKeyID</span></a> key</code></em>);</pre> |
442 | 436 | <p>Retrieves the expected type for values associated with this key</p> |
443 | 437 | <div class="refsect3"> |
444 | <a name="id-1.5.9.2.8.10.5"></a><h4>Parameters</h4> | |
438 | <a name="id-1.5.9.2.7.10.5"></a><h4>Parameters</h4> | |
445 | 439 | <div class="informaltable"><table width="100%" border="0"> |
446 | 440 | <colgroup> |
447 | 441 | <col width="150px" class="parameters_name"> |
456 | 450 | </table></div> |
457 | 451 | </div> |
458 | 452 | <div class="refsect3"> |
459 | <a name="id-1.5.9.2.8.10.6"></a><h4>Returns</h4> | |
453 | <a name="id-1.5.9.2.7.10.6"></a><h4>Returns</h4> | |
460 | 454 | <p> the expected value type</p> |
461 | 455 | <p></p> |
462 | 456 | </div> |
471 | 465 | <p>Returns a <span class="type">GList</span> containing the va_list keys. Use <a class="link" href="grilo-grl-metadata-key.html#GRL-METADATA-KEY-INVALID:CAPS" title="GRL_METADATA_KEY_INVALID"><span class="type">GRL_METADATA_KEY_INVALID</span></a> |
472 | 466 | to finalize them.</p> |
473 | 467 | <div class="refsect3"> |
474 | <a name="id-1.5.9.2.8.11.5"></a><h4>Parameters</h4> | |
468 | <a name="id-1.5.9.2.7.11.5"></a><h4>Parameters</h4> | |
475 | 469 | <div class="informaltable"><table width="100%" border="0"> |
476 | 470 | <colgroup> |
477 | 471 | <col width="150px" class="parameters_name"> |
493 | 487 | </table></div> |
494 | 488 | </div> |
495 | 489 | <div class="refsect3"> |
496 | <a name="id-1.5.9.2.8.11.6"></a><h4>Returns</h4> | |
490 | <a name="id-1.5.9.2.7.11.6"></a><h4>Returns</h4> | |
497 | 491 | <p> a <span class="type">GList</span></p> |
498 | 492 | <p></p> |
499 | 493 | </div> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-grl-operation.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#grilo-grl-operation.object-hierarchy" class="shortcut">Object Hierarchy</a></span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-grl-operation.description" class="shortcut">Description</a></span> | |
19 | 18 | </td> |
20 | 19 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
21 | 20 | <td><a accesskey="u" href="misc.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
75 | 74 | </table></div> |
76 | 75 | </div> |
77 | 76 | <div class="refsect1"> |
78 | <a name="grilo-grl-operation.object-hierarchy"></a><h2>Object Hierarchy</h2> | |
79 | <pre class="screen"> | |
80 | </pre> | |
81 | </div> | |
82 | <div class="refsect1"> | |
83 | 77 | <a name="grilo-grl-operation.includes"></a><h2>Includes</h2> |
84 | 78 | <pre class="synopsis">#include <grilo.h> |
85 | 79 | </pre> |
95 | 89 | grl_operation_cancel (<em class="parameter"><code><span class="type">guint</span> operation_id</code></em>);</pre> |
96 | 90 | <p>Cancel an operation.</p> |
97 | 91 | <div class="refsect3"> |
98 | <a name="id-1.5.9.6.7.2.5"></a><h4>Parameters</h4> | |
92 | <a name="id-1.5.9.6.6.2.5"></a><h4>Parameters</h4> | |
99 | 93 | <div class="informaltable"><table width="100%" border="0"> |
100 | 94 | <colgroup> |
101 | 95 | <col width="150px" class="parameters_name"> |
117 | 111 | grl_operation_get_data (<em class="parameter"><code><span class="type">guint</span> operation_id</code></em>);</pre> |
118 | 112 | <p>Obtains the previously attached data</p> |
119 | 113 | <div class="refsect3"> |
120 | <a name="id-1.5.9.6.7.3.5"></a><h4>Parameters</h4> | |
114 | <a name="id-1.5.9.6.6.3.5"></a><h4>Parameters</h4> | |
121 | 115 | <div class="informaltable"><table width="100%" border="0"> |
122 | 116 | <colgroup> |
123 | 117 | <col width="150px" class="parameters_name"> |
132 | 126 | </table></div> |
133 | 127 | </div> |
134 | 128 | <div class="refsect3"> |
135 | <a name="id-1.5.9.6.7.3.6"></a><h4>Returns</h4> | |
129 | <a name="id-1.5.9.6.6.3.6"></a><h4>Returns</h4> | |
136 | 130 | <p> The previously attached data. </p> |
137 | 131 | <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p> |
138 | 132 | </div> |
145 | 139 | <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre> |
146 | 140 | <p>Attach a pointer to the specific operation.</p> |
147 | 141 | <div class="refsect3"> |
148 | <a name="id-1.5.9.6.7.4.5"></a><h4>Parameters</h4> | |
142 | <a name="id-1.5.9.6.6.4.5"></a><h4>Parameters</h4> | |
149 | 143 | <div class="informaltable"><table width="100%" border="0"> |
150 | 144 | <colgroup> |
151 | 145 | <col width="150px" class="parameters_name"> |
179 | 173 | callback is not called if <em class="parameter"><code>user_data</code></em> |
180 | 174 | is <code class="literal">NULL</code>.</p> |
181 | 175 | <div class="refsect3"> |
182 | <a name="id-1.5.9.6.7.5.6"></a><h4>Parameters</h4> | |
176 | <a name="id-1.5.9.6.6.5.6"></a><h4>Parameters</h4> | |
183 | 177 | <div class="informaltable"><table width="100%" border="0"> |
184 | 178 | <colgroup> |
185 | 179 | <col width="150px" class="parameters_name"> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"> |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-grl-util.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> | |
18 | <a href="#grilo-grl-util.object-hierarchy" class="shortcut">Object Hierarchy</a></span> | |
16 | <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> | |
17 | <a href="#grilo-grl-util.description" class="shortcut">Description</a></span> | |
19 | 18 | </td> |
20 | 19 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
21 | 20 | <td><a accesskey="u" href="misc.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
67 | 66 | </table></div> |
68 | 67 | </div> |
69 | 68 | <div class="refsect1"> |
70 | <a name="grilo-grl-util.object-hierarchy"></a><h2>Object Hierarchy</h2> | |
71 | <pre class="screen"> | |
72 | </pre> | |
73 | </div> | |
74 | <div class="refsect1"> | |
75 | 69 | <a name="grilo-grl-util.includes"></a><h2>Includes</h2> |
76 | 70 | <pre class="synopsis">#include <grilo.h> |
77 | 71 | </pre> |
86 | 80 | <pre class="programlisting"><span class="returnvalue">GDateTime</span> * |
87 | 81 | grl_date_time_from_iso8601 (<em class="parameter"><code>const <span class="type">gchar</span> *date</code></em>);</pre> |
88 | 82 | <div class="refsect3"> |
89 | <a name="id-1.5.9.7.7.2.4"></a><h4>Parameters</h4> | |
83 | <a name="id-1.5.9.7.6.2.4"></a><h4>Parameters</h4> | |
90 | 84 | <div class="informaltable"><table width="100%" border="0"> |
91 | 85 | <colgroup> |
92 | 86 | <col width="150px" class="parameters_name"> |
101 | 95 | </table></div> |
102 | 96 | </div> |
103 | 97 | <div class="refsect3"> |
104 | <a name="id-1.5.9.7.7.2.5"></a><h4>Returns</h4> | |
98 | <a name="id-1.5.9.7.6.2.5"></a><h4>Returns</h4> | |
105 | 99 | <p> a newly-allocated <span class="type">GDateTime</span> set to the time corresponding to |
106 | 100 | <em class="parameter"><code>date</code></em> |
107 | 101 | , or <code class="literal">NULL</code> if <em class="parameter"><code>date</code></em> |
119 | 113 | <p>Returns a <span class="type">GList</span> containing the va_list pointers. Use <em class="parameter"><code>NULL</code></em> |
120 | 114 | to finalize them,</p> |
121 | 115 | <div class="refsect3"> |
122 | <a name="id-1.5.9.7.7.3.5"></a><h4>Parameters</h4> | |
116 | <a name="id-1.5.9.7.6.3.5"></a><h4>Parameters</h4> | |
123 | 117 | <div class="informaltable"><table width="100%" border="0"> |
124 | 118 | <colgroup> |
125 | 119 | <col width="150px" class="parameters_name"> |
141 | 135 | </table></div> |
142 | 136 | </div> |
143 | 137 | <div class="refsect3"> |
144 | <a name="id-1.5.9.7.7.3.6"></a><h4>Returns</h4> | |
138 | <a name="id-1.5.9.7.6.3.6"></a><h4>Returns</h4> | |
145 | 139 | <p> a <span class="type">GList</span>.</p> |
146 | 140 | <p></p> |
147 | 141 | </div> |
179 | 173 | . If the later |
180 | 174 | is also 0, then page size will be <span class="type">G_MAXUINT</span>.</p> |
181 | 175 | <div class="refsect3"> |
182 | <a name="id-1.5.9.7.7.4.9"></a><h4>Parameters</h4> | |
176 | <a name="id-1.5.9.7.6.4.9"></a><h4>Parameters</h4> | |
183 | 177 | <div class="informaltable"><table width="100%" border="0"> |
184 | 178 | <colgroup> |
185 | 179 | <col width="150px" class="parameters_name"> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><a accesskey="u" href="rn04.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><a accesskey="u" href="rn04.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
163 | 163 | <keyword type="macro" name="GRL_PLUGIN_LIST_VAR" link="GrlRegistry.html#GRL-PLUGIN-LIST-VAR:CAPS"/> |
164 | 164 | <keyword type="macro" name="GRL_PLUGIN_PATH_VAR" link="GrlRegistry.html#GRL-PLUGIN-PATH-VAR:CAPS"/> |
165 | 165 | <keyword type="macro" name="GRL_PLUGIN_RANKS_VAR" link="GrlRegistry.html#GRL-PLUGIN-RANKS-VAR:CAPS"/> |
166 | <keyword type="signal" name="The “metadata-key-added” signal" link="GrlRegistry.html#GrlRegistry-metadata-key-added"/> | |
166 | 167 | <keyword type="signal" name="The “source-added” signal" link="GrlRegistry.html#GrlRegistry-source-added"/> |
167 | 168 | <keyword type="signal" name="The “source-removed” signal" link="GrlRegistry.html#GrlRegistry-source-removed"/> |
168 | 169 | <keyword type="function" name="grl_plugin_get_author ()" link="GrlPlugin.html#grl-plugin-get-author" since="0.2.0"/> |
247 | 248 | <keyword type="property" name="The “source-icon” property" link="GrlSource.html#GrlSource--source-icon"/> |
248 | 249 | <keyword type="property" name="The “source-id” property" link="GrlSource.html#GrlSource--source-id"/> |
249 | 250 | <keyword type="property" name="The “source-name” property" link="GrlSource.html#GrlSource--source-name"/> |
251 | <keyword type="property" name="The “source-tags” property" link="GrlSource.html#GrlSource--source-tags"/> | |
250 | 252 | <keyword type="property" name="The “supported-media” property" link="GrlSource.html#GrlSource--supported-media"/> |
251 | 253 | <keyword type="signal" name="The “content-changed” signal" link="GrlSource.html#GrlSource-content-changed"/> |
252 | 254 | <keyword type="function" name="grl_caps_new ()" link="GrlCaps.html#grl-caps-new" since="0.2.0"/> |
431 | 433 | <keyword type="function" name="grl_media_get_url ()" link="GrlMedia.html#grl-media-get-url" since="0.1.4"/> |
432 | 434 | <keyword type="function" name="grl_media_get_url_data ()" link="GrlMedia.html#grl-media-get-url-data" since="0.1.10"/> |
433 | 435 | <keyword type="function" name="grl_media_get_url_data_nth ()" link="GrlMedia.html#grl-media-get-url-data-nth" since="0.1.10"/> |
436 | <keyword type="function" name="grl_media_get_size ()" link="GrlMedia.html#grl-media-get-size" since="0.2.10"/> | |
434 | 437 | <keyword type="function" name="grl_media_serialize ()" link="GrlMedia.html#grl-media-serialize" since="0.1.6"/> |
435 | 438 | <keyword type="function" name="grl_media_serialize_extended ()" link="GrlMedia.html#grl-media-serialize-extended" since="0.1.6"/> |
436 | 439 | <keyword type="function" name="grl_media_set_author ()" link="GrlMedia.html#grl-media-set-author" since="0.1.4"/> |
461 | 464 | <keyword type="function" name="grl_media_set_title ()" link="GrlMedia.html#grl-media-set-title" since="0.1.4"/> |
462 | 465 | <keyword type="function" name="grl_media_set_url ()" link="GrlMedia.html#grl-media-set-url" since="0.1.4"/> |
463 | 466 | <keyword type="function" name="grl_media_set_url_data ()" link="GrlMedia.html#grl-media-set-url-data" since="0.1.10"/> |
467 | <keyword type="function" name="grl_media_set_size ()" link="GrlMedia.html#grl-media-set-size" since="0.2.10"/> | |
464 | 468 | <keyword type="function" name="grl_media_unserialize ()" link="GrlMedia.html#grl-media-unserialize" since="0.1.6"/> |
465 | 469 | <keyword type="struct" name="struct GrlMedia" link="GrlMedia.html#GrlMedia-struct"/> |
466 | 470 | <keyword type="struct" name="struct GrlMediaClass" link="GrlMedia.html#GrlMediaClass"/> |
1 | 1 | <ONLINE href="http://git.gnome.org/browse/grilo-plugins"> |
2 | 2 | <ANCHOR id="grilo-grilo" href="grilo/grilo-grilo.html"> |
3 | 3 | <ANCHOR id="grilo-grilo.functions" href="grilo/grilo-grilo.html#grilo-grilo.functions"> |
4 | <ANCHOR id="grilo-grilo.object-hierarchy" href="grilo/grilo-grilo.html#grilo-grilo.object-hierarchy"> | |
5 | 4 | <ANCHOR id="grilo-grilo.includes" href="grilo/grilo-grilo.html#grilo-grilo.includes"> |
6 | 5 | <ANCHOR id="grilo-grilo.description" href="grilo/grilo-grilo.html#grilo-grilo.description"> |
7 | 6 | <ANCHOR id="grilo-grilo.functions_details" href="grilo/grilo-grilo.html#grilo-grilo.functions_details"> |
52 | 51 | <ANCHOR id="GRL-PLUGIN-PATH-VAR:CAPS" href="grilo/GrlRegistry.html#GRL-PLUGIN-PATH-VAR:CAPS"> |
53 | 52 | <ANCHOR id="GRL-PLUGIN-RANKS-VAR:CAPS" href="grilo/GrlRegistry.html#GRL-PLUGIN-RANKS-VAR:CAPS"> |
54 | 53 | <ANCHOR id="GrlRegistry.signal-details" href="grilo/GrlRegistry.html#GrlRegistry.signal-details"> |
54 | <ANCHOR id="GrlRegistry-metadata-key-added" href="grilo/GrlRegistry.html#GrlRegistry-metadata-key-added"> | |
55 | 55 | <ANCHOR id="GrlRegistry-source-added" href="grilo/GrlRegistry.html#GrlRegistry-source-added"> |
56 | 56 | <ANCHOR id="GrlRegistry-source-removed" href="grilo/GrlRegistry.html#GrlRegistry-source-removed"> |
57 | 57 | <ANCHOR id="GrlRegistry.see-also" href="grilo/GrlRegistry.html#GrlRegistry.see-also"> |
159 | 159 | <ANCHOR id="GrlSource--source-icon" href="grilo/GrlSource.html#GrlSource--source-icon"> |
160 | 160 | <ANCHOR id="GrlSource--source-id" href="grilo/GrlSource.html#GrlSource--source-id"> |
161 | 161 | <ANCHOR id="GrlSource--source-name" href="grilo/GrlSource.html#GrlSource--source-name"> |
162 | <ANCHOR id="GrlSource--source-tags" href="grilo/GrlSource.html#GrlSource--source-tags"> | |
162 | 163 | <ANCHOR id="GrlSource--supported-media" href="grilo/GrlSource.html#GrlSource--supported-media"> |
163 | 164 | <ANCHOR id="GrlSource.signal-details" href="grilo/GrlSource.html#GrlSource.signal-details"> |
164 | 165 | <ANCHOR id="GrlSource-content-changed" href="grilo/GrlSource.html#GrlSource-content-changed"> |
218 | 219 | <ANCHOR id="GrlOperationOptions.see-also" href="grilo/GrlOperationOptions.html#GrlOperationOptions.see-also"> |
219 | 220 | <ANCHOR id="grilo-Multiple" href="grilo/grilo-Multiple.html"> |
220 | 221 | <ANCHOR id="grilo-Multiple.functions" href="grilo/grilo-Multiple.html#grilo-Multiple.functions"> |
221 | <ANCHOR id="grilo-Multiple.object-hierarchy" href="grilo/grilo-Multiple.html#grilo-Multiple.object-hierarchy"> | |
222 | 222 | <ANCHOR id="grilo-Multiple.includes" href="grilo/grilo-Multiple.html#grilo-Multiple.includes"> |
223 | 223 | <ANCHOR id="grilo-Multiple.description" href="grilo/grilo-Multiple.html#grilo-Multiple.description"> |
224 | 224 | <ANCHOR id="grilo-Multiple.functions_details" href="grilo/grilo-Multiple.html#grilo-Multiple.functions_details"> |
404 | 404 | <ANCHOR id="grl-media-get-url" href="grilo/GrlMedia.html#grl-media-get-url"> |
405 | 405 | <ANCHOR id="grl-media-get-url-data" href="grilo/GrlMedia.html#grl-media-get-url-data"> |
406 | 406 | <ANCHOR id="grl-media-get-url-data-nth" href="grilo/GrlMedia.html#grl-media-get-url-data-nth"> |
407 | <ANCHOR id="grl-media-get-size" href="grilo/GrlMedia.html#grl-media-get-size"> | |
407 | 408 | <ANCHOR id="grl-media-serialize" href="grilo/GrlMedia.html#grl-media-serialize"> |
408 | 409 | <ANCHOR id="grl-media-serialize-extended" href="grilo/GrlMedia.html#grl-media-serialize-extended"> |
409 | 410 | <ANCHOR id="grl-media-set-author" href="grilo/GrlMedia.html#grl-media-set-author"> |
434 | 435 | <ANCHOR id="grl-media-set-title" href="grilo/GrlMedia.html#grl-media-set-title"> |
435 | 436 | <ANCHOR id="grl-media-set-url" href="grilo/GrlMedia.html#grl-media-set-url"> |
436 | 437 | <ANCHOR id="grl-media-set-url-data" href="grilo/GrlMedia.html#grl-media-set-url-data"> |
438 | <ANCHOR id="grl-media-set-size" href="grilo/GrlMedia.html#grl-media-set-size"> | |
437 | 439 | <ANCHOR id="grl-media-unserialize" href="grilo/GrlMedia.html#grl-media-unserialize"> |
438 | 440 | <ANCHOR id="GrlMedia.other_details" href="grilo/GrlMedia.html#GrlMedia.other_details"> |
439 | 441 | <ANCHOR id="GrlMedia-struct" href="grilo/GrlMedia.html#GrlMedia-struct"> |
566 | 568 | <ANCHOR id="grilo-grl-metadata-key" href="grilo/grilo-grl-metadata-key.html"> |
567 | 569 | <ANCHOR id="grilo-grl-metadata-key.functions" href="grilo/grilo-grl-metadata-key.html#grilo-grl-metadata-key.functions"> |
568 | 570 | <ANCHOR id="grilo-grl-metadata-key.other" href="grilo/grilo-grl-metadata-key.html#grilo-grl-metadata-key.other"> |
569 | <ANCHOR id="grilo-grl-metadata-key.object-hierarchy" href="grilo/grilo-grl-metadata-key.html#grilo-grl-metadata-key.object-hierarchy"> | |
570 | 571 | <ANCHOR id="grilo-grl-metadata-key.includes" href="grilo/grilo-grl-metadata-key.html#grilo-grl-metadata-key.includes"> |
571 | 572 | <ANCHOR id="grilo-grl-metadata-key.description" href="grilo/grilo-grl-metadata-key.html#grilo-grl-metadata-key.description"> |
572 | 573 | <ANCHOR id="grilo-grl-metadata-key.functions_details" href="grilo/grilo-grl-metadata-key.html#grilo-grl-metadata-key.functions_details"> |
636 | 637 | <ANCHOR id="grilo-grl-log" href="grilo/grilo-grl-log.html"> |
637 | 638 | <ANCHOR id="grilo-grl-log.functions" href="grilo/grilo-grl-log.html#grilo-grl-log.functions"> |
638 | 639 | <ANCHOR id="grilo-grl-log.other" href="grilo/grilo-grl-log.html#grilo-grl-log.other"> |
639 | <ANCHOR id="grilo-grl-log.object-hierarchy" href="grilo/grilo-grl-log.html#grilo-grl-log.object-hierarchy"> | |
640 | 640 | <ANCHOR id="grilo-grl-log.includes" href="grilo/grilo-grl-log.html#grilo-grl-log.includes"> |
641 | 641 | <ANCHOR id="grilo-grl-log.description" href="grilo/grilo-grl-log.html#grilo-grl-log.description"> |
642 | 642 | <ANCHOR id="grilo-grl-log.functions_details" href="grilo/grilo-grl-log.html#grilo-grl-log.functions_details"> |
661 | 661 | <ANCHOR id="GRL-LOG-DOMAIN-DEFAULT:CAPS" href="grilo/grilo-grl-log.html#GRL-LOG-DOMAIN-DEFAULT:CAPS"> |
662 | 662 | <ANCHOR id="grilo-grl-error" href="grilo/grilo-grl-error.html"> |
663 | 663 | <ANCHOR id="grilo-grl-error.other" href="grilo/grilo-grl-error.html#grilo-grl-error.other"> |
664 | <ANCHOR id="grilo-grl-error.object-hierarchy" href="grilo/grilo-grl-error.html#grilo-grl-error.object-hierarchy"> | |
665 | 664 | <ANCHOR id="grilo-grl-error.includes" href="grilo/grilo-grl-error.html#grilo-grl-error.includes"> |
666 | 665 | <ANCHOR id="grilo-grl-error.description" href="grilo/grilo-grl-error.html#grilo-grl-error.description"> |
667 | 666 | <ANCHOR id="grilo-grl-error.functions_details" href="grilo/grilo-grl-error.html#grilo-grl-error.functions_details"> |
670 | 669 | <ANCHOR id="GRL-CORE-ERROR:CAPS" href="grilo/grilo-grl-error.html#GRL-CORE-ERROR:CAPS"> |
671 | 670 | <ANCHOR id="grilo-grl-definitions" href="grilo/grilo-grl-definitions.html"> |
672 | 671 | <ANCHOR id="grilo-grl-definitions.other" href="grilo/grilo-grl-definitions.html#grilo-grl-definitions.other"> |
673 | <ANCHOR id="grilo-grl-definitions.object-hierarchy" href="grilo/grilo-grl-definitions.html#grilo-grl-definitions.object-hierarchy"> | |
674 | 672 | <ANCHOR id="grilo-grl-definitions.includes" href="grilo/grilo-grl-definitions.html#grilo-grl-definitions.includes"> |
675 | 673 | <ANCHOR id="grilo-grl-definitions.description" href="grilo/grilo-grl-definitions.html#grilo-grl-definitions.description"> |
676 | 674 | <ANCHOR id="grilo-grl-definitions.functions_details" href="grilo/grilo-grl-definitions.html#grilo-grl-definitions.functions_details"> |
679 | 677 | <ANCHOR id="GRL-SOURCE-REMAINING-UNKNOWN:CAPS" href="grilo/grilo-grl-definitions.html#GRL-SOURCE-REMAINING-UNKNOWN:CAPS"> |
680 | 678 | <ANCHOR id="grilo-grl-operation" href="grilo/grilo-grl-operation.html"> |
681 | 679 | <ANCHOR id="grilo-grl-operation.functions" href="grilo/grilo-grl-operation.html#grilo-grl-operation.functions"> |
682 | <ANCHOR id="grilo-grl-operation.object-hierarchy" href="grilo/grilo-grl-operation.html#grilo-grl-operation.object-hierarchy"> | |
683 | 680 | <ANCHOR id="grilo-grl-operation.includes" href="grilo/grilo-grl-operation.html#grilo-grl-operation.includes"> |
684 | 681 | <ANCHOR id="grilo-grl-operation.description" href="grilo/grilo-grl-operation.html#grilo-grl-operation.description"> |
685 | 682 | <ANCHOR id="grilo-grl-operation.functions_details" href="grilo/grilo-grl-operation.html#grilo-grl-operation.functions_details"> |
690 | 687 | <ANCHOR id="grilo-grl-operation.other_details" href="grilo/grilo-grl-operation.html#grilo-grl-operation.other_details"> |
691 | 688 | <ANCHOR id="grilo-grl-util" href="grilo/grilo-grl-util.html"> |
692 | 689 | <ANCHOR id="grilo-grl-util.functions" href="grilo/grilo-grl-util.html#grilo-grl-util.functions"> |
693 | <ANCHOR id="grilo-grl-util.object-hierarchy" href="grilo/grilo-grl-util.html#grilo-grl-util.object-hierarchy"> | |
694 | 690 | <ANCHOR id="grilo-grl-util.includes" href="grilo/grilo-grl-util.html#grilo-grl-util.includes"> |
695 | 691 | <ANCHOR id="grilo-grl-util.description" href="grilo/grilo-grl-util.html#grilo-grl-util.description"> |
696 | 692 | <ANCHOR id="grilo-grl-util.functions_details" href="grilo/grilo-grl-util.html#grilo-grl-util.functions_details"> |
701 | 697 | <ANCHOR id="grilo-GrlNetWc" href="grilo/grilo-GrlNetWc.html"> |
702 | 698 | <ANCHOR id="grilo-GrlNetWc.functions" href="grilo/grilo-GrlNetWc.html#grilo-GrlNetWc.functions"> |
703 | 699 | <ANCHOR id="grilo-GrlNetWc.other" href="grilo/grilo-GrlNetWc.html#grilo-GrlNetWc.other"> |
704 | <ANCHOR id="grilo-GrlNetWc.object-hierarchy" href="grilo/grilo-GrlNetWc.html#grilo-GrlNetWc.object-hierarchy"> | |
705 | 700 | <ANCHOR id="grilo-GrlNetWc.includes" href="grilo/grilo-GrlNetWc.html#grilo-GrlNetWc.includes"> |
706 | 701 | <ANCHOR id="grilo-GrlNetWc.description" href="grilo/grilo-GrlNetWc.html#grilo-GrlNetWc.description"> |
707 | 702 | <ANCHOR id="grilo-GrlNetWc.functions_details" href="grilo/grilo-GrlNetWc.html#grilo-GrlNetWc.functions_details"> |
723 | 718 | <ANCHOR id="GRL-NET-WC-ERROR:CAPS" href="grilo/grilo-GrlNetWc.html#GRL-NET-WC-ERROR:CAPS"> |
724 | 719 | <ANCHOR id="grilo-GrlPls" href="grilo/grilo-GrlPls.html"> |
725 | 720 | <ANCHOR id="grilo-GrlPls.functions" href="grilo/grilo-GrlPls.html#grilo-GrlPls.functions"> |
726 | <ANCHOR id="grilo-GrlPls.object-hierarchy" href="grilo/grilo-GrlPls.html#grilo-GrlPls.object-hierarchy"> | |
727 | 721 | <ANCHOR id="grilo-GrlPls.includes" href="grilo/grilo-GrlPls.html#grilo-GrlPls.includes"> |
728 | 722 | <ANCHOR id="grilo-GrlPls.description" href="grilo/grilo-GrlPls.html#grilo-GrlPls.description"> |
729 | 723 | <ANCHOR id="grilo-GrlPls.functions_details" href="grilo/grilo-GrlPls.html#grilo-GrlPls.functions_details"> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><a accesskey="u" href="rn03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><a accesskey="u" href="rn03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><a accesskey="u" href="rn03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><img src="up-insensitive.png" width="16" height="16" border="0"></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><img src="up-insensitive.png" width="16" height="16" border="0"></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><img src="up-insensitive.png" width="16" height="16" border="0"></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><img src="up-insensitive.png" width="16" height="16" border="0"></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><img src="up-insensitive.png" width="16" height="16" border="0"></td> |
11 | 11 | <link rel="stylesheet" href="style.css" type="text/css"> |
12 | 12 | </head> |
13 | 13 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> | |
14 | <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
15 | 15 | <td width="100%" align="left" class="shortcuts"></td> |
16 | 16 | <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
17 | 17 | <td><a accesskey="u" href="rn03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
29 | 29 | vertical-align: top; |
30 | 30 | } |
31 | 31 | |
32 | div.gallery-float | |
33 | { | |
34 | float: left; | |
35 | padding: 10px; | |
36 | } | |
37 | div.gallery-float img | |
38 | { | |
39 | border-style: none; | |
40 | } | |
41 | div.gallery-spacer | |
42 | { | |
43 | clear: both; | |
44 | } | |
45 | ||
46 | a, a:visited | |
47 | { | |
48 | text-decoration: none; | |
49 | /* tango:sky blue 2 */ | |
50 | color: #3465a4; | |
51 | } | |
52 | a:hover | |
53 | { | |
54 | text-decoration: underline; | |
55 | /* tango:sky blue 1 */ | |
56 | color: #729fcf; | |
57 | } | |
58 | ||
59 | div.informaltable table | |
60 | { | |
61 | border-collapse: separate; | |
62 | border-spacing: 1em 0.5em; | |
63 | border: none; | |
64 | } | |
65 | ||
66 | div.informaltable table td, div.informaltable table th | |
67 | { | |
68 | vertical-align: top; | |
69 | } | |
70 | ||
71 | .function_type, | |
72 | .variable_type, | |
73 | .property_type, | |
74 | .signal_type, | |
75 | .parameter_name, | |
76 | .struct_member_name, | |
77 | .union_member_name, | |
78 | .define_keyword, | |
79 | .datatype_keyword, | |
80 | .typedef_keyword | |
81 | { | |
82 | text-align: right; | |
83 | } | |
84 | ||
85 | /* dim non-primary columns */ | |
86 | .c_punctuation, | |
87 | .function_type, | |
88 | .variable_type, | |
89 | .property_type, | |
90 | .signal_type, | |
91 | .define_keyword, | |
92 | .datatype_keyword, | |
93 | .typedef_keyword, | |
94 | .property_flags, | |
95 | .signal_flags, | |
96 | .parameter_annotations, | |
97 | .enum_member_annotations, | |
98 | .struct_member_annotations, | |
99 | .union_member_annotations | |
100 | { | |
101 | color: #888a85; | |
102 | } | |
103 | ||
104 | .function_type a, | |
105 | .function_type a:visited, | |
106 | .function_type a:hover, | |
107 | .property_type a, | |
108 | .property_type a:visited, | |
109 | .property_type a:hover, | |
110 | .signal_type a, | |
111 | .signal_type a:visited, | |
112 | .signal_type a:hover, | |
113 | .signal_flags a, | |
114 | .signal_flags a:visited, | |
115 | .signal_flags a:hover | |
116 | { | |
117 | color: #729fcf; | |
118 | } | |
119 | ||
120 | td p | |
121 | { | |
122 | margin: 0.25em; | |
123 | } | |
124 | ||
125 | div.table table | |
126 | { | |
127 | border-collapse: collapse; | |
128 | border-spacing: 0px; | |
129 | /* tango:aluminium 3 */ | |
130 | border: solid 1px #babdb6; | |
131 | } | |
132 | ||
133 | div.table table td, div.table table th | |
134 | { | |
135 | /* tango:aluminium 3 */ | |
136 | border: solid 1px #babdb6; | |
137 | padding: 3px; | |
138 | vertical-align: top; | |
139 | } | |
140 | ||
141 | div.table table th | |
142 | { | |
143 | /* tango:aluminium 2 */ | |
144 | background-color: #d3d7cf; | |
145 | } | |
146 | ||
147 | h4 | |
148 | { | |
149 | color: #555753; | |
150 | } | |
151 | ||
152 | hr | |
153 | { | |
154 | /* tango:aluminium 1 */ | |
155 | color: #d3d7cf; | |
156 | background: #d3d7cf; | |
157 | border: none 0px; | |
158 | height: 1px; | |
159 | clear: both; | |
160 | margin: 2.0em 0em 2.0em 0em; | |
161 | } | |
162 | ||
163 | dl.toc dt | |
164 | { | |
165 | padding-bottom: 0.25em; | |
166 | } | |
167 | ||
168 | dl.toc > dd > dl > dt | |
169 | { | |
170 | padding-top: 0.25em; | |
171 | padding-bottom: 0.25em; | |
172 | } | |
173 | ||
174 | dl.toc > dt | |
175 | { | |
176 | padding-top: 1em; | |
177 | padding-bottom: 0.5em; | |
178 | font-weight: bold; | |
179 | } | |
180 | ||
181 | .parameter | |
182 | { | |
183 | font-style: normal; | |
184 | } | |
185 | ||
186 | .footer | |
187 | { | |
188 | padding-top: 3.5em; | |
189 | /* tango:aluminium 3 */ | |
190 | color: #babdb6; | |
191 | text-align: center; | |
192 | font-size: 80%; | |
193 | } | |
194 | ||
195 | .informalfigure, | |
196 | .figure | |
197 | { | |
198 | margin: 1em; | |
199 | } | |
200 | ||
201 | .informalexample, | |
202 | .example | |
203 | { | |
204 | margin-top: 1em; | |
205 | margin-bottom: 1em; | |
206 | } | |
207 | ||
208 | .warning | |
209 | { | |
210 | /* tango:orange 0/1 */ | |
211 | background: #ffeed9; | |
212 | background: rgba(252, 175, 62, 0.1); | |
213 | border-color: #ffb04f; | |
214 | border-color: rgba(252, 175, 62, 0.2); | |
215 | } | |
216 | .note | |
217 | { | |
218 | /* tango:chameleon 0/0.5 */ | |
219 | background: #d8ffb2; | |
220 | background: rgba(138, 226, 52, 0.1); | |
221 | border-color: #abf562; | |
222 | border-color: rgba(138, 226, 52, 0.2); | |
223 | } | |
224 | div.blockquote | |
225 | { | |
226 | border-color: #eeeeec; | |
227 | } | |
228 | .note, .warning, div.blockquote | |
229 | { | |
230 | padding: 0.5em; | |
231 | border-width: 1px; | |
232 | border-style: solid; | |
233 | margin: 2em; | |
234 | } | |
235 | .note p, .warning p | |
236 | { | |
237 | margin: 0; | |
238 | } | |
239 | ||
240 | div.warning h3.title, | |
241 | div.note h3.title | |
242 | { | |
243 | display: none; | |
244 | } | |
245 | ||
246 | p + div.section | |
247 | { | |
248 | margin-top: 1em; | |
249 | } | |
250 | ||
251 | div.refnamediv, | |
252 | div.refsynopsisdiv, | |
253 | div.refsect1, | |
254 | div.refsect2, | |
255 | div.toc, | |
256 | div.section | |
257 | { | |
258 | margin-bottom: 1em; | |
259 | } | |
260 | ||
261 | /* blob links */ | |
262 | h2 .extralinks, h3 .extralinks | |
263 | { | |
264 | float: right; | |
265 | /* tango:aluminium 3 */ | |
266 | color: #babdb6; | |
267 | font-size: 80%; | |
268 | font-weight: normal; | |
269 | } | |
270 | ||
271 | .lineart | |
272 | { | |
273 | color: #d3d7cf; | |
274 | font-weight: normal; | |
275 | } | |
276 | ||
277 | .annotation | |
278 | { | |
279 | /* tango:aluminium 5 */ | |
280 | color: #555753; | |
281 | font-weight: normal; | |
282 | } | |
283 | ||
284 | .structfield | |
285 | { | |
286 | font-style: normal; | |
287 | font-weight: normal; | |
288 | } | |
289 | ||
290 | acronym,abbr | |
291 | { | |
292 | border-bottom: 1px dotted gray; | |
293 | } | |
294 | ||
295 | /* code listings */ | |
296 | ||
297 | .listing_code .programlisting .normal, | |
298 | .listing_code .programlisting .normal a, | |
299 | .listing_code .programlisting .number, | |
300 | .listing_code .programlisting .cbracket, | |
301 | .listing_code .programlisting .symbol { color: #555753; } | |
302 | .listing_code .programlisting .comment, | |
303 | .listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ | |
304 | .listing_code .programlisting .function, | |
305 | .listing_code .programlisting .function a, | |
306 | .listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ | |
307 | .listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */ | |
308 | .listing_code .programlisting .keyword, | |
309 | .listing_code .programlisting .usertype, | |
310 | .listing_code .programlisting .type, | |
311 | .listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */ | |
312 | ||
313 | .listing_frame { | |
314 | /* tango:sky blue 1 */ | |
315 | border: solid 1px #729fcf; | |
316 | border: solid 1px rgba(114, 159, 207, 0.2); | |
317 | padding: 0px; | |
318 | } | |
319 | ||
320 | .listing_lines, .listing_code { | |
321 | margin-top: 0px; | |
322 | margin-bottom: 0px; | |
323 | padding: 0.5em; | |
324 | } | |
325 | .listing_lines { | |
326 | /* tango:sky blue 0.5 */ | |
327 | background: #a6c5e3; | |
328 | background: rgba(114, 159, 207, 0.2); | |
329 | /* tango:aluminium 6 */ | |
330 | color: #2e3436; | |
331 | } | |
332 | .listing_code { | |
333 | /* tango:sky blue 0 */ | |
334 | background: #e6f3ff; | |
335 | background: rgba(114, 159, 207, 0.1); | |
336 | } | |
337 | .listing_code .programlisting { | |
338 | /* override from previous */ | |
339 | border: none 0px; | |
340 | padding: 0px; | |
341 | background: none; | |
342 | } | |
343 | .listing_lines pre, .listing_code pre { | |
344 | margin: 0px; | |
345 | } | |
346 | ||
32 | 347 | @media screen { |
33 | 348 | sup a.footnote |
34 | 349 | { |
52 | 367 | */ |
53 | 368 | body |
54 | 369 | { |
55 | padding-top: 5em; | |
370 | padding-top: 2.5em; | |
56 | 371 | padding-bottom: 500px; |
57 | 372 | max-width: 60em; |
58 | 373 | } |
66 | 381 | position: fixed; |
67 | 382 | background: #e2e2e2; |
68 | 383 | border-bottom: solid 1px #babdb6; |
384 | border-spacing: 5px; | |
69 | 385 | margin-top: 0; |
70 | 386 | margin-bottom: 0; |
71 | 387 | top: 0; |
72 | 388 | left: 0; |
73 | height: 3em; | |
74 | 389 | z-index: 10; |
390 | } | |
391 | table.navigation#top td | |
392 | { | |
393 | padding-left: 6px; | |
394 | padding-right: 6px; | |
75 | 395 | } |
76 | 396 | .navigation a, .navigation a:visited |
77 | 397 | { |
93 | 413 | td.shortcuts .dim |
94 | 414 | { |
95 | 415 | color: #babdb6; |
416 | } | |
417 | .navigation .title | |
418 | { | |
419 | font-size: 80%; | |
420 | max-width: none; | |
421 | margin: 0px; | |
422 | font-weight: normal; | |
96 | 423 | } |
97 | 424 | } |
98 | 425 | @media screen and (min-width: 60em) { |
126 | 453 | col.enum_members_description { width: auto; } |
127 | 454 | col.union_members_name { width: auto; } |
128 | 455 | col.union_members_description { width: auto; } |
456 | .listing_lines { display: none; } | |
129 | 457 | } |
130 | 458 | @media print { |
131 | 459 | table.navigation { |
145 | 473 | } |
146 | 474 | } |
147 | 475 | |
148 | .navigation .title | |
149 | { | |
150 | font-size: 120%; | |
151 | } | |
152 | ||
153 | div.gallery-float | |
154 | { | |
155 | float: left; | |
156 | padding: 10px; | |
157 | } | |
158 | div.gallery-float img | |
159 | { | |
160 | border-style: none; | |
161 | } | |
162 | div.gallery-spacer | |
163 | { | |
164 | clear: both; | |
165 | } | |
166 | ||
167 | a, a:visited | |
168 | { | |
169 | text-decoration: none; | |
170 | /* tango:sky blue 2 */ | |
171 | color: #3465a4; | |
172 | } | |
173 | a:hover | |
174 | { | |
175 | text-decoration: underline; | |
176 | /* tango:sky blue 1 */ | |
177 | color: #729fcf; | |
178 | } | |
179 | ||
180 | div.informaltable table | |
181 | { | |
182 | border-collapse: separate; | |
183 | border-spacing: 20px 3px; | |
184 | border: none; | |
185 | } | |
186 | ||
187 | div.informaltable table td, div.informaltable table th | |
188 | { | |
189 | vertical-align: top; | |
190 | } | |
191 | ||
192 | .function_type, | |
193 | .variable_type, | |
194 | .property_type, | |
195 | .signal_type, | |
196 | .parameter_name, | |
197 | .struct_member_name, | |
198 | .union_member_name, | |
199 | .define_keyword, | |
200 | .datatype_keyword, | |
201 | .typedef_keyword | |
202 | { | |
203 | text-align: right; | |
204 | } | |
205 | ||
206 | /* dim non-primary columns */ | |
207 | .c_punctuation, | |
208 | .function_type, | |
209 | .variable_type, | |
210 | .property_type, | |
211 | .signal_type, | |
212 | .define_keyword, | |
213 | .datatype_keyword, | |
214 | .typedef_keyword, | |
215 | .property_flags, | |
216 | .signal_flags, | |
217 | .parameter_annotations, | |
218 | .enum_member_annotations, | |
219 | .struct_member_annotations, | |
220 | .union_member_annotations | |
221 | { | |
222 | color: #888a85; | |
223 | } | |
224 | ||
225 | .function_type a, | |
226 | .function_type a:visited, | |
227 | .function_type a:hover, | |
228 | .property_type a, | |
229 | .property_type a:visited, | |
230 | .property_type a:hover, | |
231 | .signal_type a, | |
232 | .signal_type a:visited, | |
233 | .signal_type a:hover, | |
234 | .signal_flags a, | |
235 | .signal_flags a:visited, | |
236 | .signal_flags a:hover | |
237 | { | |
238 | color: #729fcf; | |
239 | } | |
240 | ||
241 | div.table table | |
242 | { | |
243 | border-collapse: collapse; | |
244 | border-spacing: 0px; | |
245 | /* tango:aluminium 3 */ | |
246 | border: solid 1px #babdb6; | |
247 | } | |
248 | ||
249 | div.table table td, div.table table th | |
250 | { | |
251 | /* tango:aluminium 3 */ | |
252 | border: solid 1px #babdb6; | |
253 | padding: 3px; | |
254 | vertical-align: top; | |
255 | } | |
256 | ||
257 | div.table table th | |
258 | { | |
259 | /* tango:aluminium 2 */ | |
260 | background-color: #d3d7cf; | |
261 | } | |
262 | ||
263 | h4 | |
264 | { | |
265 | color: #555753; | |
266 | } | |
267 | ||
268 | hr | |
269 | { | |
270 | /* tango:aluminium 1 */ | |
271 | color: #d3d7cf; | |
272 | background: #d3d7cf; | |
273 | border: none 0px; | |
274 | height: 1px; | |
275 | clear: both; | |
276 | margin: 2.0em 0em 2.0em 0em; | |
277 | } | |
278 | ||
279 | dl.toc dt | |
280 | { | |
281 | padding-bottom: 0.25em; | |
282 | } | |
283 | ||
284 | dl.toc > dd > dl > dt | |
285 | { | |
286 | padding-top: 0.25em; | |
287 | padding-bottom: 0.25em; | |
288 | } | |
289 | ||
290 | dl.toc > dt | |
291 | { | |
292 | padding-top: 1em; | |
293 | padding-bottom: 0.5em; | |
294 | font-weight: bold; | |
295 | } | |
296 | ||
297 | .parameter | |
298 | { | |
299 | font-style: normal; | |
300 | } | |
301 | ||
302 | .footer | |
303 | { | |
304 | padding-top: 3.5em; | |
305 | /* tango:aluminium 3 */ | |
306 | color: #babdb6; | |
307 | text-align: center; | |
308 | font-size: 80%; | |
309 | } | |
310 | ||
311 | .informalfigure, | |
312 | .figure | |
313 | { | |
314 | margin: 1em; | |
315 | } | |
316 | ||
317 | .informalexample, | |
318 | .example | |
319 | { | |
320 | margin-top: 1em; | |
321 | margin-bottom: 1em; | |
322 | } | |
323 | ||
324 | .warning | |
325 | { | |
326 | /* tango:orange 0/1 */ | |
327 | background: #ffeed9; | |
328 | background: rgba(252, 175, 62, 0.1); | |
329 | border-color: #ffb04f; | |
330 | border-color: rgba(252, 175, 62, 0.2); | |
331 | } | |
332 | .note | |
333 | { | |
334 | /* tango:chameleon 0/0.5 */ | |
335 | background: #d8ffb2; | |
336 | background: rgba(138, 226, 52, 0.1); | |
337 | border-color: #abf562; | |
338 | border-color: rgba(138, 226, 52, 0.2); | |
339 | } | |
340 | div.blockquote | |
341 | { | |
342 | border-color: #eeeeec; | |
343 | } | |
344 | .note, .warning, div.blockquote | |
345 | { | |
346 | padding: 0.5em; | |
347 | border-width: 1px; | |
348 | border-style: solid; | |
349 | margin: 2em; | |
350 | } | |
351 | .note p, .warning p | |
352 | { | |
353 | margin: 0; | |
354 | } | |
355 | ||
356 | div.warning h3.title, | |
357 | div.note h3.title | |
358 | { | |
359 | display: none; | |
360 | } | |
361 | ||
362 | p + div.section | |
363 | { | |
364 | margin-top: 1em; | |
365 | } | |
366 | ||
367 | div.refnamediv, | |
368 | div.refsynopsisdiv, | |
369 | div.refsect1, | |
370 | div.refsect2, | |
371 | div.toc, | |
372 | div.section | |
373 | { | |
374 | margin-bottom: 1em; | |
375 | } | |
376 | ||
377 | /* blob links */ | |
378 | h2 .extralinks, h3 .extralinks | |
379 | { | |
380 | float: right; | |
381 | /* tango:aluminium 3 */ | |
382 | color: #babdb6; | |
383 | font-size: 80%; | |
384 | font-weight: normal; | |
385 | } | |
386 | ||
387 | .lineart | |
388 | { | |
389 | color: #d3d7cf; | |
390 | font-weight: normal; | |
391 | } | |
392 | ||
393 | .annotation | |
394 | { | |
395 | /* tango:aluminium 5 */ | |
396 | color: #555753; | |
397 | font-weight: normal; | |
398 | } | |
399 | ||
400 | .structfield | |
401 | { | |
402 | font-style: normal; | |
403 | font-weight: normal; | |
404 | } | |
405 | ||
406 | acronym,abbr | |
407 | { | |
408 | border-bottom: 1px dotted gray; | |
409 | } | |
410 | ||
411 | /* code listings */ | |
412 | ||
413 | .listing_code .programlisting .cbracket { color: #a40000; } /* tango: scarlet red 3 */ | |
414 | .listing_code .programlisting .comment { color: #a1a39d; } /* tango: aluminium 4 */ | |
415 | .listing_code .programlisting .function { color: #000000; font-weight: bold; } | |
416 | .listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */ | |
417 | .listing_code .programlisting .keyword { color: #4e9a06; } /* tango: chameleon 3 */ | |
418 | .listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ | |
419 | .listing_code .programlisting .normal { color: #000000; } | |
420 | .listing_code .programlisting .number { color: #75507b; } /* tango: plum 2 */ | |
421 | .listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ | |
422 | .listing_code .programlisting .string { color: #c17d11; } /* tango: chocolate 2 */ | |
423 | .listing_code .programlisting .type { color: #000000; } | |
424 | .listing_code .programlisting .type a { color: #11326b; } /* tango: sky blue 4 */ | |
425 | .listing_code .programlisting .symbol { color: #ce5c00; } /* tango: orange 3 */ | |
426 | ||
427 | .listing_frame { | |
428 | /* tango:sky blue 1 */ | |
429 | border: solid 1px #729fcf; | |
430 | border: solid 1px rgba(114, 159, 207, 0.2); | |
431 | padding: 0px; | |
432 | } | |
433 | ||
434 | .listing_lines, .listing_code { | |
435 | margin-top: 0px; | |
436 | margin-bottom: 0px; | |
437 | padding: 0.5em; | |
438 | } | |
439 | .listing_lines { | |
440 | /* this just adds visual clutter and | |
441 | takes precious room from small screens */ | |
442 | display: none; | |
443 | } | |
444 | .listing_lines { | |
445 | /* tango:sky blue 0.5 */ | |
446 | background: #a6c5e3; | |
447 | background: rgba(114, 159, 207, 0.2); | |
448 | /* tango:aluminium 6 */ | |
449 | color: #2e3436; | |
450 | } | |
451 | .listing_code { | |
452 | /* tango:sky blue 0 */ | |
453 | background: #e6f3ff; | |
454 | background: rgba(114, 159, 207, 0.1); | |
455 | } | |
456 | .listing_code .programlisting { | |
457 | /* override from previous */ | |
458 | border: none 0px; | |
459 | padding: 0px; | |
460 | background: none; | |
461 | } | |
462 | .listing_lines pre, .listing_code pre { | |
463 | margin: 0px; | |
464 | } | |
465 |
15 | 15 | .\" .sp <n> insert n+1 empty lines |
16 | 16 | .\" for manpage-specific macros, see man(7) |
17 | 17 | .SH NAME |
18 | grl-inspect \- show information about a Grilo source or plugin | |
18 | grl-inspect \- show information about Grilo sources and keys | |
19 | 19 | .SH SYNOPSIS |
20 | 20 | .B grl-inspect |
21 | 21 | .RI [ options ] |
22 | .RI [ source ] | |
22 | .RI [ source | key ] | |
23 | 23 | .SH DESCRIPTION |
24 | 24 | This manual page documents briefly the |
25 | 25 | .B grl-inspect |
26 | 26 | command. |
27 | 27 | .PP |
28 | 28 | \fBgrl-inspect\fP is a tool that prints out information on available Grilo |
29 | sources. When executed with no SOURCE argument, grl-inspect will print | |
30 | the list of all plugins and sources. When executed with a SOURCE, | |
29 | sources and metadata keys. When executed with no SOURCE argument, grl-inspect | |
30 | will print the list of all plugins and sources. When executed with a SOURCE, | |
31 | 31 | grl-inspect will print information about that source. |
32 | .PP | |
33 | Alternatively, using \fB-k\fP prints out information about the available | |
34 | metadata keys. | |
32 | 35 | .SH OPTIONS |
33 | 36 | .TP |
34 | 37 | .B \-h, \-\-help |
40 | 43 | .B \-\-help\-all |
41 | 44 | Show summary of all options. |
42 | 45 | .TP |
46 | .B \-k | |
47 | Show information about metadata keys | |
48 | .TP | |
43 | 49 | .BI \-d,\ \-\-delay " seconds" |
44 | 50 | Wait for some seconds before showing results. Useful when plugins may |
45 | 51 | need some time for the source discovery process (example: UPnP). |
118 | 118 | g_simple_async_result_complete_in_idle (G_SIMPLE_ASYNC_RESULT (result)); |
119 | 119 | g_object_unref (result); |
120 | 120 | g_free (new_url); |
121 | if (data_file) | |
122 | g_free (data_file); | |
123 | if (full_path) | |
124 | g_free (full_path); | |
125 | return; | |
126 | } | |
127 | if (data_file) | |
128 | g_free (data_file); | |
129 | if (full_path) | |
130 | g_free (full_path); | |
121 | g_clear_pointer (&data_file, g_free); | |
122 | g_clear_pointer (&full_path, g_free); | |
123 | ||
124 | return; | |
125 | } | |
126 | g_clear_pointer (&data_file, g_free); | |
127 | g_clear_pointer (&full_path, g_free); | |
131 | 128 | |
132 | 129 | g_simple_async_result_set_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (result), |
133 | 130 | new_url, |
155 | 152 | } |
156 | 153 | g_file_get_contents (full_path, content, length, &error); |
157 | 154 | |
158 | if (data_file) | |
159 | g_free (data_file); | |
160 | ||
161 | if (full_path) | |
162 | g_free (full_path); | |
155 | g_clear_pointer (&data_file, g_free); | |
156 | g_clear_pointer (&full_path, g_free); | |
163 | 157 | } |
164 | 158 | |
165 | 159 | void init_mock_requester (GrlNetWc *self) |
205 | 199 | |
206 | 200 | if (!enable_mocking) { |
207 | 201 | g_free (config_filename); |
208 | g_key_file_unref (config); | |
209 | config = NULL; | |
202 | g_clear_pointer (&config, g_key_file_unref); | |
210 | 203 | return; |
211 | 204 | } |
212 | 205 | |
265 | 258 | } |
266 | 259 | |
267 | 260 | if (g_atomic_int_dec_and_test (&refcount)) { |
268 | if (config) { | |
269 | g_key_file_unref (config); | |
270 | } | |
271 | ||
272 | if (base_path) { | |
273 | g_free (base_path); | |
274 | } | |
275 | ||
276 | if (ignored_parameters) { | |
277 | g_regex_unref (ignored_parameters); | |
278 | } | |
261 | g_clear_pointer (&config, g_key_file_unref); | |
262 | g_clear_pointer (&base_path, g_free); | |
263 | g_clear_pointer (&ignored_parameters, g_regex_unref); | |
279 | 264 | } |
280 | 265 | } |
281 | 266 |
442 | 442 | struct request_clos *c = (struct request_clos *) data; |
443 | 443 | |
444 | 444 | g_free (c->url); |
445 | if (c->headers) { | |
446 | g_hash_table_unref (c->headers); | |
447 | } | |
445 | g_clear_pointer (&c->headers, g_hash_table_unref); | |
448 | 446 | g_free (c); |
449 | 447 | } |
450 | 448 | |
789 | 787 | priv->last_request.tv_sec - now.tv_sec, |
790 | 788 | get_url_cb, c, request_clos_destroy); |
791 | 789 | } |
790 | g_source_set_name_by_id (id, "[grl-net] get_url_cb"); | |
792 | 791 | |
793 | 792 | c->source_id = id; |
794 | 793 | g_queue_push_head (self->priv->pending, c); |
803 | 802 | GrlNetWcPrivate *priv = self->priv; |
804 | 803 | struct request_res *rr = op; |
805 | 804 | |
806 | if (priv->previous_data) | |
807 | g_free (priv->previous_data); | |
805 | g_clear_pointer (&priv->previous_data, g_free); | |
808 | 806 | |
809 | 807 | if (is_mocked ()) { |
810 | 808 | get_content_mocked (self, op, &(priv->previous_data), length); |
920 | 918 | callback, |
921 | 919 | user_data); |
922 | 920 | |
923 | if (headers) | |
924 | g_hash_table_unref (headers); | |
921 | g_clear_pointer (&headers, g_hash_table_unref); | |
925 | 922 | } |
926 | 923 | |
927 | 924 |
45 | 45 | |
46 | 46 | INTROSPECTION_GIRS = |
47 | 47 | INTROSPECTION_SCANNER_ARGS = --warn-all --add-include-path=$(top_srcdir)/src |
48 | INTROSPECTION_COMPILER_ARGS = --includedir=$(top_srcdir)/src | |
48 | INTROSPECTION_COMPILER_ARGS = --includedir=$(top_srcdir)/src --includedir=$(top_builddir)/src | |
49 | 49 | |
50 | 50 | introspection_sources = \ |
51 | 51 | $(gir_headers) \ |
60 | 60 | $(top_builddir)/src/lib@GRL_NAME@.la |
61 | 61 | GrlPls_@GRL_MAJORMINOR_NORM@_gir_FILES = $(introspection_sources) |
62 | 62 | INTROSPECTION_GIRS += GrlPls-@GRL_MAJORMINOR@.gir |
63 | INTROSPECTION_COMPILER_ARGS = --includedir=$(top_builddir)/src | |
64 | 63 | |
65 | 64 | girdir = @INTROSPECTION_GIRDIR@ |
66 | 65 | gir_DATA = $(INTROSPECTION_GIRS) |
404 | 404 | @HAVE_INTROSPECTION_TRUE@INTROSPECTION_GIRS = \ |
405 | 405 | @HAVE_INTROSPECTION_TRUE@ GrlPls-@GRL_MAJORMINOR@.gir |
406 | 406 | @HAVE_INTROSPECTION_TRUE@INTROSPECTION_SCANNER_ARGS = --warn-all --add-include-path=$(top_srcdir)/src |
407 | @HAVE_INTROSPECTION_TRUE@INTROSPECTION_COMPILER_ARGS = --includedir=$(top_builddir)/src | |
407 | @HAVE_INTROSPECTION_TRUE@INTROSPECTION_COMPILER_ARGS = --includedir=$(top_srcdir)/src --includedir=$(top_builddir)/src | |
408 | 408 | @HAVE_INTROSPECTION_TRUE@introspection_sources = \ |
409 | 409 | @HAVE_INTROSPECTION_TRUE@ $(gir_headers) \ |
410 | 410 | @HAVE_INTROSPECTION_TRUE@ $(gir_sources) |
74 | 74 | G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE "," \ |
75 | 75 | G_FILE_ATTRIBUTE_STANDARD_TYPE "," \ |
76 | 76 | G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN "," \ |
77 | G_FILE_ATTRIBUTE_STANDARD_SIZE "," \ | |
77 | 78 | G_FILE_ATTRIBUTE_TIME_MODIFIED "," \ |
78 | 79 | G_FILE_ATTRIBUTE_THUMBNAIL_PATH "," \ |
79 | 80 | G_FILE_ATTRIBUTE_THUMBNAILING_FAILED "," \ |
116 | 117 | { |
117 | 118 | g_return_if_fail (priv); |
118 | 119 | |
119 | if (priv->cancellable) { | |
120 | g_object_unref (priv->cancellable); | |
121 | priv->cancellable = NULL; | |
122 | } | |
123 | ||
120 | g_clear_object (&priv->cancellable); | |
124 | 121 | g_free (priv); |
125 | 122 | } |
126 | 123 | |
127 | 124 | static void |
128 | 125 | grl_source_browse_spec_free (GrlSourceBrowseSpec *spec) |
129 | 126 | { |
130 | if (spec->source) { | |
131 | g_object_unref (spec->source); | |
132 | spec->source = NULL; | |
133 | } | |
134 | ||
135 | if (spec->container) { | |
136 | g_object_unref (spec->container); | |
137 | spec->container = NULL; | |
138 | } | |
127 | g_clear_object (&spec->source); | |
128 | g_clear_object (&spec->container); | |
139 | 129 | |
140 | 130 | if (spec->keys) { |
141 | 131 | /* TODO */ |
142 | 132 | spec->keys = NULL; |
143 | 133 | } |
144 | 134 | |
145 | if (spec->options) { | |
146 | g_object_unref (spec->options); | |
147 | spec->options = NULL; | |
148 | } | |
135 | g_clear_object (&spec->options); | |
149 | 136 | |
150 | 137 | if (spec->user_data) { |
151 | 138 | struct _GrlPlsPrivate *priv = (struct _GrlPlsPrivate *) spec->user_data; |
832 | 819 | /* check if we have the entries cached or not */ |
833 | 820 | valid_entries = g_object_get_data (G_OBJECT (bs->container), GRL_DATA_PRIV_PLS_VALID_ENTRIES); |
834 | 821 | if (valid_entries) { |
822 | guint id; | |
823 | ||
835 | 824 | GRL_DEBUG ("%s : using cached data bs=%p", __FUNCTION__, bs); |
836 | g_idle_add ((GSourceFunc) grl_pls_browse_report_results, bs); | |
825 | id = g_idle_add ((GSourceFunc) grl_pls_browse_report_results, bs); | |
826 | g_source_set_name_by_id (id, "[grl-pls] grl_pls_browse_report_results"); | |
837 | 827 | return; |
838 | 828 | } |
839 | 829 | |
1120 | 1110 | } |
1121 | 1111 | |
1122 | 1112 | end: |
1123 | if (file_date) | |
1124 | g_date_time_unref (file_date); | |
1125 | if (min_date) | |
1126 | g_date_time_unref (min_date); | |
1127 | if (max_date) | |
1128 | g_date_time_unref (max_date); | |
1113 | g_clear_pointer (&file_date, g_date_time_unref); | |
1114 | g_clear_pointer (&min_date, g_date_time_unref); | |
1115 | g_clear_pointer (&max_date, g_date_time_unref); | |
1116 | ||
1129 | 1117 | return is_media; |
1130 | 1118 | } |
1131 | 1119 | |
1309 | 1297 | grl_media_set_mime (media, mime); |
1310 | 1298 | } |
1311 | 1299 | |
1300 | /* Size */ | |
1301 | grl_media_set_size (media, g_file_info_get_size (info)); | |
1302 | ||
1312 | 1303 | /* Title */ |
1313 | 1304 | str = g_strdup (g_file_info_get_display_name (info)); |
1314 | 1305 |
0 | # Swedish translation for grilo. | |
1 | # Copyright (C) 2014 grilo's COPYRIGHT HOLDER | |
2 | # This file is distributed under the same license as the grilo package. | |
3 | # Marcus Lundblad <ml@update.uu.se>, 2014. | |
4 | # | |
5 | msgid "" | |
6 | msgstr "" | |
7 | "Project-Id-Version: grilo master\n" | |
8 | "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" | |
9 | "product=grilo&keywords=I18N+L10N&component=general\n" | |
10 | "POT-Creation-Date: 2014-02-08 09:42+0000\n" | |
11 | "PO-Revision-Date: 2014-02-25 22:45+0100\n" | |
12 | "Last-Translator: Marcus Lundblad <ml@update.uu.se>\n" | |
13 | "Language-Team: svenska <tp-sv@listor.tp-sv.se>\n" | |
14 | "Language: sv\n" | |
15 | "MIME-Version: 1.0\n" | |
16 | "Content-Type: text/plain; charset=UTF-8\n" | |
17 | "Content-Transfer-Encoding: 8bit\n" | |
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" | |
19 | "X-Generator: Gtranslator 2.91.6\n" | |
20 | ||
21 | #: ../libs/net/grl-net-mock.c:86 | |
22 | msgid "No mock definition found" | |
23 | msgstr "Ingen attrappdefinition hittades" | |
24 | ||
25 | #: ../libs/net/grl-net-mock.c:98 | |
26 | #, c-format | |
27 | msgid "Could not find mock content %s" | |
28 | msgstr "Kunde inte hitta attrappinnehåll %s" | |
29 | ||
30 | #: ../libs/net/grl-net-mock.c:118 | |
31 | msgid "Could not access mock content" | |
32 | msgstr "Kunde inte komma åt attrappinnehåll" | |
33 | ||
34 | #: ../libs/net/grl-net-wc.c:468 | |
35 | msgid "Cannot connect to the server" | |
36 | msgstr "Kan inte ansluta till servern" | |
37 | ||
38 | #: ../libs/net/grl-net-wc.c:474 | |
39 | msgid "Cannot connect to the proxy server" | |
40 | msgstr "Kan inte ansluta till proxyservern" | |
41 | ||
42 | #: ../libs/net/grl-net-wc.c:481 | |
43 | #, c-format | |
44 | msgid "Invalid request URI or header: %s" | |
45 | msgstr "Ogiltig fråge-URI eller huvud: %s" | |
46 | ||
47 | #: ../libs/net/grl-net-wc.c:488 | |
48 | #, c-format | |
49 | msgid "Authentication required: %s" | |
50 | msgstr "Autentisering krävs: %s" | |
51 | ||
52 | #: ../libs/net/grl-net-wc.c:493 | |
53 | #, c-format | |
54 | msgid "The requested resource was not found: %s" | |
55 | msgstr "Den efterfrågade resursen hittades inte: %s" | |
56 | ||
57 | #: ../libs/net/grl-net-wc.c:500 | |
58 | #, c-format | |
59 | msgid "The entry has been modified since it was downloaded: %s" | |
60 | msgstr "Innehållet har ändrats sedan det laddades ner: %s" | |
61 | ||
62 | #: ../libs/net/grl-net-wc.c:506 ../libs/net/grl-net-wc.c:615 | |
63 | #: ../src/grl-source.c:1736 ../src/grl-source.c:1831 ../src/grl-source.c:1974 | |
64 | #: ../src/grl-source.c:2210 ../src/grl-source.c:2330 | |
65 | #, c-format | |
66 | msgid "Operation was cancelled" | |
67 | msgstr "Åtgärd avbröts" | |
68 | ||
69 | #: ../libs/net/grl-net-wc.c:509 | |
70 | #, c-format | |
71 | msgid "Unhandled status: %s" | |
72 | msgstr "Ohanterad status: %s" | |
73 | ||
74 | #: ../libs/net/grl-net-wc.c:619 ../libs/net/grl-net-wc.c:660 | |
75 | msgid "Data not available" | |
76 | msgstr "Data ej tillgängligt" | |
77 | ||
78 | #: ../libs/net/grl-net-wc.c:713 | |
79 | #, c-format | |
80 | msgid "Invalid URL %s" | |
81 | msgstr "Ogiltig plats %s" | |
82 | ||
83 | #: ../src/grilo.c:181 | |
84 | msgid "Semicolon-separated paths containing Grilo plugins" | |
85 | msgstr "Semikolonavgränsade sökvägar innehållandes Grilo-insticksmoduler" | |
86 | ||
87 | #: ../src/grilo.c:183 | |
88 | msgid "Colon-separated paths containing Grilo plugins" | |
89 | msgstr "Kolonavgränsade sökvägar innehållandes Grilo-insticksmoduler" | |
90 | ||
91 | #: ../src/grilo.c:186 | |
92 | msgid "Colon-separated list of Grilo plugins to use" | |
93 | msgstr "Kolonavgränsad lista med Grilo-insticksmodulera att använda" | |
94 | ||
95 | #: ../src/grilo.c:191 | |
96 | msgid "Grilo Options" | |
97 | msgstr "Grilo-val" | |
98 | ||
99 | #: ../src/grilo.c:192 | |
100 | msgid "Show Grilo Options" | |
101 | msgstr "Visa Grilo-val" | |
102 | ||
103 | #: ../src/grl-multiple.c:130 | |
104 | #, c-format | |
105 | msgid "No searchable sources available" | |
106 | msgstr "Inga sökbara källor är tillgängliga" | |
107 | ||
108 | #: ../src/grl-multiple.c:485 | |
109 | #, c-format | |
110 | msgid "Could not resolve media for URI '%s'" | |
111 | msgstr "Kunde inte slå upp media för platsen ”%s”" | |
112 | ||
113 | #: ../src/grl-registry.c:328 ../src/grl-registry.c:1002 | |
114 | #, c-format | |
115 | msgid "Plugin '%s' is already loaded" | |
116 | msgstr "Insticksmodulen ”%s” är redan laddad" | |
117 | ||
118 | #: ../src/grl-registry.c:340 | |
119 | #, c-format | |
120 | msgid "Failed to initialize plugin from %s" | |
121 | msgstr "Misslyckades med att intitialisera insticksmodul från %s" | |
122 | ||
123 | #: ../src/grl-registry.c:734 | |
124 | #, c-format | |
125 | msgid "Source with id '%s' was not found" | |
126 | msgstr "Källa med id ”%s” hittades inte" | |
127 | ||
128 | #: ../src/grl-registry.c:797 | |
129 | #, c-format | |
130 | msgid "Failed to load plugin from %s" | |
131 | msgstr "Misslyckades med att ladda insticksmodul från %s" | |
132 | ||
133 | #: ../src/grl-registry.c:806 | |
134 | #, c-format | |
135 | msgid "Invalid plugin file %s" | |
136 | msgstr "Ogiltig insticksmodulsfil %s" | |
137 | ||
138 | #: ../src/grl-registry.c:817 | |
139 | #, c-format | |
140 | msgid "'%s' is not a valid plugin file" | |
141 | msgstr "”%s” är inte en giltig insticksmodulsfil" | |
142 | ||
143 | #: ../src/grl-registry.c:836 | |
144 | #, c-format | |
145 | msgid "Unable to load plugin '%s'" | |
146 | msgstr "Misslyckades med att ladda insticksmodul ”%s”" | |
147 | ||
148 | #: ../src/grl-registry.c:847 | |
149 | #, c-format | |
150 | msgid "Plugin '%s' already exists" | |
151 | msgstr "Insticksmodulen ”%s” finns redan" | |
152 | ||
153 | #: ../src/grl-registry.c:944 | |
154 | #, c-format | |
155 | msgid "All configured plugin paths are invalid" | |
156 | msgstr "Alla konfigurerade sökvägar till insticksmoduler är felaktiga" | |
157 | ||
158 | #: ../src/grl-registry.c:991 | |
159 | #, c-format | |
160 | msgid "Plugin '%s' not available" | |
161 | msgstr "Insticksmodulen ”%s” är ej tillgänglig" | |
162 | ||
163 | #: ../src/grl-registry.c:1212 | |
164 | #, c-format | |
165 | msgid "Plugin not found: '%s'" | |
166 | msgstr "Insticksmodul hittades inte: %s" | |
167 | ||
168 | #: ../src/grl-registry.c:1294 | |
169 | #, c-format | |
170 | msgid "Metadata key '%s' cannot be registered" | |
171 | msgstr "Metadatanyckeln ”%s” kunde inte registreras" | |
172 | ||
173 | #: ../src/grl-registry.c:1587 | |
174 | #, c-format | |
175 | msgid "Plugin configuration does not contain 'plugin-id' reference" | |
176 | msgstr "Konfiguration för insticksmodul innehåller ingen ”plugin-in”-referens" | |
177 | ||
178 | #: ../src/grl-source.c:2659 | |
179 | #, c-format | |
180 | msgid "Some keys could not be written" | |
181 | msgstr "Några nycklar kunde inte skrivas" | |
182 | ||
183 | #: ../src/grl-source.c:2731 | |
184 | #, c-format | |
185 | msgid "None of the specified keys are writable" | |
186 | msgstr "Ingen av de angivna nycklarna är skrivbara" | |
187 | ||
188 | #: ../src/grl-source.c:4037 | |
189 | #, c-format | |
190 | msgid "Media has no 'id', cannot remove" | |
191 | msgstr "Mediet har inget ”id”, kan inte ta bort" |
231 | 231 | { |
232 | 232 | GValue value = { 0 }; |
233 | 233 | |
234 | g_return_if_fail (GRL_IS_DATA (data)); | |
235 | g_return_if_fail (key); | |
236 | ||
234 | 237 | if (strvalue) { |
235 | 238 | g_value_init (&value, G_TYPE_STRING); |
236 | 239 | g_value_set_string (&value, strvalue); |
256 | 259 | const gchar * |
257 | 260 | grl_data_get_string (GrlData *data, GrlKeyID key) |
258 | 261 | { |
259 | const GValue *value = grl_data_get (data, key); | |
262 | const GValue *value; | |
263 | ||
264 | g_return_val_if_fail (GRL_IS_DATA (data), NULL); | |
265 | g_return_val_if_fail (key, NULL); | |
266 | ||
267 | value = grl_data_get (data, key); | |
260 | 268 | |
261 | 269 | if (!value || !G_VALUE_HOLDS_STRING (value)) { |
262 | 270 | return NULL; |
280 | 288 | grl_data_set_int (GrlData *data, GrlKeyID key, gint intvalue) |
281 | 289 | { |
282 | 290 | GValue value = { 0 }; |
291 | ||
292 | g_return_if_fail (GRL_IS_DATA (data)); | |
293 | g_return_if_fail (key); | |
294 | ||
283 | 295 | g_value_init (&value, G_TYPE_INT); |
284 | 296 | g_value_set_int (&value, intvalue); |
285 | 297 | grl_data_set (data, key, &value); |
301 | 313 | gint |
302 | 314 | grl_data_get_int (GrlData *data, GrlKeyID key) |
303 | 315 | { |
304 | const GValue *value = grl_data_get (data, key); | |
316 | const GValue *value; | |
317 | ||
318 | g_return_val_if_fail (GRL_IS_DATA (data), 0); | |
319 | g_return_val_if_fail (key, 0); | |
320 | ||
321 | value = grl_data_get (data, key); | |
305 | 322 | |
306 | 323 | if (!value || !G_VALUE_HOLDS_INT (value)) { |
307 | 324 | return 0; |
325 | 342 | grl_data_set_float (GrlData *data, GrlKeyID key, float floatvalue) |
326 | 343 | { |
327 | 344 | GValue value = { 0 }; |
345 | ||
346 | g_return_if_fail (GRL_IS_DATA (data)); | |
347 | g_return_if_fail (key); | |
348 | ||
328 | 349 | g_value_init (&value, G_TYPE_FLOAT); |
329 | 350 | g_value_set_float (&value, floatvalue); |
330 | 351 | grl_data_set (data, key, &value); |
346 | 367 | gfloat |
347 | 368 | grl_data_get_float (GrlData *data, GrlKeyID key) |
348 | 369 | { |
349 | const GValue *value = grl_data_get (data, key); | |
370 | const GValue *value; | |
371 | ||
372 | g_return_val_if_fail (GRL_IS_DATA (data), 0.0); | |
373 | g_return_val_if_fail (key, 0.0); | |
374 | ||
375 | value = grl_data_get (data, key); | |
350 | 376 | |
351 | 377 | if (!value || !G_VALUE_HOLDS_FLOAT (value)) { |
352 | 378 | return 0; |
370 | 396 | grl_data_set_boolean (GrlData *data, GrlKeyID key, gboolean boolvalue) |
371 | 397 | { |
372 | 398 | GValue value = { 0 }; |
399 | ||
400 | g_return_if_fail (GRL_IS_DATA (data)); | |
401 | g_return_if_fail (key); | |
402 | ||
373 | 403 | g_value_init (&value, G_TYPE_BOOLEAN); |
374 | 404 | g_value_set_boolean (&value, boolvalue); |
375 | 405 | grl_data_set (data, key, &value); |
378 | 408 | /** |
379 | 409 | * grl_data_get_boolean: |
380 | 410 | * @data: data to inspect |
381 | * @key (type GrlKeyID): key to use | |
411 | * @key: (type GrlKeyID): key to use | |
382 | 412 | * |
383 | 413 | * Returns: the first boolean value associated with @key from @data. If @key has |
384 | 414 | * no first value, or value is not a gboolean, or @key is not in the data, then |
389 | 419 | gboolean |
390 | 420 | grl_data_get_boolean (GrlData *data, GrlKeyID key) |
391 | 421 | { |
392 | const GValue *value = grl_data_get (data, key); | |
422 | const GValue *value; | |
423 | ||
424 | g_return_val_if_fail (GRL_IS_DATA (data), FALSE); | |
425 | g_return_val_if_fail (key, FALSE); | |
426 | ||
427 | value = grl_data_get (data, key); | |
393 | 428 | |
394 | 429 | if (!value || !G_VALUE_HOLDS_BOOLEAN (value)) { |
395 | 430 | return FALSE; |
416 | 451 | GValue v = { 0 }; |
417 | 452 | GByteArray * array; |
418 | 453 | |
454 | g_return_if_fail (GRL_IS_DATA (data)); | |
455 | g_return_if_fail (key); | |
456 | ||
419 | 457 | if (!buf || !size) { |
420 | 458 | return; |
421 | 459 | } |
448 | 486 | const guint8 * |
449 | 487 | grl_data_get_binary(GrlData *data, GrlKeyID key, gsize *size) |
450 | 488 | { |
489 | const GValue *value; | |
490 | ||
451 | 491 | g_return_val_if_fail (size, NULL); |
452 | ||
453 | const GValue *value = grl_data_get (data, key); | |
492 | g_return_val_if_fail (GRL_IS_DATA (data), NULL); | |
493 | g_return_val_if_fail (key, NULL); | |
494 | ||
495 | value = grl_data_get (data, key); | |
454 | 496 | |
455 | 497 | if (!value || !G_VALUE_HOLDS_BOXED (value)) { |
456 | 498 | return NULL; |
479 | 521 | { |
480 | 522 | GValue value = { 0 }; |
481 | 523 | |
524 | g_return_if_fail (GRL_IS_DATA (data)); | |
525 | g_return_if_fail (key); | |
482 | 526 | g_return_if_fail (boxed != NULL); |
483 | 527 | |
484 | 528 | g_value_init (&value, GRL_METADATA_KEY_GET_TYPE (key)); |
505 | 549 | gpointer |
506 | 550 | grl_data_get_boxed (GrlData *data, GrlKeyID key) |
507 | 551 | { |
508 | const GValue *value = grl_data_get (data, key); | |
552 | const GValue *value; | |
553 | ||
554 | g_return_val_if_fail (GRL_IS_DATA (data), NULL); | |
555 | g_return_val_if_fail (key, NULL); | |
556 | ||
557 | value = grl_data_get (data, key); | |
509 | 558 | |
510 | 559 | if (!value || !G_VALUE_HOLDS_BOXED (value)) { |
511 | 560 | return NULL; |
527 | 576 | void |
528 | 577 | grl_data_remove (GrlData *data, GrlKeyID key) |
529 | 578 | { |
579 | g_return_if_fail (GRL_IS_DATA (data)); | |
580 | g_return_if_fail (key); | |
581 | ||
530 | 582 | grl_data_remove_nth (data, key, 0); |
531 | 583 | } |
532 | 584 | |
549 | 601 | gboolean found = FALSE; |
550 | 602 | |
551 | 603 | g_return_val_if_fail (GRL_IS_DATA (data), FALSE); |
604 | g_return_val_if_fail (key, FALSE); | |
552 | 605 | |
553 | 606 | sample_key = get_sample_key (key); |
554 | 607 | if (!sample_key) { |
671 | 724 | { |
672 | 725 | GrlRelatedKeys *relkeys; |
673 | 726 | |
727 | g_return_if_fail (GRL_IS_DATA (data)); | |
728 | g_return_if_fail (key); | |
729 | ||
674 | 730 | if (strvalue) { |
675 | 731 | relkeys = grl_related_keys_new (); |
676 | 732 | grl_related_keys_set_string (relkeys, key, strvalue); |
695 | 751 | { |
696 | 752 | GrlRelatedKeys *relkeys; |
697 | 753 | |
754 | g_return_if_fail (GRL_IS_DATA (data)); | |
755 | g_return_if_fail (key); | |
756 | ||
698 | 757 | relkeys = grl_related_keys_new (); |
699 | 758 | grl_related_keys_set_int (relkeys, key, intvalue); |
700 | 759 | grl_data_add_related_keys (data, relkeys); |
716 | 775 | gfloat floatvalue) |
717 | 776 | { |
718 | 777 | GrlRelatedKeys *relkeys; |
778 | ||
779 | g_return_if_fail (GRL_IS_DATA (data)); | |
780 | g_return_if_fail (key); | |
719 | 781 | |
720 | 782 | relkeys = grl_related_keys_new (); |
721 | 783 | grl_related_keys_set_float (relkeys, key, floatvalue); |
741 | 803 | { |
742 | 804 | GrlRelatedKeys *relkeys; |
743 | 805 | |
806 | g_return_if_fail (GRL_IS_DATA (data)); | |
807 | g_return_if_fail (key); | |
808 | ||
744 | 809 | if (!buf || !size) { |
745 | 810 | return; |
746 | 811 | } |
767 | 832 | { |
768 | 833 | GrlRelatedKeys *relkeys; |
769 | 834 | |
835 | g_return_if_fail (GRL_IS_DATA (data)); | |
836 | g_return_if_fail (key); | |
770 | 837 | g_return_if_fail (boxed != NULL); |
771 | 838 | |
772 | 839 | relkeys = grl_related_keys_new (); |
1119 | 1119 | } |
1120 | 1120 | |
1121 | 1121 | /** |
1122 | * grl_media_set_size: | |
1123 | * @media: the media | |
1124 | * @size: the size in bytes | |
1125 | * | |
1126 | * Set the size of the media | |
1127 | * | |
1128 | * Since: 0.2.10 | |
1129 | */ | |
1130 | void | |
1131 | grl_media_set_size (GrlMedia *media, gint size) | |
1132 | { | |
1133 | grl_data_set_int (GRL_DATA (media), | |
1134 | GRL_METADATA_KEY_SIZE, | |
1135 | size); | |
1136 | } | |
1137 | ||
1138 | /** | |
1122 | 1139 | * grl_media_get_id: |
1123 | 1140 | * @media: the media object |
1124 | 1141 | * |
1788 | 1805 | return grl_related_keys_get_string (relkeys, |
1789 | 1806 | GRL_METADATA_KEY_KEYWORD); |
1790 | 1807 | } |
1808 | ||
1809 | /** | |
1810 | * grl_media_get_size: | |
1811 | * @media: the media object | |
1812 | * | |
1813 | * Returns: the media's size, in bytes or -1 if unknown. | |
1814 | * | |
1815 | * since: 0.2.10 | |
1816 | */ | |
1817 | gint | |
1818 | grl_media_get_size (GrlMedia *media) | |
1819 | { | |
1820 | g_return_val_if_fail (GRL_IS_MEDIA (media), -1); | |
1821 | return grl_data_get_int (GRL_DATA (media), GRL_METADATA_KEY_SIZE); | |
1822 | } |
184 | 184 | |
185 | 185 | void grl_media_set_keyword (GrlMedia *media, const gchar *keyword); |
186 | 186 | |
187 | void grl_media_set_size (GrlMedia *media, gint size); | |
188 | ||
187 | 189 | void grl_media_add_url_data (GrlMedia *media, const gchar *url, const gchar *mime); |
188 | 190 | |
189 | 191 | void grl_media_add_author (GrlMedia *media, const gchar *author); |
277 | 279 | |
278 | 280 | const gchar * grl_media_get_keyword_nth (GrlMedia *media, guint index); |
279 | 281 | |
282 | gint grl_media_get_size (GrlMedia *media); | |
283 | ||
280 | 284 | GType grl_media_get_type (void) G_GNUC_CONST; |
281 | 285 | |
282 | 286 | GrlMedia *grl_media_new (void); |
180 | 180 | } |
181 | 181 | |
182 | 182 | registry = grl_registry_get_default (); |
183 | g_object_unref (registry); | |
183 | grl_registry_shutdown (registry); | |
184 | 184 | } |
185 | 185 | |
186 | 186 | /** |
227 | 227 | { |
228 | 228 | g_return_if_fail (caps); |
229 | 229 | |
230 | if (caps->priv->key_filter) { | |
231 | g_list_free (caps->priv->key_filter); | |
232 | } | |
230 | g_clear_pointer (&caps->priv->key_filter, g_list_free); | |
233 | 231 | |
234 | 232 | caps->priv->key_filter = g_list_copy (keys); |
235 | 233 | } |
286 | 284 | { |
287 | 285 | g_return_if_fail (caps); |
288 | 286 | |
289 | if (caps->priv->key_range_filter) { | |
290 | g_list_free (caps->priv->key_range_filter); | |
291 | } | |
287 | g_clear_pointer (&caps->priv->key_range_filter, g_list_free); | |
292 | 288 | |
293 | 289 | caps->priv->key_range_filter = g_list_copy (keys); |
294 | 290 | } |
36 | 36 | void |
37 | 37 | grl_metadata_key_setup_system_keys (GrlRegistry *registry) |
38 | 38 | { |
39 | grl_registry_register_metadata_key_full (registry, | |
40 | g_param_spec_string ("album", | |
41 | "Album", | |
42 | "Album the media belongs to", | |
43 | NULL, | |
44 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
45 | GRL_METADATA_KEY_ALBUM, | |
46 | NULL); | |
47 | ||
48 | grl_registry_register_metadata_key_full (registry, | |
49 | g_param_spec_string ("artist", | |
50 | "Artist", | |
51 | "Main artist", | |
52 | NULL, | |
53 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
54 | GRL_METADATA_KEY_ARTIST, | |
55 | NULL); | |
56 | ||
57 | grl_registry_register_metadata_key_full (registry, | |
58 | g_param_spec_string ("author", | |
59 | "Author", | |
60 | "Creator of the media", | |
61 | NULL, | |
62 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
63 | GRL_METADATA_KEY_AUTHOR, | |
64 | NULL); | |
65 | ||
66 | grl_registry_register_metadata_key_full (registry, | |
67 | g_param_spec_boxed ("publishing-date", | |
68 | "Publishing date", | |
69 | "When the media was originally published", | |
70 | G_TYPE_DATE_TIME, | |
71 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
72 | GRL_METADATA_KEY_PUBLICATION_DATE, | |
73 | NULL); | |
74 | ||
75 | grl_registry_register_metadata_key_full (registry, | |
76 | g_param_spec_string ("description", | |
77 | "Description", | |
78 | "Description of the media", | |
79 | NULL, | |
80 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
81 | GRL_METADATA_KEY_DESCRIPTION, | |
82 | NULL); | |
83 | ||
84 | grl_registry_register_metadata_key_full (registry, | |
85 | g_param_spec_string ("genre", | |
86 | "Genre", | |
87 | "Genre of the media", | |
88 | NULL, | |
89 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
90 | GRL_METADATA_KEY_GENRE, | |
91 | NULL); | |
92 | ||
93 | grl_registry_register_metadata_key_full (registry, | |
94 | g_param_spec_string ("id", | |
95 | "ID", | |
96 | "Identifier of media", | |
97 | NULL, | |
98 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
99 | GRL_METADATA_KEY_ID, | |
100 | NULL); | |
101 | ||
102 | grl_registry_register_metadata_key_full (registry, | |
103 | g_param_spec_string ("last-played-time", | |
104 | "LastPlayedTime", | |
105 | "Last time the media was played", | |
106 | NULL, | |
107 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
108 | GRL_METADATA_KEY_LAST_PLAYED, | |
109 | NULL); | |
110 | ||
111 | grl_registry_register_metadata_key_full (registry, | |
112 | g_param_spec_string ("lyrics", | |
113 | "Lyrics", | |
114 | "Song lyrics", | |
115 | NULL, | |
116 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
117 | GRL_METADATA_KEY_LYRICS, | |
118 | NULL); | |
119 | ||
120 | grl_registry_register_metadata_key_full (registry, | |
121 | g_param_spec_string ("mime-type", | |
122 | "MimeType", | |
123 | "Media mime type", | |
124 | NULL, | |
125 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
126 | GRL_METADATA_KEY_MIME, | |
127 | NULL); | |
128 | ||
129 | grl_registry_register_metadata_key_full (registry, | |
130 | g_param_spec_string ("site", | |
131 | "Site", | |
132 | "Site", | |
133 | NULL, | |
134 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
135 | GRL_METADATA_KEY_SITE, | |
136 | NULL); | |
137 | ||
138 | grl_registry_register_metadata_key_full (registry, | |
139 | g_param_spec_string ("source", | |
140 | "Source", | |
141 | "Source ID providing the content", | |
142 | NULL, | |
143 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
144 | GRL_METADATA_KEY_SOURCE, | |
145 | NULL); | |
146 | ||
147 | grl_registry_register_metadata_key_full (registry, | |
148 | g_param_spec_string ("thumbnail", | |
149 | "Thumbnail", | |
150 | "Thumbnail image", | |
151 | NULL, | |
152 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
153 | GRL_METADATA_KEY_THUMBNAIL, | |
154 | NULL); | |
155 | ||
156 | ||
157 | grl_registry_register_metadata_key_full (registry, | |
158 | g_param_spec_boxed ("thumbnail-binary", | |
159 | "Thumbnail Binary", | |
160 | "Thumbnail binary image", | |
161 | G_TYPE_BYTE_ARRAY, | |
162 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
163 | GRL_METADATA_KEY_THUMBNAIL_BINARY, | |
164 | ||
165 | NULL); | |
166 | ||
167 | grl_registry_register_metadata_key_full (registry, | |
168 | g_param_spec_string ("title", | |
169 | "Title", | |
170 | "Title of the media", | |
171 | NULL, | |
172 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
173 | GRL_METADATA_KEY_TITLE, | |
174 | NULL); | |
175 | ||
176 | grl_registry_register_metadata_key_full (registry, | |
177 | g_param_spec_string ("url", | |
178 | "URL", | |
179 | "Media URL", | |
180 | NULL, | |
181 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
182 | GRL_METADATA_KEY_URL, | |
183 | NULL); | |
184 | ||
185 | ||
186 | grl_registry_register_metadata_key_full (registry, | |
187 | g_param_spec_string ("external-url", | |
188 | "External URL", | |
189 | "External location where the media can be played back, usually a website", | |
190 | NULL, | |
191 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
192 | GRL_METADATA_KEY_EXTERNAL_URL, | |
193 | NULL); | |
194 | ||
195 | ||
196 | grl_registry_register_metadata_key_full (registry, | |
197 | g_param_spec_string ("external-player", | |
198 | "External Player URL", | |
199 | "URL of an external player that can be used to play the resource (usually a Flash player)", | |
200 | NULL, | |
201 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
202 | GRL_METADATA_KEY_EXTERNAL_PLAYER, | |
203 | NULL); | |
204 | ||
205 | ||
206 | grl_registry_register_metadata_key_full (registry, | |
207 | g_param_spec_string ("studio", | |
208 | "Studio", | |
209 | "Studio the media is from", | |
210 | NULL, | |
211 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
212 | GRL_METADATA_KEY_STUDIO, | |
213 | NULL); | |
214 | ||
215 | ||
216 | grl_registry_register_metadata_key_full (registry, | |
217 | g_param_spec_string ("certificate", | |
218 | "Certificate", | |
219 | "Age certificate of the media", | |
220 | NULL, | |
221 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
222 | GRL_METADATA_KEY_CERTIFICATE, | |
223 | NULL); | |
224 | ||
225 | ||
226 | grl_registry_register_metadata_key_full (registry, | |
227 | g_param_spec_string ("license", | |
228 | "License", | |
229 | "The license of the media", | |
230 | NULL, | |
231 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
232 | GRL_METADATA_KEY_LICENSE, | |
233 | NULL); | |
234 | ||
235 | grl_registry_register_metadata_key_full (registry, | |
236 | g_param_spec_int ("bitrate", | |
237 | "Bitrate", | |
238 | "Media bitrate in KBits/s", | |
239 | 0, G_MAXINT, | |
240 | 0, | |
241 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
242 | GRL_METADATA_KEY_BITRATE, | |
243 | NULL); | |
244 | ||
245 | grl_registry_register_metadata_key_full (registry, | |
246 | g_param_spec_int ("childcount", | |
247 | "Childcount", | |
248 | "Number of items contained in a container", | |
249 | -1, G_MAXINT, | |
250 | GRL_METADATA_KEY_CHILDCOUNT_UNKNOWN, | |
251 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
252 | GRL_METADATA_KEY_CHILDCOUNT, | |
253 | NULL); | |
254 | ||
255 | grl_registry_register_metadata_key_full (registry, | |
256 | g_param_spec_int ("duration", | |
257 | "Duration", | |
258 | "Media duration in seconds", | |
259 | 0, G_MAXINT, | |
260 | 0, | |
261 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
262 | GRL_METADATA_KEY_DURATION, | |
263 | NULL); | |
264 | ||
265 | grl_registry_register_metadata_key_full (registry, | |
266 | g_param_spec_int ("height", | |
267 | "Height", | |
268 | "Height of media ('y' axis)", | |
269 | 0, G_MAXINT, | |
270 | 0, | |
271 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
272 | GRL_METADATA_KEY_HEIGHT, | |
273 | NULL); | |
274 | ||
275 | grl_registry_register_metadata_key_full (registry, | |
276 | g_param_spec_int ("playback-interrupted-time", | |
277 | "PlaybackInterruptedTime", | |
278 | "Time at which playback was interrupted", | |
279 | 0, G_MAXINT, | |
280 | 0, | |
281 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
282 | GRL_METADATA_KEY_LAST_POSITION, | |
283 | NULL); | |
284 | ||
285 | grl_registry_register_metadata_key_full (registry, | |
286 | g_param_spec_int ("play-count", | |
287 | "PlayCount", | |
288 | "How many times media was played", | |
289 | 0, G_MAXINT, | |
290 | 0, | |
291 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
292 | GRL_METADATA_KEY_PLAY_COUNT, | |
293 | NULL); | |
294 | ||
295 | grl_registry_register_metadata_key_full (registry, | |
296 | g_param_spec_int ("width", | |
297 | "Width", | |
298 | "Width of media ('x' axis)", | |
299 | 0, G_MAXINT, | |
300 | 0, | |
301 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
302 | GRL_METADATA_KEY_WIDTH, | |
303 | NULL); | |
304 | ||
305 | ||
306 | grl_registry_register_metadata_key_full (registry, | |
307 | g_param_spec_float ("framerate", | |
308 | "Framerate", | |
309 | "Frames per second", | |
310 | 0, G_MAXFLOAT, | |
311 | 0, | |
312 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
313 | GRL_METADATA_KEY_FRAMERATE, | |
314 | NULL); | |
315 | ||
316 | grl_registry_register_metadata_key_full (registry, | |
317 | g_param_spec_float ("rating", | |
318 | "Rating", | |
319 | "Media rating", | |
320 | 0, G_MAXFLOAT, | |
321 | 0, | |
322 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
323 | GRL_METADATA_KEY_RATING, | |
324 | NULL); | |
325 | ||
326 | ||
327 | grl_registry_register_metadata_key_full (registry, | |
328 | g_param_spec_int ("season", | |
329 | "Season", | |
330 | "Season of a show", | |
331 | 0, G_MAXINT, | |
332 | 0, | |
333 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
334 | GRL_METADATA_KEY_SEASON, | |
335 | NULL); | |
336 | ||
337 | ||
338 | grl_registry_register_metadata_key_full (registry, | |
339 | g_param_spec_int ("episode", | |
340 | "Episode", | |
341 | "Episode of a show", | |
342 | 0, G_MAXINT, | |
343 | 0, | |
344 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
345 | GRL_METADATA_KEY_EPISODE, | |
346 | NULL); | |
347 | ||
348 | ||
349 | grl_registry_register_metadata_key_full (registry, | |
350 | g_param_spec_string ("show", | |
351 | "Show", | |
352 | "Name of a show", | |
353 | NULL, | |
354 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
355 | GRL_METADATA_KEY_SHOW, | |
356 | NULL); | |
357 | ||
358 | ||
359 | grl_registry_register_metadata_key_full (registry, | |
360 | g_param_spec_boxed ("creation-date", | |
361 | "Creation date", | |
362 | "Creation date", | |
363 | G_TYPE_DATE_TIME, | |
364 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
365 | GRL_METADATA_KEY_CREATION_DATE, | |
366 | NULL); | |
367 | ||
368 | ||
369 | grl_registry_register_metadata_key_full (registry, | |
370 | g_param_spec_string ("camera-model", | |
371 | "Camera model", | |
372 | "Name of the camera model used to take the photo", | |
373 | NULL, | |
374 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
375 | GRL_METADATA_KEY_CAMERA_MODEL, | |
376 | NULL); | |
377 | ||
378 | ||
379 | grl_registry_register_metadata_key_full (registry, | |
380 | g_param_spec_int ("orientation", | |
381 | "Picture orientation", | |
382 | "Orientation of the photo in degree (clockwise)", | |
383 | 0, 359, | |
384 | 0, | |
385 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
386 | GRL_METADATA_KEY_ORIENTATION, | |
387 | NULL); | |
388 | ||
389 | ||
390 | grl_registry_register_metadata_key_full (registry, | |
391 | g_param_spec_boolean ("flash-used", | |
392 | "Flash used", | |
393 | "Whether or not a flash was used to take that picture", | |
394 | FALSE, | |
395 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
396 | GRL_METADATA_KEY_FLASH_USED, | |
397 | NULL); | |
398 | ||
399 | ||
400 | grl_registry_register_metadata_key_full (registry, | |
401 | g_param_spec_float ("exposure-time", | |
402 | "Exposure time", | |
403 | "Exposure time of the photo in seconds", | |
404 | 0, G_MAXFLOAT, | |
405 | 0, | |
406 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
407 | GRL_METADATA_KEY_EXPOSURE_TIME, | |
408 | NULL); | |
409 | ||
410 | ||
411 | grl_registry_register_metadata_key_full (registry, | |
412 | g_param_spec_float ("iso-speed", | |
413 | "ISO speed", | |
414 | "Photographic film's sensitivity to light as ISO value", | |
415 | 0, G_MAXFLOAT, | |
416 | 0, | |
417 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
418 | GRL_METADATA_KEY_ISO_SPEED, | |
419 | NULL); | |
420 | ||
421 | grl_registry_register_metadata_key_full (registry, | |
422 | g_param_spec_int ("track-number", | |
423 | "Track number", | |
424 | "Track number inside the album", | |
425 | 1, G_MAXINT, | |
426 | 1, | |
427 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
428 | GRL_METADATA_KEY_TRACK_NUMBER, | |
429 | NULL); | |
430 | ||
431 | grl_registry_register_metadata_key_full (registry, | |
432 | g_param_spec_boxed ("modification-date", | |
433 | "Modification date", | |
434 | "When the media was last modified", | |
435 | G_TYPE_DATE_TIME, | |
436 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
437 | GRL_METADATA_KEY_MODIFICATION_DATE, | |
438 | NULL); | |
439 | ||
440 | grl_registry_register_metadata_key_full (registry, | |
441 | g_param_spec_float ("start-time", | |
442 | "Start Time", | |
443 | "Start offset in seconds relative to container", | |
444 | 0.0, G_MAXFLOAT, | |
445 | 0.0, | |
446 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
447 | GRL_METADATA_KEY_START_TIME, | |
448 | NULL); | |
449 | ||
450 | grl_registry_register_metadata_key_full (registry, | |
451 | g_param_spec_boolean ("favourite", | |
452 | "Favourite", | |
453 | "Whether or not the element was marked as favourite", | |
454 | FALSE, | |
455 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
456 | GRL_METADATA_KEY_FAVOURITE, | |
457 | NULL); | |
458 | ||
459 | grl_registry_register_metadata_key_full (registry, | |
460 | g_param_spec_string ("region", | |
461 | "Region", | |
462 | "Region in which the media was published", | |
463 | NULL, | |
464 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
465 | GRL_METADATA_KEY_REGION, | |
466 | NULL); | |
467 | ||
468 | grl_registry_register_metadata_key_full (registry, | |
469 | g_param_spec_string ("keyword", | |
470 | "keyword", | |
471 | "A keyword describing the media", | |
472 | NULL, | |
473 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
474 | GRL_METADATA_KEY_KEYWORD, | |
475 | NULL); | |
476 | ||
477 | grl_registry_register_metadata_key_full (registry, | |
478 | g_param_spec_string ("performer", | |
479 | "performer", | |
480 | "An actor performing in the movie", | |
481 | NULL, | |
482 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
483 | GRL_METADATA_KEY_PERFORMER, | |
484 | NULL); | |
485 | ||
486 | grl_registry_register_metadata_key_full (registry, | |
487 | g_param_spec_string ("producer", | |
488 | "Producer", | |
489 | "Producer of the movie", | |
490 | NULL, | |
491 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
492 | GRL_METADATA_KEY_PRODUCER, | |
493 | NULL); | |
494 | ||
495 | grl_registry_register_metadata_key_full (registry, | |
496 | g_param_spec_string ("director", | |
497 | "Director", | |
498 | "Director of the movie", | |
499 | NULL, | |
500 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
501 | GRL_METADATA_KEY_DIRECTOR, | |
502 | NULL); | |
503 | ||
504 | grl_registry_register_metadata_key_full (registry, | |
505 | g_param_spec_string ("original-title", | |
506 | "Original Title", | |
507 | "Original, untranslated title of the movie", | |
508 | NULL, | |
509 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
510 | GRL_METADATA_KEY_ORIGINAL_TITLE, | |
511 | NULL); | |
39 | grl_registry_register_metadata_key_system (registry, | |
40 | g_param_spec_string ("album", | |
41 | "Album", | |
42 | "Album the media belongs to", | |
43 | NULL, | |
44 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
45 | GRL_METADATA_KEY_ALBUM, | |
46 | NULL); | |
47 | ||
48 | grl_registry_register_metadata_key_system (registry, | |
49 | g_param_spec_string ("artist", | |
50 | "Artist", | |
51 | "Main artist", | |
52 | NULL, | |
53 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
54 | GRL_METADATA_KEY_ARTIST, | |
55 | NULL); | |
56 | ||
57 | grl_registry_register_metadata_key_system (registry, | |
58 | g_param_spec_string ("author", | |
59 | "Author", | |
60 | "Creator of the media", | |
61 | NULL, | |
62 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
63 | GRL_METADATA_KEY_AUTHOR, | |
64 | NULL); | |
65 | ||
66 | grl_registry_register_metadata_key_system (registry, | |
67 | g_param_spec_boxed ("publishing-date", | |
68 | "Publishing date", | |
69 | "When the media was originally published", | |
70 | G_TYPE_DATE_TIME, | |
71 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
72 | GRL_METADATA_KEY_PUBLICATION_DATE, | |
73 | NULL); | |
74 | ||
75 | grl_registry_register_metadata_key_system (registry, | |
76 | g_param_spec_string ("description", | |
77 | "Description", | |
78 | "Description of the media", | |
79 | NULL, | |
80 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
81 | GRL_METADATA_KEY_DESCRIPTION, | |
82 | NULL); | |
83 | ||
84 | grl_registry_register_metadata_key_system (registry, | |
85 | g_param_spec_string ("genre", | |
86 | "Genre", | |
87 | "Genre of the media", | |
88 | NULL, | |
89 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
90 | GRL_METADATA_KEY_GENRE, | |
91 | NULL); | |
92 | ||
93 | grl_registry_register_metadata_key_system (registry, | |
94 | g_param_spec_string ("id", | |
95 | "ID", | |
96 | "Identifier of media", | |
97 | NULL, | |
98 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
99 | GRL_METADATA_KEY_ID, | |
100 | NULL); | |
101 | ||
102 | grl_registry_register_metadata_key_system (registry, | |
103 | g_param_spec_string ("last-played-time", | |
104 | "LastPlayedTime", | |
105 | "Last time the media was played", | |
106 | NULL, | |
107 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
108 | GRL_METADATA_KEY_LAST_PLAYED, | |
109 | NULL); | |
110 | ||
111 | grl_registry_register_metadata_key_system (registry, | |
112 | g_param_spec_string ("lyrics", | |
113 | "Lyrics", | |
114 | "Song lyrics", | |
115 | NULL, | |
116 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
117 | GRL_METADATA_KEY_LYRICS, | |
118 | NULL); | |
119 | ||
120 | grl_registry_register_metadata_key_system (registry, | |
121 | g_param_spec_string ("mime-type", | |
122 | "MimeType", | |
123 | "Media mime type", | |
124 | NULL, | |
125 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
126 | GRL_METADATA_KEY_MIME, | |
127 | NULL); | |
128 | ||
129 | grl_registry_register_metadata_key_system (registry, | |
130 | g_param_spec_string ("site", | |
131 | "Site", | |
132 | "Site", | |
133 | NULL, | |
134 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
135 | GRL_METADATA_KEY_SITE, | |
136 | NULL); | |
137 | ||
138 | grl_registry_register_metadata_key_system (registry, | |
139 | g_param_spec_string ("source", | |
140 | "Source", | |
141 | "Source ID providing the content", | |
142 | NULL, | |
143 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
144 | GRL_METADATA_KEY_SOURCE, | |
145 | NULL); | |
146 | ||
147 | grl_registry_register_metadata_key_system (registry, | |
148 | g_param_spec_string ("thumbnail", | |
149 | "Thumbnail", | |
150 | "Thumbnail image", | |
151 | NULL, | |
152 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
153 | GRL_METADATA_KEY_THUMBNAIL, | |
154 | NULL); | |
155 | ||
156 | ||
157 | grl_registry_register_metadata_key_system (registry, | |
158 | g_param_spec_boxed ("thumbnail-binary", | |
159 | "Thumbnail Binary", | |
160 | "Thumbnail binary image", | |
161 | G_TYPE_BYTE_ARRAY, | |
162 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
163 | GRL_METADATA_KEY_THUMBNAIL_BINARY, | |
164 | ||
165 | NULL); | |
166 | ||
167 | grl_registry_register_metadata_key_system (registry, | |
168 | g_param_spec_string ("title", | |
169 | "Title", | |
170 | "Title of the media", | |
171 | NULL, | |
172 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
173 | GRL_METADATA_KEY_TITLE, | |
174 | NULL); | |
175 | ||
176 | grl_registry_register_metadata_key_system (registry, | |
177 | g_param_spec_string ("url", | |
178 | "URL", | |
179 | "Media URL", | |
180 | NULL, | |
181 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
182 | GRL_METADATA_KEY_URL, | |
183 | NULL); | |
184 | ||
185 | ||
186 | grl_registry_register_metadata_key_system (registry, | |
187 | g_param_spec_string ("external-url", | |
188 | "External URL", | |
189 | "External location where the media can be played back, usually a website", | |
190 | NULL, | |
191 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
192 | GRL_METADATA_KEY_EXTERNAL_URL, | |
193 | NULL); | |
194 | ||
195 | ||
196 | grl_registry_register_metadata_key_system (registry, | |
197 | g_param_spec_string ("external-player", | |
198 | "External Player URL", | |
199 | "URL of an external player that can be used to play the resource (usually a Flash player)", | |
200 | NULL, | |
201 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
202 | GRL_METADATA_KEY_EXTERNAL_PLAYER, | |
203 | NULL); | |
204 | ||
205 | ||
206 | grl_registry_register_metadata_key_system (registry, | |
207 | g_param_spec_string ("studio", | |
208 | "Studio", | |
209 | "Studio the media is from", | |
210 | NULL, | |
211 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
212 | GRL_METADATA_KEY_STUDIO, | |
213 | NULL); | |
214 | ||
215 | ||
216 | grl_registry_register_metadata_key_system (registry, | |
217 | g_param_spec_string ("certificate", | |
218 | "Certificate", | |
219 | "Age certificate of the media", | |
220 | NULL, | |
221 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
222 | GRL_METADATA_KEY_CERTIFICATE, | |
223 | NULL); | |
224 | ||
225 | ||
226 | grl_registry_register_metadata_key_system (registry, | |
227 | g_param_spec_string ("license", | |
228 | "License", | |
229 | "The license of the media", | |
230 | NULL, | |
231 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
232 | GRL_METADATA_KEY_LICENSE, | |
233 | NULL); | |
234 | ||
235 | grl_registry_register_metadata_key_system (registry, | |
236 | g_param_spec_int ("bitrate", | |
237 | "Bitrate", | |
238 | "Media bitrate in KBits/s", | |
239 | 0, G_MAXINT, | |
240 | 0, | |
241 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
242 | GRL_METADATA_KEY_BITRATE, | |
243 | NULL); | |
244 | ||
245 | grl_registry_register_metadata_key_system (registry, | |
246 | g_param_spec_int ("childcount", | |
247 | "Childcount", | |
248 | "Number of items contained in a container", | |
249 | -1, G_MAXINT, | |
250 | GRL_METADATA_KEY_CHILDCOUNT_UNKNOWN, | |
251 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
252 | GRL_METADATA_KEY_CHILDCOUNT, | |
253 | NULL); | |
254 | ||
255 | grl_registry_register_metadata_key_system (registry, | |
256 | g_param_spec_int ("duration", | |
257 | "Duration", | |
258 | "Media duration in seconds", | |
259 | 0, G_MAXINT, | |
260 | 0, | |
261 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
262 | GRL_METADATA_KEY_DURATION, | |
263 | NULL); | |
264 | ||
265 | grl_registry_register_metadata_key_system (registry, | |
266 | g_param_spec_int ("height", | |
267 | "Height", | |
268 | "Height of media ('y' axis)", | |
269 | 0, G_MAXINT, | |
270 | 0, | |
271 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
272 | GRL_METADATA_KEY_HEIGHT, | |
273 | NULL); | |
274 | ||
275 | grl_registry_register_metadata_key_system (registry, | |
276 | g_param_spec_int ("playback-interrupted-time", | |
277 | "PlaybackInterruptedTime", | |
278 | "Time at which playback was interrupted", | |
279 | 0, G_MAXINT, | |
280 | 0, | |
281 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
282 | GRL_METADATA_KEY_LAST_POSITION, | |
283 | NULL); | |
284 | ||
285 | grl_registry_register_metadata_key_system (registry, | |
286 | g_param_spec_int ("play-count", | |
287 | "PlayCount", | |
288 | "How many times media was played", | |
289 | 0, G_MAXINT, | |
290 | 0, | |
291 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
292 | GRL_METADATA_KEY_PLAY_COUNT, | |
293 | NULL); | |
294 | ||
295 | grl_registry_register_metadata_key_system (registry, | |
296 | g_param_spec_int ("width", | |
297 | "Width", | |
298 | "Width of media ('x' axis)", | |
299 | 0, G_MAXINT, | |
300 | 0, | |
301 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
302 | GRL_METADATA_KEY_WIDTH, | |
303 | NULL); | |
304 | ||
305 | ||
306 | grl_registry_register_metadata_key_system (registry, | |
307 | g_param_spec_float ("framerate", | |
308 | "Framerate", | |
309 | "Frames per second", | |
310 | 0, G_MAXFLOAT, | |
311 | 0, | |
312 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
313 | GRL_METADATA_KEY_FRAMERATE, | |
314 | NULL); | |
315 | ||
316 | grl_registry_register_metadata_key_system (registry, | |
317 | g_param_spec_float ("rating", | |
318 | "Rating", | |
319 | "Media rating", | |
320 | 0, G_MAXFLOAT, | |
321 | 0, | |
322 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
323 | GRL_METADATA_KEY_RATING, | |
324 | NULL); | |
325 | ||
326 | ||
327 | grl_registry_register_metadata_key_system (registry, | |
328 | g_param_spec_int ("season", | |
329 | "Season", | |
330 | "Season of a show", | |
331 | 0, G_MAXINT, | |
332 | 0, | |
333 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
334 | GRL_METADATA_KEY_SEASON, | |
335 | NULL); | |
336 | ||
337 | ||
338 | grl_registry_register_metadata_key_system (registry, | |
339 | g_param_spec_int ("episode", | |
340 | "Episode", | |
341 | "Episode of a show", | |
342 | 0, G_MAXINT, | |
343 | 0, | |
344 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
345 | GRL_METADATA_KEY_EPISODE, | |
346 | NULL); | |
347 | ||
348 | ||
349 | grl_registry_register_metadata_key_system (registry, | |
350 | g_param_spec_string ("show", | |
351 | "Show", | |
352 | "Name of a show", | |
353 | NULL, | |
354 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
355 | GRL_METADATA_KEY_SHOW, | |
356 | NULL); | |
357 | ||
358 | ||
359 | grl_registry_register_metadata_key_system (registry, | |
360 | g_param_spec_boxed ("creation-date", | |
361 | "Creation date", | |
362 | "Creation date", | |
363 | G_TYPE_DATE_TIME, | |
364 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
365 | GRL_METADATA_KEY_CREATION_DATE, | |
366 | NULL); | |
367 | ||
368 | ||
369 | grl_registry_register_metadata_key_system (registry, | |
370 | g_param_spec_string ("camera-model", | |
371 | "Camera model", | |
372 | "Name of the camera model used to take the photo", | |
373 | NULL, | |
374 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
375 | GRL_METADATA_KEY_CAMERA_MODEL, | |
376 | NULL); | |
377 | ||
378 | ||
379 | grl_registry_register_metadata_key_system (registry, | |
380 | g_param_spec_int ("orientation", | |
381 | "Picture orientation", | |
382 | "Orientation of the photo in degree (clockwise)", | |
383 | 0, 359, | |
384 | 0, | |
385 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
386 | GRL_METADATA_KEY_ORIENTATION, | |
387 | NULL); | |
388 | ||
389 | ||
390 | grl_registry_register_metadata_key_system (registry, | |
391 | g_param_spec_boolean ("flash-used", | |
392 | "Flash used", | |
393 | "Whether or not a flash was used to take that picture", | |
394 | FALSE, | |
395 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
396 | GRL_METADATA_KEY_FLASH_USED, | |
397 | NULL); | |
398 | ||
399 | ||
400 | grl_registry_register_metadata_key_system (registry, | |
401 | g_param_spec_float ("exposure-time", | |
402 | "Exposure time", | |
403 | "Exposure time of the photo in seconds", | |
404 | 0, G_MAXFLOAT, | |
405 | 0, | |
406 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
407 | GRL_METADATA_KEY_EXPOSURE_TIME, | |
408 | NULL); | |
409 | ||
410 | ||
411 | grl_registry_register_metadata_key_system (registry, | |
412 | g_param_spec_float ("iso-speed", | |
413 | "ISO speed", | |
414 | "Photographic film's sensitivity to light as ISO value", | |
415 | 0, G_MAXFLOAT, | |
416 | 0, | |
417 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
418 | GRL_METADATA_KEY_ISO_SPEED, | |
419 | NULL); | |
420 | ||
421 | grl_registry_register_metadata_key_system (registry, | |
422 | g_param_spec_int ("track-number", | |
423 | "Track number", | |
424 | "Track number inside the album", | |
425 | 1, G_MAXINT, | |
426 | 1, | |
427 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
428 | GRL_METADATA_KEY_TRACK_NUMBER, | |
429 | NULL); | |
430 | ||
431 | grl_registry_register_metadata_key_system (registry, | |
432 | g_param_spec_boxed ("modification-date", | |
433 | "Modification date", | |
434 | "When the media was last modified", | |
435 | G_TYPE_DATE_TIME, | |
436 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
437 | GRL_METADATA_KEY_MODIFICATION_DATE, | |
438 | NULL); | |
439 | ||
440 | grl_registry_register_metadata_key_system (registry, | |
441 | g_param_spec_float ("start-time", | |
442 | "Start Time", | |
443 | "Start offset in seconds relative to container", | |
444 | 0.0, G_MAXFLOAT, | |
445 | 0.0, | |
446 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
447 | GRL_METADATA_KEY_START_TIME, | |
448 | NULL); | |
449 | ||
450 | grl_registry_register_metadata_key_system (registry, | |
451 | g_param_spec_boolean ("favourite", | |
452 | "Favourite", | |
453 | "Whether or not the element was marked as favourite", | |
454 | FALSE, | |
455 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
456 | GRL_METADATA_KEY_FAVOURITE, | |
457 | NULL); | |
458 | ||
459 | grl_registry_register_metadata_key_system (registry, | |
460 | g_param_spec_string ("region", | |
461 | "Region", | |
462 | "Region in which the media was published", | |
463 | NULL, | |
464 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
465 | GRL_METADATA_KEY_REGION, | |
466 | NULL); | |
467 | ||
468 | grl_registry_register_metadata_key_system (registry, | |
469 | g_param_spec_string ("keyword", | |
470 | "keyword", | |
471 | "A keyword describing the media", | |
472 | NULL, | |
473 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
474 | GRL_METADATA_KEY_KEYWORD, | |
475 | NULL); | |
476 | ||
477 | grl_registry_register_metadata_key_system (registry, | |
478 | g_param_spec_string ("performer", | |
479 | "performer", | |
480 | "An actor performing in the movie", | |
481 | NULL, | |
482 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
483 | GRL_METADATA_KEY_PERFORMER, | |
484 | NULL); | |
485 | ||
486 | grl_registry_register_metadata_key_system (registry, | |
487 | g_param_spec_string ("producer", | |
488 | "Producer", | |
489 | "Producer of the movie", | |
490 | NULL, | |
491 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
492 | GRL_METADATA_KEY_PRODUCER, | |
493 | NULL); | |
494 | ||
495 | grl_registry_register_metadata_key_system (registry, | |
496 | g_param_spec_string ("director", | |
497 | "Director", | |
498 | "Director of the movie", | |
499 | NULL, | |
500 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
501 | GRL_METADATA_KEY_DIRECTOR, | |
502 | NULL); | |
503 | ||
504 | grl_registry_register_metadata_key_system (registry, | |
505 | g_param_spec_string ("original-title", | |
506 | "Original Title", | |
507 | "Original, untranslated title of the movie", | |
508 | NULL, | |
509 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
510 | GRL_METADATA_KEY_ORIGINAL_TITLE, | |
511 | NULL); | |
512 | ||
513 | grl_registry_register_metadata_key_system (registry, | |
514 | g_param_spec_int ("size", | |
515 | "Size", | |
516 | "Size in bytes", | |
517 | -1, G_MAXINT, | |
518 | -1, | |
519 | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE), | |
520 | GRL_METADATA_KEY_SIZE, | |
521 | NULL); | |
512 | 522 | |
513 | 523 | /* Create the relations */ |
514 | 524 | grl_registry_register_metadata_key_relation (registry, |
529 | 539 | grl_registry_register_metadata_key_relation (registry, |
530 | 540 | GRL_METADATA_KEY_URL, |
531 | 541 | GRL_METADATA_KEY_START_TIME); |
542 | grl_registry_register_metadata_key_relation (registry, | |
543 | GRL_METADATA_KEY_URL, | |
544 | GRL_METADATA_KEY_SIZE); | |
532 | 545 | grl_registry_register_metadata_key_relation (registry, |
533 | 546 | GRL_METADATA_KEY_REGION, |
534 | 547 | GRL_METADATA_KEY_PUBLICATION_DATE); |
95 | 95 | #define GRL_METADATA_KEY_PRODUCER 47 |
96 | 96 | #define GRL_METADATA_KEY_DIRECTOR 48 |
97 | 97 | #define GRL_METADATA_KEY_ORIGINAL_TITLE 49 |
98 | #define GRL_METADATA_KEY_SIZE 50 | |
98 | 99 | |
99 | 100 | G_BEGIN_DECLS |
100 | 101 |
139 | 139 | handle_no_searchable_sources (GrlSourceResultCb callback, gpointer user_data) |
140 | 140 | { |
141 | 141 | struct CallbackData *callback_data = g_new0 (struct CallbackData, 1); |
142 | guint id; | |
142 | 143 | callback_data->user_callback = callback; |
143 | 144 | callback_data->user_data = user_data; |
144 | g_idle_add (handle_no_searchable_sources_idle, callback_data); | |
145 | id = g_idle_add (handle_no_searchable_sources_idle, callback_data); | |
146 | g_source_set_name_by_id (id, "[grilo] handle_no_searchable_sources_idle"); | |
145 | 147 | } |
146 | 148 | |
147 | 149 | static struct MultipleSearchData * |
576 | 578 | multiple_search_cancel_cb (struct MultipleSearchData *msd) |
577 | 579 | { |
578 | 580 | GList *sources, *ids; |
581 | guint id; | |
579 | 582 | |
580 | 583 | /* Go through all the sources involved in that operation and issue |
581 | 584 | cancel() operations for each one */ |
593 | 596 | msd->cancelled = TRUE; |
594 | 597 | |
595 | 598 | /* Send operation finished message now to client (remaining == 0) */ |
596 | g_idle_add (confirm_cancel_idle, msd); | |
599 | id = g_idle_add (confirm_cancel_idle, msd); | |
600 | g_source_set_name_by_id (id, "[grilo] confirm_cancel_idle"); | |
597 | 601 | } |
598 | 602 | |
599 | 603 | /** |
263 | 263 | { |
264 | 264 | g_return_if_fail (GRL_IS_PLUGIN (plugin)); |
265 | 265 | |
266 | if (plugin->priv->id) { | |
267 | g_free (plugin->priv->id); | |
268 | } | |
266 | g_clear_pointer (&plugin->priv->id, g_free); | |
267 | ||
269 | 268 | plugin->priv->id = g_strdup (id); |
270 | 269 | } |
271 | 270 | |
282 | 281 | { |
283 | 282 | g_return_if_fail (GRL_IS_PLUGIN (plugin)); |
284 | 283 | |
285 | if (plugin->priv->filename) { | |
286 | g_free (plugin->priv->filename); | |
287 | } | |
284 | g_clear_pointer (&plugin->priv->filename, g_free); | |
288 | 285 | |
289 | 286 | plugin->priv->filename = g_strdup (filename); |
290 | 287 | } |
54 | 54 | void |
55 | 55 | grl_range_value_free (GrlRangeValue *range) |
56 | 56 | { |
57 | if (range->min) { | |
58 | grl_g_value_free (range->min); | |
59 | } | |
60 | ||
61 | if (range->max) { | |
62 | grl_g_value_free (range->max); | |
63 | } | |
57 | g_clear_pointer (&range->min, grl_g_value_free); | |
58 | g_clear_pointer (&range->max, grl_g_value_free); | |
64 | 59 | |
65 | 60 | g_slice_free (GrlRangeValue, range); |
66 | 61 | } |
28 | 28 | grl_registry_restrict_plugins (GrlRegistry *registry, |
29 | 29 | gchar **plugins); |
30 | 30 | |
31 | GrlKeyID grl_registry_register_metadata_key_full (GrlRegistry *registry, | |
32 | GParamSpec *param_spec, | |
33 | GrlKeyID key, | |
34 | GError **error); | |
31 | GrlKeyID grl_registry_register_metadata_key_system (GrlRegistry *registry, | |
32 | GParamSpec *param_spec, | |
33 | GrlKeyID key, | |
34 | GError **error); | |
35 | ||
36 | void grl_registry_shutdown (GrlRegistry *registry); | |
35 | 37 | |
36 | 38 | #endif /* _GRL_REGISTRY_PRIV_H_ */ |
78 | 78 | GHashTable *plugins; |
79 | 79 | GHashTable *sources; |
80 | 80 | GHashTable *related_keys; |
81 | GParamSpecPool *system_keys; | |
81 | GHashTable *system_keys; | |
82 | 82 | GHashTable *ranks; |
83 | 83 | GSList *plugins_dir; |
84 | 84 | GSList *allowed_plugins; |
86 | 86 | struct KeyIDHandler key_id_handler; |
87 | 87 | }; |
88 | 88 | |
89 | static void grl_registry_finalize (GObject *object); | |
90 | ||
91 | 89 | static void grl_registry_setup_ranks (GrlRegistry *registry); |
92 | 90 | |
93 | 91 | static void grl_registry_preload_plugins (GrlRegistry *registry, |
107 | 105 | GrlKeyID key, const gchar *key_name); |
108 | 106 | |
109 | 107 | static void shutdown_plugin (GrlPlugin *plugin); |
108 | ||
109 | static void configs_free (GList *configs); | |
110 | 110 | |
111 | 111 | /* ================ GrlRegistry GObject ================ */ |
112 | 112 | |
113 | 113 | enum { |
114 | 114 | SIG_SOURCE_ADDED, |
115 | 115 | SIG_SOURCE_REMOVED, |
116 | SIG_METADATA_KEY_ADDED, | |
116 | 117 | SIG_LAST |
117 | 118 | }; |
118 | 119 | static gint registry_signals[SIG_LAST]; |
122 | 123 | static void |
123 | 124 | grl_registry_class_init (GrlRegistryClass *klass) |
124 | 125 | { |
125 | GObjectClass *gobject_klass; | |
126 | ||
127 | 126 | g_type_class_add_private (klass, sizeof (GrlRegistryPrivate)); |
128 | ||
129 | gobject_klass = G_OBJECT_CLASS (klass); | |
130 | ||
131 | gobject_klass->finalize = grl_registry_finalize; | |
132 | 127 | |
133 | 128 | /** |
134 | 129 | * GrlRegistry::source-added: |
167 | 162 | NULL, |
168 | 163 | g_cclosure_marshal_VOID__OBJECT, |
169 | 164 | G_TYPE_NONE, 1, GRL_TYPE_SOURCE); |
165 | ||
166 | /** | |
167 | * GrlRegistry::metadata-key-added: | |
168 | * @registry: the registry | |
169 | * @key: the name of the new key added | |
170 | * | |
171 | * Signals that a new metadata key has been registered. | |
172 | * | |
173 | * Since: 0.2.10 | |
174 | */ | |
175 | registry_signals[SIG_METADATA_KEY_ADDED] = | |
176 | g_signal_new("metadata-key-added", | |
177 | G_TYPE_FROM_CLASS(klass), | |
178 | G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, | |
179 | 0, | |
180 | NULL, | |
181 | NULL, | |
182 | g_cclosure_marshal_VOID__STRING, | |
183 | G_TYPE_NONE, 1, G_TYPE_STRING); | |
170 | 184 | } |
171 | 185 | |
172 | 186 | static void |
175 | 189 | registry->priv = GRL_REGISTRY_GET_PRIVATE (registry); |
176 | 190 | |
177 | 191 | registry->priv->configs = |
178 | g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); | |
192 | g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) configs_free); | |
179 | 193 | registry->priv->plugins = |
180 | 194 | g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); |
181 | 195 | registry->priv->sources = |
183 | 197 | registry->priv->related_keys = |
184 | 198 | g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, NULL); |
185 | 199 | registry->priv->system_keys = |
186 | g_param_spec_pool_new (FALSE); | |
200 | g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify) g_param_spec_unref); | |
187 | 201 | |
188 | 202 | key_id_handler_init (®istry->priv->key_id_handler); |
189 | 203 | |
190 | 204 | grl_registry_setup_ranks (registry); |
191 | 205 | } |
192 | 206 | |
207 | /* ================ Utitilies ================ */ | |
208 | ||
193 | 209 | static void |
194 | grl_registry_finalize (GObject *object) | |
195 | { | |
196 | GHashTableIter iter; | |
197 | GList *each_key; | |
198 | GList *related_keys = NULL; | |
199 | GrlPlugin *plugin = NULL; | |
200 | GrlRegistry *registry = GRL_REGISTRY (object); | |
201 | GrlSource *source = NULL; | |
202 | ||
203 | if (registry->priv->sources) { | |
204 | g_hash_table_iter_init (&iter, registry->priv->sources); | |
205 | while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &source)) { | |
206 | g_object_unref (source); | |
207 | } | |
208 | g_hash_table_unref (registry->priv->sources); | |
209 | registry->priv->sources = NULL; | |
210 | } | |
211 | ||
212 | if (registry->priv->plugins) { | |
213 | g_hash_table_iter_init (&iter, registry->priv->plugins); | |
214 | while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &plugin)) { | |
215 | shutdown_plugin (plugin); | |
216 | } | |
217 | g_hash_table_unref (registry->priv->plugins); | |
218 | registry->priv->plugins = NULL; | |
219 | } | |
220 | ||
221 | if (registry->priv->ranks) { | |
222 | g_hash_table_unref (registry->priv->ranks); | |
223 | registry->priv->configs = NULL; | |
224 | } | |
225 | ||
226 | if (registry->priv->configs) { | |
227 | g_hash_table_unref (registry->priv->configs); | |
228 | registry->priv->configs = NULL; | |
229 | } | |
230 | ||
231 | /* We need to free this table with care. Several keys can be pointing to the | |
232 | same value, so we need to ensure that we only free the value once */ | |
233 | if (registry->priv->related_keys) { | |
234 | while (TRUE) { | |
235 | g_hash_table_iter_init (&iter, registry->priv->related_keys); | |
236 | if (!g_hash_table_iter_next (&iter, NULL, (gpointer *) &related_keys)) { | |
237 | break; | |
238 | } | |
239 | /* This will invalidate the iterator */ | |
240 | for (each_key = related_keys; each_key; each_key = g_list_next (each_key)) { | |
241 | g_hash_table_remove (registry->priv->related_keys, GRLKEYID_TO_POINTER (each_key->data)); | |
242 | } | |
243 | g_list_free (related_keys); | |
244 | } | |
245 | g_hash_table_unref (registry->priv->related_keys); | |
246 | registry->priv->related_keys = NULL; | |
247 | } | |
248 | ||
249 | g_slist_free_full (registry->priv->plugins_dir, (GDestroyNotify) g_free); | |
250 | g_slist_free_full (registry->priv->allowed_plugins, (GDestroyNotify) g_free); | |
251 | ||
252 | key_id_handler_free (®istry->priv->key_id_handler); | |
253 | ||
254 | G_OBJECT_CLASS (grl_registry_parent_class)->finalize (object); | |
255 | } | |
256 | ||
257 | /* ================ Utitilies ================ */ | |
210 | configs_free (GList *configs) | |
211 | { | |
212 | g_list_free_full (configs, g_object_unref); | |
213 | } | |
258 | 214 | |
259 | 215 | static void |
260 | 216 | config_source_rank (GrlRegistry *registry, |
493 | 449 | |
494 | 450 | g_hash_table_insert (registry->priv->plugins, |
495 | 451 | id, |
496 | g_object_ref (plugin)); | |
452 | plugin); | |
497 | 453 | } |
498 | 454 | return plugin; |
499 | 455 | } |
573 | 529 | return loaded_one; |
574 | 530 | } |
575 | 531 | |
532 | static GrlKeyID | |
533 | grl_registry_register_metadata_key_full (GrlRegistry *registry, | |
534 | GParamSpec *param_spec, | |
535 | GrlKeyID key, | |
536 | GError **error) | |
537 | { | |
538 | const gchar *key_name; | |
539 | ||
540 | g_return_val_if_fail (GRL_IS_REGISTRY (registry), 0); | |
541 | g_return_val_if_fail (G_IS_PARAM_SPEC (param_spec), 0); | |
542 | GrlKeyID registered_key; | |
543 | ||
544 | key_name = g_param_spec_get_name (param_spec); | |
545 | ||
546 | registered_key = key_id_handler_add (®istry->priv->key_id_handler, key, key_name); | |
547 | ||
548 | if (registered_key == GRL_METADATA_KEY_INVALID) { | |
549 | GRL_WARNING ("metadata key '%s' cannot be registered", key_name); | |
550 | g_set_error (error, | |
551 | GRL_CORE_ERROR, | |
552 | GRL_CORE_ERROR_REGISTER_METADATA_KEY_FAILED, | |
553 | _("Metadata key '%s' cannot be registered"), | |
554 | key_name); | |
555 | ||
556 | return GRL_METADATA_KEY_INVALID; | |
557 | } | |
558 | ||
559 | g_hash_table_insert (registry->priv->system_keys, | |
560 | (gpointer) key_name, | |
561 | g_param_spec_ref (param_spec)); | |
562 | ||
563 | /* Each key is related to itself */ | |
564 | g_hash_table_insert (registry->priv->related_keys, | |
565 | GRLKEYID_TO_POINTER (registered_key), | |
566 | g_list_prepend (NULL, | |
567 | GRLKEYID_TO_POINTER (registered_key))); | |
568 | ||
569 | return registered_key; | |
570 | } | |
571 | ||
576 | 572 | static void |
577 | 573 | key_id_handler_init (struct KeyIDHandler *handler) |
578 | 574 | { |
704 | 700 | |
705 | 701 | /* Free previous list */ |
706 | 702 | if (registry->priv->allowed_plugins) { |
707 | g_slist_foreach (registry->priv->allowed_plugins, (GFunc) g_free, NULL); | |
708 | g_slist_free (registry->priv->allowed_plugins); | |
703 | g_slist_free_full (registry->priv->allowed_plugins, g_free); | |
709 | 704 | registry->priv->allowed_plugins = NULL; |
710 | 705 | } |
711 | 706 | |
714 | 709 | g_strdup (*plugins)); |
715 | 710 | plugins++; |
716 | 711 | } |
712 | } | |
713 | ||
714 | /* | |
715 | * grl_registry_shutdown: | |
716 | * @registry: the registry instance | |
717 | * | |
718 | * Frees all the resources in the registry and the registry itself. | |
719 | **/ | |
720 | void | |
721 | grl_registry_shutdown (GrlRegistry *registry) | |
722 | { | |
723 | GHashTableIter iter; | |
724 | GList *each_key; | |
725 | GList *related_keys = NULL; | |
726 | GrlPlugin *plugin = NULL; | |
727 | GrlSource *source = NULL; | |
728 | ||
729 | if (registry->priv->plugins) { | |
730 | g_hash_table_iter_init (&iter, registry->priv->plugins); | |
731 | while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &plugin)) { | |
732 | shutdown_plugin (plugin); | |
733 | } | |
734 | g_clear_pointer (®istry->priv->plugins, g_hash_table_unref); | |
735 | } | |
736 | ||
737 | if (registry->priv->sources) { | |
738 | g_hash_table_iter_init (&iter, registry->priv->sources); | |
739 | while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &source)) { | |
740 | g_object_unref (source); | |
741 | } | |
742 | g_clear_pointer (®istry->priv->sources, g_hash_table_unref); | |
743 | } | |
744 | ||
745 | g_clear_pointer (®istry->priv->ranks, g_hash_table_unref); | |
746 | g_clear_pointer (®istry->priv->configs, g_hash_table_unref); | |
747 | ||
748 | /* We need to free this table with care. Several keys can be pointing to the | |
749 | same value, so we need to ensure that we only free the value once */ | |
750 | if (registry->priv->related_keys) { | |
751 | while (TRUE) { | |
752 | g_hash_table_iter_init (&iter, registry->priv->related_keys); | |
753 | if (!g_hash_table_iter_next (&iter, NULL, (gpointer *) &related_keys)) { | |
754 | break; | |
755 | } | |
756 | /* This will invalidate the iterator */ | |
757 | for (each_key = related_keys; each_key; each_key = g_list_next (each_key)) { | |
758 | g_hash_table_remove (registry->priv->related_keys, GRLKEYID_TO_POINTER (each_key->data)); | |
759 | } | |
760 | g_list_free (related_keys); | |
761 | } | |
762 | g_clear_pointer (®istry->priv->related_keys, g_hash_table_unref); | |
763 | } | |
764 | ||
765 | g_slist_free_full (registry->priv->plugins_dir, (GDestroyNotify) g_free); | |
766 | g_slist_free_full (registry->priv->allowed_plugins, (GDestroyNotify) g_free); | |
767 | ||
768 | key_id_handler_free (®istry->priv->key_id_handler); | |
769 | g_clear_pointer (®istry->priv->system_keys, g_hash_table_unref); | |
770 | ||
771 | g_object_unref (registry); | |
717 | 772 | } |
718 | 773 | |
719 | 774 | /* ================ PUBLIC API ================ */ |
1344 | 1399 | GParamSpec *param_spec, |
1345 | 1400 | GError **error) |
1346 | 1401 | { |
1347 | return grl_registry_register_metadata_key_full (registry, | |
1348 | param_spec, | |
1349 | GRL_METADATA_KEY_INVALID, | |
1350 | error); | |
1402 | GrlKeyID key; | |
1403 | ||
1404 | key = grl_registry_register_metadata_key_full (registry, | |
1405 | param_spec, | |
1406 | GRL_METADATA_KEY_INVALID, | |
1407 | error); | |
1408 | ||
1409 | if (key != GRL_METADATA_KEY_INVALID) { | |
1410 | g_signal_emit (registry, registry_signals[SIG_METADATA_KEY_ADDED], | |
1411 | 0, | |
1412 | grl_metadata_key_get_name (key)); | |
1413 | } | |
1414 | ||
1415 | return key; | |
1351 | 1416 | } |
1352 | 1417 | |
1353 | 1418 | /* |
1354 | * grl_registry_register_metadata_key_full: | |
1419 | * grl_registry_register_metadata_key_system: | |
1355 | 1420 | * |
1356 | 1421 | * This is an internal method only meant to be used to register core |
1357 | 1422 | * keys. |
1360 | 1425 | * grl_registry_register_metadata_key(). |
1361 | 1426 | */ |
1362 | 1427 | GrlKeyID |
1363 | grl_registry_register_metadata_key_full (GrlRegistry *registry, | |
1364 | GParamSpec *param_spec, | |
1365 | GrlKeyID key, | |
1366 | GError **error) | |
1367 | { | |
1368 | const gchar *key_name; | |
1369 | ||
1370 | g_return_val_if_fail (GRL_IS_REGISTRY (registry), 0); | |
1371 | g_return_val_if_fail (G_IS_PARAM_SPEC (param_spec), 0); | |
1428 | grl_registry_register_metadata_key_system (GrlRegistry *registry, | |
1429 | GParamSpec *param_spec, | |
1430 | GrlKeyID key, | |
1431 | GError **error) | |
1432 | { | |
1372 | 1433 | GrlKeyID registered_key; |
1373 | 1434 | |
1374 | key_name = g_param_spec_get_name (param_spec); | |
1375 | ||
1376 | registered_key = key_id_handler_add (®istry->priv->key_id_handler, key, key_name); | |
1377 | ||
1378 | if (registered_key == GRL_METADATA_KEY_INVALID) { | |
1379 | GRL_WARNING ("metadata key '%s' cannot be registered", key_name); | |
1380 | g_set_error (error, | |
1381 | GRL_CORE_ERROR, | |
1382 | GRL_CORE_ERROR_REGISTER_METADATA_KEY_FAILED, | |
1383 | _("Metadata key '%s' cannot be registered"), | |
1384 | key_name); | |
1385 | ||
1386 | return GRL_METADATA_KEY_INVALID; | |
1387 | } | |
1388 | ||
1389 | g_param_spec_pool_insert (registry->priv->system_keys, | |
1390 | param_spec, | |
1391 | GRL_TYPE_MEDIA); | |
1392 | /* Each key is related to itself */ | |
1393 | g_hash_table_insert (registry->priv->related_keys, | |
1394 | GRLKEYID_TO_POINTER (registered_key), | |
1395 | g_list_prepend (NULL, | |
1396 | GRLKEYID_TO_POINTER (registered_key))); | |
1435 | registered_key = grl_registry_register_metadata_key_full (registry, | |
1436 | param_spec, | |
1437 | key, | |
1438 | error); | |
1439 | g_param_spec_unref (param_spec); | |
1397 | 1440 | |
1398 | 1441 | return registered_key; |
1399 | 1442 | } |
1400 | ||
1401 | 1443 | |
1402 | 1444 | /** |
1403 | 1445 | * grl_registry_register_metadata_key_relation: |
1517 | 1559 | if (!key_name) { |
1518 | 1560 | return NULL; |
1519 | 1561 | } |
1520 | key_pspec = g_param_spec_pool_lookup (registry->priv->system_keys, | |
1521 | key_name, | |
1522 | GRL_TYPE_MEDIA, | |
1523 | FALSE); | |
1562 | key_pspec = g_hash_table_lookup (registry->priv->system_keys, key_name); | |
1563 | ||
1524 | 1564 | if (key_pspec) { |
1525 | 1565 | return g_param_spec_get_blurb (key_pspec); |
1526 | 1566 | } else { |
1552 | 1592 | if (!key_name) { |
1553 | 1593 | return G_TYPE_INVALID; |
1554 | 1594 | } |
1555 | key_pspec = g_param_spec_pool_lookup (registry->priv->system_keys, | |
1556 | key_name, | |
1557 | GRL_TYPE_MEDIA, | |
1558 | FALSE); | |
1595 | key_pspec = g_hash_table_lookup (registry->priv->system_keys, key_name); | |
1596 | ||
1559 | 1597 | if (key_pspec) { |
1560 | 1598 | return G_PARAM_SPEC_VALUE_TYPE (key_pspec); |
1561 | 1599 | } else { |
1592 | 1630 | if (!key_name) { |
1593 | 1631 | return FALSE; |
1594 | 1632 | } |
1595 | key_pspec = g_param_spec_pool_lookup (registry->priv->system_keys, | |
1596 | key_name, | |
1597 | GRL_TYPE_MEDIA, | |
1598 | FALSE); | |
1633 | key_pspec = g_hash_table_lookup (registry->priv->system_keys, key_name); | |
1634 | ||
1599 | 1635 | if (key_pspec) { |
1600 | 1636 | return !g_param_value_validate (key_pspec, value); |
1601 | 1637 | } else { |
1816 | 1852 | } |
1817 | 1853 | |
1818 | 1854 | bail: |
1819 | if (keyfile) { | |
1820 | g_key_file_free (keyfile); | |
1821 | } | |
1822 | if (bytes) { | |
1823 | g_bytes_unref (bytes); | |
1824 | } | |
1855 | g_clear_pointer (&keyfile, g_key_file_free); | |
1856 | g_clear_pointer (&bytes, g_bytes_unref); | |
1825 | 1857 | |
1826 | 1858 | return ret; |
1827 | 1859 | } |
67 | 67 | PROP_PLUGIN, |
68 | 68 | PROP_RANK, |
69 | 69 | PROP_AUTO_SPLIT_THRESHOLD, |
70 | PROP_SUPPORTED_MEDIA | |
70 | PROP_SUPPORTED_MEDIA, | |
71 | PROP_SOURCE_TAGS | |
71 | 72 | }; |
72 | 73 | |
73 | 74 | enum { |
75 | 76 | SIG_LAST |
76 | 77 | }; |
77 | 78 | |
78 | static gint registry_signals[SIG_LAST]; | |
79 | static gint source_signals[SIG_LAST]; | |
79 | 80 | |
80 | 81 | typedef void (*MediaDecorateCb) (GrlMedia *media, |
81 | 82 | gpointer user_data, |
90 | 91 | guint auto_split_threshold; |
91 | 92 | GrlPlugin *plugin; |
92 | 93 | GIcon *icon; |
94 | GPtrArray *tags; | |
93 | 95 | }; |
94 | 96 | |
95 | 97 | typedef struct { |
406 | 408 | G_PARAM_STATIC_STRINGS)); |
407 | 409 | |
408 | 410 | /** |
411 | * GrlSource:source-tags: | |
412 | * | |
413 | * A string array of tags relevant this source. | |
414 | * | |
415 | * The tags are arbitrary, and applications should just pass over the tags | |
416 | * it does not understand. Applications would usually use this to either | |
417 | * group sources together, or hide certain sources: a radio application | |
418 | * would filter for %GRL_MEDIA_TYPE_AUDIO in GrlSource::supported-media as | |
419 | * well as "radio" being listed in the tags. | |
420 | * | |
421 | * To avoid irrelevant content being listed in applications, sources | |
422 | * such as generic video sites should not be tagged as "cinema" or | |
423 | * "tv" as they contain a lot of content that's not either of those. | |
424 | * | |
425 | * This is a list of commonly used values: | |
426 | * | |
427 | * - "cinema", or "tv" | |
428 | * The content served is from cinema or TV sources. For example, a | |
429 | * source for movie trailers would select the former, a source for | |
430 | * streaming live TV would select the latter. | |
431 | * | |
432 | * - "radio" | |
433 | * The content served is from streaming radios. | |
434 | * | |
435 | * - "music" | |
436 | * The content served is music, for example, music stores such as | |
437 | * Jamendo or Magnatune. | |
438 | * | |
439 | * - "country:country-code" | |
440 | * The content is mostly relevant to users from a particular country, | |
441 | * such as a national broadcaster. For example, BBC content would be | |
442 | * tagged as "country:uk". Country codes should be an ISO-639-1 or | |
443 | * ISO-639-2 code. | |
444 | * | |
445 | * - "protocol:protocol-name" | |
446 | * The content browsing or searching uses a particular protocol, such | |
447 | * as DLNA/UPnP or DMAP/DAAP. This makes it easier to whitelist or | |
448 | * blacklist sources rather than matching the implementation specific | |
449 | * source ID. Examples are "protocol:dlna" and "protocol:dmap". | |
450 | * | |
451 | * - "localhost", or "localuser" | |
452 | * The content is served from the machine the application is running on, | |
453 | * or by an application the user is running. Applications might choose to | |
454 | * avoid showing the user's own data in their interfaces, or integrate it | |
455 | * in the user's local collection. | |
456 | * | |
457 | * Since: 0.2.10 | |
458 | */ | |
459 | g_object_class_install_property (gobject_class, | |
460 | PROP_SOURCE_TAGS, | |
461 | g_param_spec_boxed ("source-tags", | |
462 | "Tags", | |
463 | "String array of tags relevant this source", | |
464 | G_TYPE_STRV, | |
465 | G_PARAM_READWRITE | | |
466 | G_PARAM_CONSTRUCT | | |
467 | G_PARAM_STATIC_STRINGS)); | |
468 | ||
469 | /** | |
409 | 470 | * GrlSource::content-changed: |
410 | 471 | * @source: source that has changed |
411 | 472 | * @changed_medias: (element-type GrlMedia): a #GPtrArray with the medias |
431 | 492 | * |
432 | 493 | * Since: 0.2.0 |
433 | 494 | */ |
434 | registry_signals[SIG_CONTENT_CHANGED] = | |
495 | source_signals[SIG_CONTENT_CHANGED] = | |
435 | 496 | g_signal_new("content-changed", |
436 | 497 | G_TYPE_FROM_CLASS (gobject_class), |
437 | 498 | G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, |
453 | 514 | grl_source_init (GrlSource *source) |
454 | 515 | { |
455 | 516 | source->priv = GRL_SOURCE_GET_PRIVATE (source); |
517 | source->priv->tags = g_ptr_array_new_with_free_func (g_free); | |
456 | 518 | } |
457 | 519 | |
458 | 520 | static void |
471 | 533 | GrlSource *source = GRL_SOURCE (object); |
472 | 534 | |
473 | 535 | g_clear_object (&source->priv->icon); |
536 | g_clear_pointer (&source->priv->tags, g_ptr_array_unref); | |
474 | 537 | g_free (source->priv->id); |
475 | 538 | g_free (source->priv->name); |
476 | 539 | g_free (source->priv->desc); |
481 | 544 | static void |
482 | 545 | set_string_property (gchar **property, const GValue *value) |
483 | 546 | { |
484 | if (*property) { | |
485 | g_free (*property); | |
486 | } | |
547 | g_clear_pointer (property, g_free); | |
487 | 548 | *property = g_value_dup_string (value); |
549 | } | |
550 | ||
551 | static void | |
552 | grl_source_set_tags (GrlSource *source, | |
553 | const char **strv) | |
554 | { | |
555 | guint i; | |
556 | ||
557 | g_ptr_array_set_size (source->priv->tags, 0); | |
558 | if (strv == NULL) | |
559 | return; | |
560 | ||
561 | for (i = 0; strv[i] != NULL; i++) | |
562 | g_ptr_array_add (source->priv->tags, g_strdup (strv[i])); | |
563 | g_ptr_array_add (source->priv->tags, NULL); | |
488 | 564 | } |
489 | 565 | |
490 | 566 | static void |
522 | 598 | case PROP_SUPPORTED_MEDIA: |
523 | 599 | source->priv->supported_media = g_value_get_flags (value); |
524 | 600 | break; |
601 | case PROP_SOURCE_TAGS: | |
602 | grl_source_set_tags (source, g_value_get_boxed (value)); | |
603 | break; | |
525 | 604 | default: |
526 | 605 | G_OBJECT_WARN_INVALID_PROPERTY_ID (source, prop_id, pspec); |
527 | 606 | break; |
563 | 642 | case PROP_SUPPORTED_MEDIA: |
564 | 643 | g_value_set_flags (value, source->priv->supported_media); |
565 | 644 | break; |
645 | case PROP_SOURCE_TAGS: | |
646 | g_value_set_boxed (value, source->priv->tags->pdata); | |
647 | break; | |
566 | 648 | default: |
567 | 649 | G_OBJECT_WARN_INVALID_PROPERTY_ID (source, prop_id, pspec); |
568 | 650 | break; |
1093 | 1175 | } |
1094 | 1176 | g_hash_table_unref (rrc->map); |
1095 | 1177 | } |
1096 | ||
1097 | if (rrc->resolve_specs) | |
1098 | g_hash_table_unref (rrc->resolve_specs); | |
1178 | g_clear_pointer (&rrc->resolve_specs, g_hash_table_unref); | |
1099 | 1179 | |
1100 | 1180 | g_slice_free (struct ResolveRelayCb, rrc); |
1101 | 1181 | } |
1109 | 1189 | if (brc->auto_split) { |
1110 | 1190 | g_slice_free (struct AutoSplitCtl, brc->auto_split); |
1111 | 1191 | } |
1112 | if (brc->queue) { | |
1113 | g_queue_free (brc->queue); | |
1114 | } | |
1192 | g_clear_pointer (&brc->queue, g_queue_free); | |
1193 | ||
1115 | 1194 | g_slice_free (struct BrowseRelayCb, brc); |
1116 | 1195 | } |
1117 | 1196 | |
1932 | 2011 | |
1933 | 2012 | rrc->specs_to_invoke = g_hash_table_get_values (rrc->resolve_specs); |
1934 | 2013 | if (rrc->specs_to_invoke) { |
1935 | g_idle_add_full (grl_operation_options_get_flags (rrc->options) & GRL_RESOLVE_IDLE_RELAY? | |
1936 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
1937 | resolve_idle, | |
1938 | rrc, | |
1939 | NULL); | |
2014 | guint id; | |
2015 | id = g_idle_add_full (grl_operation_options_get_flags (rrc->options) & GRL_RESOLVE_IDLE_RELAY? | |
2016 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
2017 | resolve_idle, | |
2018 | rrc, | |
2019 | NULL); | |
2020 | g_source_set_name_by_id (id, "[grilo] resolve_idle"); | |
1940 | 2021 | } else { |
1941 | g_idle_add_full (grl_operation_options_get_flags (rrc->options) & GRL_RESOLVE_IDLE_RELAY? | |
1942 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
1943 | resolve_all_done, | |
1944 | rrc, | |
1945 | NULL); | |
2022 | guint id; | |
2023 | id = g_idle_add_full (grl_operation_options_get_flags (rrc->options) & GRL_RESOLVE_IDLE_RELAY? | |
2024 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
2025 | resolve_all_done, | |
2026 | rrc, | |
2027 | NULL); | |
2028 | g_source_set_name_by_id (id, "[grilo] resolve_all_done"); | |
1946 | 2029 | } |
1947 | 2030 | } |
1948 | 2031 | } |
2016 | 2099 | if (!brc->dispatcher_running) { |
2017 | 2100 | qelement = g_queue_peek_head (brc->queue); |
2018 | 2101 | if (qelement && qelement->is_ready) { |
2019 | g_idle_add (queue_process, brc); | |
2102 | guint id = g_idle_add (queue_process, brc); | |
2103 | g_source_set_name_by_id (id, "[grilo] queue_process"); | |
2020 | 2104 | brc->dispatcher_running = TRUE; |
2021 | 2105 | } |
2022 | 2106 | } |
2119 | 2203 | static void |
2120 | 2204 | auto_split_run_next_chunk (struct BrowseRelayCb *brc) |
2121 | 2205 | { |
2206 | guint id; | |
2122 | 2207 | brc->auto_split->chunk_remaining = MIN (brc->auto_split->threshold, |
2123 | 2208 | brc->auto_split->total_remaining); |
2124 | 2209 | |
2132 | 2217 | GRL_DEBUG ("auto-split: requesting chunk (skip=%u, count=%u)", |
2133 | 2218 | grl_operation_options_get_skip (brc->spec.browse->options), |
2134 | 2219 | grl_operation_options_get_count (brc->spec.browse->options)); |
2135 | g_idle_add_full (grl_operation_options_get_flags (brc->options) & GRL_RESOLVE_IDLE_RELAY? | |
2136 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
2137 | browse_idle, | |
2138 | brc->spec.browse, | |
2139 | NULL); | |
2220 | id = g_idle_add_full (grl_operation_options_get_flags (brc->options) & GRL_RESOLVE_IDLE_RELAY? | |
2221 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
2222 | browse_idle, | |
2223 | brc->spec.browse, | |
2224 | NULL); | |
2225 | g_source_set_name_by_id (id, "[grilo] browse_idle"); | |
2140 | 2226 | break; |
2141 | 2227 | case GRL_OP_SEARCH: |
2142 | 2228 | grl_operation_options_set_skip (brc->spec.search->options, |
2147 | 2233 | GRL_DEBUG ("auto-split: requesting chunk (skip=%u, count=%u)", |
2148 | 2234 | grl_operation_options_get_skip (brc->spec.search->options), |
2149 | 2235 | grl_operation_options_get_count (brc->spec.search->options)); |
2150 | g_idle_add_full (grl_operation_options_get_flags (brc->options) & GRL_RESOLVE_IDLE_RELAY? | |
2151 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
2152 | search_idle, | |
2153 | brc->spec.search, | |
2154 | NULL); | |
2236 | id = g_idle_add_full (grl_operation_options_get_flags (brc->options) & GRL_RESOLVE_IDLE_RELAY? | |
2237 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
2238 | search_idle, | |
2239 | brc->spec.search, | |
2240 | NULL); | |
2241 | g_source_set_name_by_id (id, "[grilo] search_idle"); | |
2155 | 2242 | break; |
2156 | 2243 | case GRL_OP_QUERY: |
2157 | 2244 | grl_operation_options_set_skip (brc->spec.query->options, |
2162 | 2249 | GRL_DEBUG ("auto-split: requesting chunk (skip=%u, count=%u)", |
2163 | 2250 | grl_operation_options_get_skip (brc->spec.query->options), |
2164 | 2251 | grl_operation_options_get_count (brc->spec.query->options)); |
2165 | g_idle_add_full (grl_operation_options_get_flags (brc->options) & GRL_RESOLVE_IDLE_RELAY? | |
2166 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
2167 | query_idle, | |
2168 | brc->spec.query, | |
2169 | NULL); | |
2252 | id = g_idle_add_full (grl_operation_options_get_flags (brc->options) & GRL_RESOLVE_IDLE_RELAY? | |
2253 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
2254 | query_idle, | |
2255 | brc->spec.query, | |
2256 | NULL); | |
2257 | g_source_set_name_by_id (id, "[grilo] query_idle"); | |
2170 | 2258 | break; |
2171 | 2259 | default: |
2172 | 2260 | g_assert_not_reached (); |
2721 | 2809 | GList *failed_keys = NULL; |
2722 | 2810 | GError *error; |
2723 | 2811 | struct StoreMetadataRelayCb *smrc; |
2812 | guint id; | |
2724 | 2813 | |
2725 | 2814 | map = map_writable_keys (source, keys, flags, &failed_keys); |
2726 | 2815 | |
2749 | 2838 | smrc->user_callback = callback; |
2750 | 2839 | smrc->user_data = user_data; |
2751 | 2840 | |
2752 | g_idle_add (store_metadata_idle, smrc); | |
2841 | id = g_idle_add (store_metadata_idle, smrc); | |
2842 | g_source_set_name_by_id (id, "[grilo] store_metadata_idle"); | |
2753 | 2843 | } |
2754 | 2844 | |
2755 | 2845 | static gboolean |
2909 | 2999 | g_return_val_if_fail (GRL_IS_SOURCE (source), NULL); |
2910 | 3000 | |
2911 | 3001 | return source->priv->desc; |
3002 | } | |
3003 | ||
3004 | /** | |
3005 | * grl_source_get_tags: | |
3006 | * @source: a source | |
3007 | * | |
3008 | * Returns: (element-type utf8) (transfer none): a %NULL-terminated list of tags | |
3009 | * | |
3010 | * Since: 0.2.10 | |
3011 | */ | |
3012 | const char ** | |
3013 | grl_source_get_tags (GrlSource *source) | |
3014 | { | |
3015 | g_return_val_if_fail (GRL_IS_SOURCE (source), NULL); | |
3016 | ||
3017 | return (const char **) source->priv->tags->pdata; | |
2912 | 3018 | } |
2913 | 3019 | |
2914 | 3020 | /** |
3171 | 3277 | |
3172 | 3278 | /* If there are no sources able to solve just send the media */ |
3173 | 3279 | if (g_list_length (sources) == 0) { |
3280 | guint id; | |
3174 | 3281 | g_list_free (_keys); |
3175 | g_idle_add_full (flags & GRL_RESOLVE_IDLE_RELAY? | |
3176 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
3177 | resolve_all_done, | |
3178 | rrc, | |
3179 | NULL); | |
3282 | id = g_idle_add_full (flags & GRL_RESOLVE_IDLE_RELAY? | |
3283 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
3284 | resolve_all_done, | |
3285 | rrc, | |
3286 | NULL); | |
3287 | g_source_set_name_by_id (id, "[grilo] resolve_all_done"); | |
3180 | 3288 | return operation_id; |
3181 | 3289 | } |
3182 | 3290 | |
3204 | 3312 | |
3205 | 3313 | rrc->specs_to_invoke = g_hash_table_get_values (rrc->resolve_specs); |
3206 | 3314 | if (rrc->specs_to_invoke) { |
3207 | g_idle_add_full (flags & GRL_RESOLVE_IDLE_RELAY? | |
3208 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
3209 | resolve_idle, | |
3210 | rrc, | |
3211 | NULL); | |
3315 | guint id; | |
3316 | id = g_idle_add_full (flags & GRL_RESOLVE_IDLE_RELAY? | |
3317 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
3318 | resolve_idle, | |
3319 | rrc, | |
3320 | NULL); | |
3321 | g_source_set_name_by_id (id, "[grilo] resolve_idle"); | |
3212 | 3322 | } else { |
3213 | g_idle_add_full (flags & GRL_RESOLVE_IDLE_RELAY? | |
3214 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
3215 | resolve_all_done, | |
3216 | rrc, | |
3217 | NULL); | |
3323 | guint id; | |
3324 | id = g_idle_add_full (flags & GRL_RESOLVE_IDLE_RELAY? | |
3325 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
3326 | resolve_all_done, | |
3327 | rrc, | |
3328 | NULL); | |
3329 | g_source_set_name_by_id (id, "[grilo] resolve_all_done"); | |
3218 | 3330 | } |
3219 | 3331 | |
3220 | 3332 | return operation_id; |
3407 | 3519 | struct ResolveRelayCb *rrc; |
3408 | 3520 | guint operation_id; |
3409 | 3521 | GrlResolutionFlags flags; |
3522 | guint id; | |
3410 | 3523 | |
3411 | 3524 | GRL_DEBUG (__FUNCTION__); |
3412 | 3525 | |
3464 | 3577 | |
3465 | 3578 | operation_set_ongoing (source, operation_id); |
3466 | 3579 | |
3467 | g_idle_add_full (flags & GRL_RESOLVE_IDLE_RELAY? | |
3468 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
3469 | media_from_uri_idle, | |
3470 | mfus, | |
3471 | NULL); | |
3580 | id = g_idle_add_full (flags & GRL_RESOLVE_IDLE_RELAY? | |
3581 | G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
3582 | media_from_uri_idle, | |
3583 | mfus, | |
3584 | NULL); | |
3585 | g_source_set_name_by_id (id, "[grilo] media_from_uri_idle"); | |
3472 | 3586 | |
3473 | 3587 | return operation_id; |
3474 | 3588 | } |
3559 | 3673 | guint operation_id; |
3560 | 3674 | struct BrowseRelayCb *brc; |
3561 | 3675 | GrlResolutionFlags flags; |
3676 | guint id; | |
3562 | 3677 | |
3563 | 3678 | g_return_val_if_fail (GRL_IS_SOURCE (source), 0); |
3564 | 3679 | g_return_val_if_fail (GRL_IS_OPERATION_OPTIONS (options), 0); |
3627 | 3742 | |
3628 | 3743 | operation_set_ongoing (source, operation_id); |
3629 | 3744 | |
3630 | g_idle_add_full (flags & GRL_RESOLVE_IDLE_RELAY? G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
3631 | browse_idle, | |
3632 | bs, | |
3633 | NULL); | |
3745 | id = g_idle_add_full (flags & GRL_RESOLVE_IDLE_RELAY? G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
3746 | browse_idle, | |
3747 | bs, | |
3748 | NULL); | |
3749 | g_source_set_name_by_id (id, "[grilo] browse_idle"); | |
3634 | 3750 | |
3635 | 3751 | return operation_id; |
3636 | 3752 | } |
3725 | 3841 | guint operation_id; |
3726 | 3842 | struct BrowseRelayCb *brc; |
3727 | 3843 | GrlResolutionFlags flags; |
3844 | guint id; | |
3728 | 3845 | |
3729 | 3846 | g_return_val_if_fail (GRL_IS_SOURCE (source), 0); |
3730 | 3847 | g_return_val_if_fail (GRL_IS_OPERATION_OPTIONS (options), 0); |
3784 | 3901 | |
3785 | 3902 | operation_set_ongoing (source, operation_id); |
3786 | 3903 | |
3787 | g_idle_add_full (flags & GRL_RESOLVE_IDLE_RELAY? G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
3788 | search_idle, | |
3789 | ss, | |
3790 | NULL); | |
3904 | id = g_idle_add_full (flags & GRL_RESOLVE_IDLE_RELAY? G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
3905 | search_idle, | |
3906 | ss, | |
3907 | NULL); | |
3908 | g_source_set_name_by_id (id, "[grilo] search_idle"); | |
3791 | 3909 | |
3792 | 3910 | return operation_id; |
3793 | 3911 | } |
3885 | 4003 | guint operation_id; |
3886 | 4004 | struct BrowseRelayCb *brc; |
3887 | 4005 | GrlResolutionFlags flags; |
4006 | guint id; | |
3888 | 4007 | |
3889 | 4008 | g_return_val_if_fail (GRL_IS_SOURCE (source), 0); |
3890 | 4009 | g_return_val_if_fail (GRL_IS_OPERATION_OPTIONS (options), 0); |
3944 | 4063 | |
3945 | 4064 | operation_set_ongoing (source, operation_id); |
3946 | 4065 | |
3947 | g_idle_add_full (flags & GRL_RESOLVE_IDLE_RELAY? G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
3948 | query_idle, | |
3949 | qs, | |
3950 | NULL); | |
4066 | id = g_idle_add_full (flags & GRL_RESOLVE_IDLE_RELAY? G_PRIORITY_DEFAULT_IDLE: G_PRIORITY_HIGH_IDLE, | |
4067 | query_idle, | |
4068 | qs, | |
4069 | NULL); | |
4070 | g_source_set_name_by_id (id, "[grilo] query_idle"); | |
3951 | 4071 | |
3952 | 4072 | return operation_id; |
3953 | 4073 | } |
4015 | 4135 | const gchar *id; |
4016 | 4136 | struct RemoveRelayCb *rrc; |
4017 | 4137 | GrlSourceRemoveSpec *rs; |
4138 | guint tag_id; | |
4018 | 4139 | |
4019 | 4140 | GRL_DEBUG (__FUNCTION__); |
4020 | 4141 | |
4048 | 4169 | rrc->spec = rs; |
4049 | 4170 | } |
4050 | 4171 | |
4051 | g_idle_add (remove_idle, rrc); | |
4172 | tag_id = g_idle_add (remove_idle, rrc); | |
4173 | g_source_set_name_by_id (tag_id, "[grilo] remove_idle"); | |
4052 | 4174 | |
4053 | 4175 | return TRUE; |
4054 | 4176 | } |
4123 | 4245 | { |
4124 | 4246 | struct StoreRelayCb *src; |
4125 | 4247 | GrlSourceStoreSpec *ss; |
4248 | guint id; | |
4126 | 4249 | |
4127 | 4250 | GRL_DEBUG (__FUNCTION__); |
4128 | 4251 | |
4150 | 4273 | |
4151 | 4274 | src->spec = ss; |
4152 | 4275 | |
4153 | g_idle_add (store_idle, ss); | |
4276 | id = g_idle_add (store_idle, ss); | |
4277 | g_source_set_name_by_id (id, "[grilo] store_idle"); | |
4154 | 4278 | |
4155 | 4279 | return TRUE; |
4156 | 4280 | } |
4430 | 4554 | g_ptr_array_set_free_func (changed_medias, (GDestroyNotify) g_object_unref); |
4431 | 4555 | |
4432 | 4556 | g_signal_emit (source, |
4433 | registry_signals[SIG_CONTENT_CHANGED], | |
4557 | source_signals[SIG_CONTENT_CHANGED], | |
4434 | 4558 | 0, |
4435 | 4559 | changed_medias, |
4436 | 4560 | change_type, |
632 | 632 | |
633 | 633 | GrlMediaType grl_source_get_supported_media (GrlSource *source); |
634 | 634 | |
635 | const char ** grl_source_get_tags (GrlSource *source); | |
636 | ||
635 | 637 | G_END_DECLS |
636 | 638 | |
637 | 639 | #endif /* _GRL_SOURCE_H_ */ |
48 | 48 | "GRL_METADATA_KEY_PRODUCER", |
49 | 49 | "GRL_METADATA_KEY_DIRECTOR", |
50 | 50 | "GRL_METADATA_KEY_ORIGINAL_TITLE", |
51 | "GRL_METADATA_KEY_SIZE", | |
51 | 52 | }; |
412 | 412 | static void |
413 | 413 | set_cur_browse (GrlSource *source, GrlMedia *media) |
414 | 414 | { |
415 | if (ui_state->cur_source) | |
416 | g_object_unref (ui_state->cur_source); | |
417 | if (ui_state->cur_container) | |
418 | g_object_unref (ui_state->cur_container); | |
415 | g_clear_object (&ui_state->cur_source); | |
416 | g_clear_object (&ui_state->cur_container); | |
419 | 417 | |
420 | 418 | if (source) |
421 | 419 | g_object_ref (source); |
429 | 427 | static void |
430 | 428 | set_cur_resolve (GrlSource *source, GrlMedia *media) |
431 | 429 | { |
432 | if (ui_state->cur_md_source) | |
433 | g_object_unref (ui_state->cur_md_source); | |
434 | if (ui_state->cur_md_media) | |
435 | g_object_unref (ui_state->cur_md_media); | |
430 | g_clear_object (&ui_state->cur_md_source); | |
431 | g_clear_object (&ui_state->cur_md_media); | |
436 | 432 | |
437 | 433 | if (source) |
438 | 434 | g_object_ref (source); |
706 | 702 | -1); |
707 | 703 | |
708 | 704 | g_object_unref (media); |
709 | if (icon) { | |
710 | g_object_unref (icon); | |
711 | } | |
705 | g_clear_object (&icon); | |
712 | 706 | } |
713 | 707 | |
714 | 708 | if (remaining == 0) { |
869 | 863 | browse_history_push (ui_state->cur_source, ui_state->cur_container); |
870 | 864 | browse (source, container); |
871 | 865 | |
872 | if (source) { | |
873 | g_object_unref (source); | |
874 | } | |
875 | if (content) { | |
876 | g_object_unref (content); | |
877 | } | |
866 | g_clear_object (&source); | |
867 | g_clear_object (&content); | |
878 | 868 | } |
879 | 869 | |
880 | 870 | static void |
913 | 903 | g_string_append (s, "image, "); |
914 | 904 | |
915 | 905 | g_string_truncate (s, s->len - 2); |
906 | return g_string_free (s, FALSE); | |
907 | } | |
908 | ||
909 | static char * | |
910 | tags_to_str (char **tags) | |
911 | { | |
912 | GString *s; | |
913 | guint i; | |
914 | ||
915 | if (tags == NULL) | |
916 | return g_strdup (""); | |
917 | ||
918 | s = g_string_new (NULL); | |
919 | ||
920 | for (i = 0; tags[i] != NULL; i++) { | |
921 | g_string_append (s, tags[i]); | |
922 | g_string_append (s, ", "); | |
923 | } | |
924 | ||
925 | if (i > 0) | |
926 | g_string_truncate (s, s->len - 2); | |
916 | 927 | return g_string_free (s, FALSE); |
917 | 928 | } |
918 | 929 | |
939 | 950 | int rank; |
940 | 951 | GrlMediaType supported_media; |
941 | 952 | GIcon *icon; |
953 | char **tags; | |
942 | 954 | |
943 | 955 | for (i = 0; i < G_N_ELEMENTS (str_props); i++) { |
944 | 956 | g_object_get (G_OBJECT (source), str_props[i], &str, NULL); |
951 | 963 | "rank", &rank, |
952 | 964 | "supported-media", &supported_media, |
953 | 965 | "source-icon", &icon, |
966 | "source-tags", &tags, | |
954 | 967 | NULL); |
955 | 968 | |
956 | 969 | str = g_strdup_printf ("%i", auto_split_threshold); |
971 | 984 | g_free (str); |
972 | 985 | g_object_unref (icon); |
973 | 986 | } |
987 | ||
988 | str = tags_to_str (tags); | |
989 | add_source_metadata (view->metadata_model, "source-tags", str); | |
990 | g_free (str); | |
991 | g_strfreev (tags); | |
974 | 992 | } |
975 | 993 | |
976 | 994 | gtk_widget_set_sensitive (view->show_btn, FALSE); |
1041 | 1059 | } |
1042 | 1060 | |
1043 | 1061 | g_object_unref (source); |
1044 | if (content) | |
1045 | g_object_unref (content); | |
1062 | g_clear_object (&content); | |
1046 | 1063 | } |
1047 | 1064 | |
1048 | 1065 | static void |
1076 | 1093 | GRL_WARNING ("Cannot use '%s' to show '%s'; using default application", |
1077 | 1094 | g_app_info_get_name (app), |
1078 | 1095 | ui_state->last_url); |
1079 | g_error_free (error); | |
1080 | error = NULL; | |
1096 | g_clear_error (&error); | |
1081 | 1097 | g_app_info_launch_default_for_uri (ui_state->last_url, NULL, &error); |
1082 | 1098 | if (error) { |
1083 | 1099 | GRL_WARNING ("Cannot use default application to show '%s'. " |
1105 | 1121 | browse_history_pop (&prev_source, &prev_container); |
1106 | 1122 | browse (prev_source, prev_container); |
1107 | 1123 | |
1108 | if (prev_source) | |
1109 | g_object_unref (prev_source); | |
1110 | if (prev_container) | |
1111 | g_object_unref (prev_container); | |
1124 | g_clear_object (&prev_source); | |
1125 | g_clear_object (&prev_container); | |
1112 | 1126 | } |
1113 | 1127 | |
1114 | 1128 | static void |
1263 | 1277 | |
1264 | 1278 | grl_source_remove (source, media, remove_cb, NULL); |
1265 | 1279 | |
1266 | if (source) { | |
1267 | g_object_unref (source); | |
1268 | } | |
1269 | if (media) { | |
1270 | g_object_unref (media); | |
1271 | } | |
1280 | g_clear_object (&source); | |
1281 | g_clear_object (&media); | |
1272 | 1282 | } |
1273 | 1283 | |
1274 | 1284 | static void |
1339 | 1349 | search (source, text); |
1340 | 1350 | } |
1341 | 1351 | |
1342 | if (source) { | |
1343 | g_object_unref (source); | |
1344 | } | |
1352 | g_clear_object (&source); | |
1345 | 1353 | } |
1346 | 1354 | } |
1347 | 1355 | |
1382 | 1390 | text = gtk_entry_get_text (GTK_ENTRY (view->query_text)); |
1383 | 1391 | query (source, text); |
1384 | 1392 | |
1385 | if (source) { | |
1386 | g_object_unref (source); | |
1387 | } | |
1393 | g_clear_object (&source); | |
1388 | 1394 | } |
1389 | 1395 | } |
1390 | 1396 | |
1820 | 1826 | grl_operation_options_set_flags (default_resolve_options, RESOLVE_FLAGS); |
1821 | 1827 | } |
1822 | 1828 | |
1829 | static gboolean | |
1830 | delete_event_cb (GtkWidget *widget, | |
1831 | GdkEvent *event, | |
1832 | gpointer user_data) | |
1833 | { | |
1834 | gtk_widget_hide (widget); | |
1835 | gtk_main_quit (); | |
1836 | return TRUE; | |
1837 | } | |
1838 | ||
1823 | 1839 | static void |
1824 | 1840 | ui_setup (void) |
1825 | 1841 | { |
1830 | 1846 | view->window = gtk_window_new (GTK_WINDOW_TOPLEVEL); |
1831 | 1847 | gtk_window_set_title (GTK_WINDOW (view->window), WINDOW_TITLE); |
1832 | 1848 | gtk_window_resize (GTK_WINDOW (view->window), 600, 400); |
1833 | g_signal_connect (G_OBJECT (view->window), "destroy", | |
1834 | G_CALLBACK (gtk_main_quit), NULL); | |
1849 | g_signal_connect (G_OBJECT (view->window), "delete-event", | |
1850 | G_CALLBACK (delete_event_cb), NULL); | |
1835 | 1851 | |
1836 | 1852 | GtkActionGroup *actions = gtk_action_group_new ("actions"); |
1837 | 1853 | gtk_action_group_add_actions (actions, entries, G_N_ELEMENTS (entries), NULL); |
2108 | 2124 | static void |
2109 | 2125 | free_stack (GList **stack) |
2110 | 2126 | { |
2111 | GList *iter; | |
2112 | iter = *stack; | |
2113 | while (iter) { | |
2114 | if (iter->data) { | |
2115 | g_object_unref (iter->data); | |
2116 | } | |
2117 | iter = g_list_next (iter); | |
2118 | } | |
2119 | g_list_free (*stack); | |
2120 | *stack = NULL; | |
2127 | g_list_free_full (*stack, g_object_unref); | |
2121 | 2128 | } |
2122 | 2129 | |
2123 | 2130 | static void |
2208 | 2215 | } |
2209 | 2216 | |
2210 | 2217 | static void |
2218 | metadata_key_added_cb (GrlRegistry *registry, | |
2219 | const gchar *key, | |
2220 | gpointer user_data) | |
2221 | { | |
2222 | gchar *message; | |
2223 | guint id; | |
2224 | ||
2225 | message = g_strdup_printf ("New metadata key '%s' has been added", key); | |
2226 | id = gtk_statusbar_push (GTK_STATUSBAR (view->statusbar), | |
2227 | view->statusbar_context_id, | |
2228 | message); | |
2229 | g_timeout_add_seconds (NOTIFICATION_TIMEOUT, | |
2230 | remove_notification, | |
2231 | GUINT_TO_POINTER (id)); | |
2232 | g_free (message); | |
2233 | } | |
2234 | ||
2235 | static void | |
2211 | 2236 | source_added_cb (GrlRegistry *registry, |
2212 | 2237 | GrlSource *source, |
2213 | 2238 | gpointer user_data) |
2270 | 2295 | G_CALLBACK (source_added_cb), NULL); |
2271 | 2296 | g_signal_connect (registry, "source-removed", |
2272 | 2297 | G_CALLBACK (source_removed_cb), NULL); |
2298 | g_signal_connect (registry, "metadata-key-added", | |
2299 | G_CALLBACK (metadata_key_added_cb), NULL); | |
2273 | 2300 | if (!grl_registry_load_all_plugins (registry, NULL)) { |
2274 | 2301 | g_error ("Failed to load plugins."); |
2275 | 2302 | } |