49
49
struct <a class="link" href="GrlMetadataSource.html#GrlMetadataSource-struct" title="struct GrlMetadataSource">GrlMetadataSource</a>;
50
50
<span class="returnvalue">void</span> (<a class="link" href="GrlMetadataSource.html#GrlMetadataSourceResolveCb" title="GrlMetadataSourceResolveCb ()">*GrlMetadataSourceResolveCb</a>) (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
51
51
<em class="parameter"><code><span class="type">guint</span> operation_id</code></em>,
52
<em class="parameter"><code><span class="type">GrlMedia</span> *media</code></em>,
52
<em class="parameter"><code><a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> *media</code></em>,
53
53
<em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>,
54
54
<em class="parameter"><code>const <span class="type">GError</span> *error</code></em>);
55
55
<span class="returnvalue">void</span> (<a class="link" href="GrlMetadataSource.html#GrlMetadataSourceSetMetadataCb" title="GrlMetadataSourceSetMetadataCb ()">*GrlMetadataSourceSetMetadataCb</a>) (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
56
<em class="parameter"><code><span class="type">GrlMedia</span> *media</code></em>,
56
<em class="parameter"><code><a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> *media</code></em>,
57
57
<em class="parameter"><code><span class="type">GList</span> *failed_keys</code></em>,
58
58
<em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>,
59
59
<em class="parameter"><code>const <span class="type">GError</span> *error</code></em>);
75
75
<span class="returnvalue">GList</span> * <a class="link" href="GrlMetadataSource.html#grl-metadata-source-filter-writable" title="grl_metadata_source_filter_writable ()">grl_metadata_source_filter_writable</a> (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
76
76
<em class="parameter"><code><span class="type">GList</span> **keys</code></em>,
77
77
<em class="parameter"><code><span class="type">gboolean</span> return_filtered</code></em>);
78
const <span class="returnvalue">GList</span> * <a class="link" href="GrlMetadataSource.html#grl-metadata-source-key-depends" title="grl_metadata_source_key_depends ()">grl_metadata_source_key_depends</a> (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
79
<em class="parameter"><code><a class="link" href="grilo-grl-metadata-key.html#GrlKeyID" title="GrlKeyID"><span class="type">GrlKeyID</span></a> key_id</code></em>);
80
78
const <span class="returnvalue">GList</span> * <a class="link" href="GrlMetadataSource.html#grl-metadata-source-writable-keys" title="grl_metadata_source_writable_keys ()">grl_metadata_source_writable_keys</a> (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>);
81
79
<span class="returnvalue">gboolean</span> <a class="link" href="GrlMetadataSource.html#grl-metadata-source-may-resolve" title="grl_metadata_source_may_resolve ()">grl_metadata_source_may_resolve</a> (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
82
<em class="parameter"><code><span class="type">GrlMedia</span> *media</code></em>,
80
<em class="parameter"><code><a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> *media</code></em>,
83
81
<em class="parameter"><code><a class="link" href="grilo-grl-metadata-key.html#GrlKeyID" title="GrlKeyID"><span class="type">GrlKeyID</span></a> key_id</code></em>,
84
82
<em class="parameter"><code><span class="type">GList</span> **missing_keys</code></em>);
85
83
<span class="returnvalue">guint</span> <a class="link" href="GrlMetadataSource.html#grl-metadata-source-resolve" title="grl_metadata_source_resolve ()">grl_metadata_source_resolve</a> (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
86
84
<em class="parameter"><code>const <span class="type">GList</span> *keys</code></em>,
87
<em class="parameter"><code><span class="type">GrlMedia</span> *media</code></em>,
85
<em class="parameter"><code><a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> *media</code></em>,
88
86
<em class="parameter"><code><a class="link" href="GrlMetadataSource.html#GrlMetadataResolutionFlags" title="enum GrlMetadataResolutionFlags"><span class="type">GrlMetadataResolutionFlags</span></a> flags</code></em>,
89
87
<em class="parameter"><code><a class="link" href="GrlMetadataSource.html#GrlMetadataSourceResolveCb" title="GrlMetadataSourceResolveCb ()"><span class="type">GrlMetadataSourceResolveCb</span></a> callback</code></em>,
90
88
<em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
91
<span class="returnvalue">GrlMedia</span> * <a class="link" href="GrlMetadataSource.html#grl-metadata-source-resolve-sync" title="grl_metadata_source_resolve_sync ()">grl_metadata_source_resolve_sync</a> (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
89
<a class="link" href="GrlMedia.html" title="GrlMedia"><span class="returnvalue">GrlMedia</span></a> * <a class="link" href="GrlMetadataSource.html#grl-metadata-source-resolve-sync" title="grl_metadata_source_resolve_sync ()">grl_metadata_source_resolve_sync</a> (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
92
90
<em class="parameter"><code>const <span class="type">GList</span> *keys</code></em>,
93
<em class="parameter"><code><span class="type">GrlMedia</span> *media</code></em>,
91
<em class="parameter"><code><a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> *media</code></em>,
94
92
<em class="parameter"><code><a class="link" href="GrlMetadataSource.html#GrlMetadataResolutionFlags" title="enum GrlMetadataResolutionFlags"><span class="type">GrlMetadataResolutionFlags</span></a> flags</code></em>,
95
93
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);
96
<span class="returnvalue">void</span> <a class="link" href="GrlMetadataSource.html#grl-metadata-source-set-operation-data" title="grl_metadata_source_set_operation_data ()">grl_metadata_source_set_operation_data</a>
97
(<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
98
<em class="parameter"><code><span class="type">guint</span> operation_id</code></em>,
99
<em class="parameter"><code><span class="type">gpointer</span> data</code></em>);
100
94
<span class="returnvalue">void</span> <a class="link" href="GrlMetadataSource.html#grl-metadata-source-set-metadata" title="grl_metadata_source_set_metadata ()">grl_metadata_source_set_metadata</a> (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
101
<em class="parameter"><code><span class="type">GrlMedia</span> *media</code></em>,
95
<em class="parameter"><code><a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> *media</code></em>,
102
96
<em class="parameter"><code><span class="type">GList</span> *keys</code></em>,
103
97
<em class="parameter"><code><a class="link" href="GrlMetadataSource.html#GrlMetadataWritingFlags" title="enum GrlMetadataWritingFlags"><span class="type">GrlMetadataWritingFlags</span></a> flags</code></em>,
104
98
<em class="parameter"><code><a class="link" href="GrlMetadataSource.html#GrlMetadataSourceSetMetadataCb" title="GrlMetadataSourceSetMetadataCb ()"><span class="type">GrlMetadataSourceSetMetadataCb</span></a> callback</code></em>,
105
99
<em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
106
100
<span class="returnvalue">GList</span> * <a class="link" href="GrlMetadataSource.html#grl-metadata-source-set-metadata-sync" title="grl_metadata_source_set_metadata_sync ()">grl_metadata_source_set_metadata_sync</a>
107
101
(<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
108
<em class="parameter"><code><span class="type">GrlMedia</span> *media</code></em>,
102
<em class="parameter"><code><a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> *media</code></em>,
109
103
<em class="parameter"><code><span class="type">GList</span> *keys</code></em>,
110
104
<em class="parameter"><code><a class="link" href="GrlMetadataSource.html#GrlMetadataWritingFlags" title="enum GrlMetadataWritingFlags"><span class="type">GrlMetadataWritingFlags</span></a> flags</code></em>,
111
105
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);
112
<span class="returnvalue">void</span> <a class="link" href="GrlMetadataSource.html#grl-metadata-source-cancel" title="grl_metadata_source_cancel ()">grl_metadata_source_cancel</a> (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
113
<em class="parameter"><code><span class="type">guint</span> operation_id</code></em>);
114
106
const <span class="returnvalue">gchar</span> * <a class="link" href="GrlMetadataSource.html#grl-metadata-source-get-id" title="grl_metadata_source_get_id ()">grl_metadata_source_get_id</a> (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>);
115
107
const <span class="returnvalue">gchar</span> * <a class="link" href="GrlMetadataSource.html#grl-metadata-source-get-name" title="grl_metadata_source_get_name ()">grl_metadata_source_get_name</a> (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>);
116
108
const <span class="returnvalue">gchar</span> * <a class="link" href="GrlMetadataSource.html#grl-metadata-source-get-description" title="grl_metadata_source_get_description ()">grl_metadata_source_get_description</a> (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>);
143
135
The metadata sources fetch metadata from different online or local
144
databases and store them in the passed <span class="type">GrlMedia</span>.
136
databases and store them in the passed <a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a>.
147
139
In opposition to <a class="link" href="GrlMediaSource.html" title="GrlMediaSource"><span class="type">GrlMediaSource</span></a>, <a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> does not create
148
new <span class="type">GrlMedia</span> instances, just fill them up with the metadata
140
new <a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> instances, just fill them up with the metadata
149
141
provided by the specific <a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a>.
152
144
For example, <span class="type">GrlLastfmAlbumartSource</span> only provides album's covers,
153
and they will be used in the <span class="type">GrlMedia</span> generated by another
145
and they will be used in the <a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> generated by another
154
146
<a class="link" href="GrlMediaSource.html" title="GrlMediaSource"><span class="type">GrlMediaSource</span></a> plugin.
157
149
The main method is <a class="link" href="GrlMetadataSource.html#grl-metadata-source-resolve" title="grl_metadata_source_resolve ()"><code class="function">grl_metadata_source_resolve()</code></a> which will retrieve
158
a list of <a class="link" href="grilo-grl-metadata-key.html#GrlKeyID" title="GrlKeyID"><span class="type">GrlKeyID</span></a> requested for the passed <span class="type">GrlMedia</span>.
150
a list of <a class="link" href="grilo-grl-metadata-key.html#GrlKeyID" title="GrlKeyID"><span class="type">GrlKeyID</span></a> requested for the passed <a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a>.
161
153
<div class="refsect1">
793
785
<div class="refsect2">
794
<a name="grl-metadata-source-key-depends"></a><h3>grl_metadata_source_key_depends ()</h3>
795
<pre class="programlisting">const <span class="returnvalue">GList</span> * grl_metadata_source_key_depends (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
796
<em class="parameter"><code><a class="link" href="grilo-grl-metadata-key.html#GrlKeyID" title="GrlKeyID"><span class="type">GrlKeyID</span></a> key_id</code></em>);</pre>
797
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
798
<h3 class="title">Warning</h3>
799
<p><code class="literal">grl_metadata_source_key_depends</code> has been deprecated since version 0.1.10 and should not be used in newly-written code. use <a class="link" href="GrlMetadataSource.html#grl-metadata-source-may-resolve" title="grl_metadata_source_may_resolve ()"><code class="function">grl_metadata_source_may_resolve()</code></a> instead.</p>
802
Get the list of <a class="link" href="grilo-grl-metadata-key.html#GrlKeyID" title="GrlKeyID"><span class="type">GrlKeyID</span></a> which are needed a priori, in order to fetch
803
and store the requested <em class="parameter"><code>key_id</code></em>
805
<div class="variablelist"><table border="0">
806
<col align="left" valign="top">
809
<td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
810
<td>a metadata source</td>
813
<td><p><span class="term"><em class="parameter"><code>key_id</code></em> :</span></p></td>
814
<td>the requested metadata key. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GObject.ParamSpec]</span>
818
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
819
<td>a <span class="type">GList</span> with the keys, or <em class="parameter"><code>NULL</code></em> if it can not resolve <em class="parameter"><code>key_id</code></em>. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GObject.ParamSpec][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
824
<p class="since">Since 0.1.1</p>
827
<div class="refsect2">
828
786
<a name="grl-metadata-source-writable-keys"></a><h3>grl_metadata_source_writable_keys ()</h3>
829
787
<pre class="programlisting">const <span class="returnvalue">GList</span> * grl_metadata_source_writable_keys (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>);</pre>
831
789
Similar to <a class="link" href="GrlMetadataSource.html#grl-metadata-source-supported-keys" title="grl_metadata_source_supported_keys ()"><code class="function">grl_metadata_source_supported_keys()</code></a>, but these keys
832
are marked as writable, meaning the source allows the client
790
are marked as writable, meaning the source allows the client
833
791
to provide new values for these keys that will be stored permanently.
835
793
<div class="variablelist"><table border="0">
957
915
<div class="refsect2">
958
916
<a name="grl-metadata-source-resolve-sync"></a><h3>grl_metadata_source_resolve_sync ()</h3>
959
<pre class="programlisting"><span class="returnvalue">GrlMedia</span> * grl_metadata_source_resolve_sync (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
917
<pre class="programlisting"><a class="link" href="GrlMedia.html" title="GrlMedia"><span class="returnvalue">GrlMedia</span></a> * grl_metadata_source_resolve_sync (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
960
918
<em class="parameter"><code>const <span class="type">GList</span> *keys</code></em>,
961
<em class="parameter"><code><span class="type">GrlMedia</span> *media</code></em>,
919
<em class="parameter"><code><a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> *media</code></em>,
962
920
<em class="parameter"><code><a class="link" href="GrlMetadataSource.html#GrlMetadataResolutionFlags" title="enum GrlMetadataResolutionFlags"><span class="type">GrlMetadataResolutionFlags</span></a> flags</code></em>,
963
921
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
1008
966
<div class="refsect2">
1009
<a name="grl-metadata-source-set-operation-data"></a><h3>grl_metadata_source_set_operation_data ()</h3>
1010
<pre class="programlisting"><span class="returnvalue">void</span> grl_metadata_source_set_operation_data
1011
(<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
1012
<em class="parameter"><code><span class="type">guint</span> operation_id</code></em>,
1013
<em class="parameter"><code><span class="type">gpointer</span> data</code></em>);</pre>
1015
Attach a pointer to the specific operation.
1017
<div class="variablelist"><table border="0">
1018
<col align="left" valign="top">
1021
<td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
1022
<td>a metadata source</td>
1025
<td><p><span class="term"><em class="parameter"><code>operation_id</code></em> :</span></p></td>
1026
<td>the identifier of a running operation</td>
1029
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
1030
<td>the data to attach</td>
1034
<p class="since">Since 0.1.14</p>
1037
<div class="refsect2">
1038
967
<a name="grl-metadata-source-set-metadata"></a><h3>grl_metadata_source_set_metadata ()</h3>
1039
968
<pre class="programlisting"><span class="returnvalue">void</span> grl_metadata_source_set_metadata (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
1040
<em class="parameter"><code><span class="type">GrlMedia</span> *media</code></em>,
969
<em class="parameter"><code><a class="link" href="GrlMedia.html" title="GrlMedia"><span class="type">GrlMedia</span></a> *media</code></em>,
1041
970
<em class="parameter"><code><span class="type">GList</span> *keys</code></em>,
1042
971
<em class="parameter"><code><a class="link" href="GrlMetadataSource.html#GrlMetadataWritingFlags" title="enum GrlMetadataWritingFlags"><span class="type">GrlMetadataWritingFlags</span></a> flags</code></em>,
1043
972
<em class="parameter"><code><a class="link" href="GrlMetadataSource.html#GrlMetadataSourceSetMetadataCb" title="GrlMetadataSourceSetMetadataCb ()"><span class="type">GrlMetadataSourceSetMetadataCb</span></a> callback</code></em>,
1143
1072
<div class="refsect2">
1144
<a name="grl-metadata-source-cancel"></a><h3>grl_metadata_source_cancel ()</h3>
1145
<pre class="programlisting"><span class="returnvalue">void</span> grl_metadata_source_cancel (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>,
1146
<em class="parameter"><code><span class="type">guint</span> operation_id</code></em>);</pre>
1148
Cancel a running method.
1151
The derived class must implement the cancel vmethod in order to honour the
1152
request correctly. Otherwise, the operation will not be interrupted.
1155
In all cases, if this function is called on an ongoing operation, the
1156
corresponding callback will be called with the
1157
<em class="parameter"><code>GRL_CORE_ERROR_OPERATION_CANCELLED</code></em> error set, and no more action will be
1158
taken for that operation after the said callback with error has been called.
1160
<div class="variablelist"><table border="0">
1161
<col align="left" valign="top">
1164
<td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
1165
<td>a metadata source</td>
1168
<td><p><span class="term"><em class="parameter"><code>operation_id</code></em> :</span></p></td>
1169
<td>the identifier of the running operation, as returned by the
1170
function that started it</td>
1174
<p class="since">Since 0.1.14</p>
1177
<div class="refsect2">
1178
1073
<a name="grl-metadata-source-get-id"></a><h3>grl_metadata_source_get_id ()</h3>
1179
1074
<pre class="programlisting">const <span class="returnvalue">gchar</span> * grl_metadata_source_get_id (<em class="parameter"><code><a class="link" href="GrlMetadataSource.html" title="GrlMetadataSource"><span class="type">GrlMetadataSource</span></a> *source</code></em>);</pre>
1180
1075
<div class="variablelist"><table border="0">