Some indentation issues in this patch, please see below:
On 02/12/11 19:36, gemont igalia com wrote:
> From: Guillaume Emont <gemont igalia com>
>
> ---
> src/grl-multiple.c | 74 +++++++++++++++++++++++++++++++---------------------
> src/grl-multiple.h | 9 +++---
> 2 files changed, 48 insertions(+), 35 deletions(-)
>
> diff --git a/src/grl-multiple.c b/src/grl-multiple.c
> index b439ee8..9188a30 100644
> --- a/src/grl-multiple.c
> +++ b/src/grl-multiple.c
> @@ -57,7 +57,7 @@ struct MultipleSearchData {
> guint sources_count;
> GList *sources_more;
> gchar *text;
> - GrlMetadataResolutionFlags flags;
> + GrlOperationOptions *options;
> GrlMediaSourceResultCb user_callback;
> gpointer user_data;
> };
> @@ -102,6 +102,7 @@ free_multiple_search_data (struct MultipleSearchData *msd)
> g_list_free (msd->sources);
> g_list_free (msd->sources_more);
> g_list_free (msd->keys);
> + g_object_unref (msd->options);
> g_free (msd->text);
> g_free (msd);
> }
> @@ -145,8 +146,8 @@ start_multiple_search_operation (guint search_id,
> const gchar *text,
> const GList *keys,
> const GList *skip_counts,
> - guint count,
> - GrlMetadataResolutionFlags flags,
> + gint count,
> + GrlOperationOptions *options,
This seems to be having the wrong indentation.
> GrlMediaSourceResultCb user_callback,
> gpointer user_data)
> {
> @@ -154,24 +155,31 @@ start_multiple_search_operation (guint search_id,
>
> struct MultipleSearchData *msd;
> GList *iter_sources, *iter_skips;
> - guint n, first_count, individual_count;
> + guint n;
> + gint first_count, individual_count;
>
> /* Prepare data required to execute the operation */
> msd = g_new0 (struct MultipleSearchData, 1);
> msd->table = g_hash_table_new_full (g_direct_hash, g_direct_equal,
> NULL, g_free);
> - msd->remaining = count - 1;
> + msd->remaining =
> + (count == GRL_COUNT_INFINITY) ? GRL_COUNT_INFINITY : (count - 1);
> msd->search_id = search_id;
> msd->text = g_strdup (text);
> msd->keys = g_list_copy ((GList *) keys);
> - msd->flags = flags;
> + msd->options = g_object_ref (options);
> msd->user_callback = user_callback;
> msd->user_data = user_data;
>
> /* Compute the # of items to request by each source */
> n = g_list_length ((GList *) sources);
> - individual_count = count / n;
> - first_count = individual_count + count % n;
> + if (count == GRL_COUNT_INFINITY) {
> + individual_count = GRL_COUNT_INFINITY;
> + first_count = GRL_COUNT_INFINITY;
> + } else {
> + individual_count = count / n;
> + first_count = individual_count + count % n;
> + }
>
> /* Issue search operations on each source */
> iter_sources = (GList *) sources;
> @@ -189,8 +197,11 @@ start_multiple_search_operation (guint search_id,
> c = (n == 0) ? first_count : individual_count;
> n++;
>
> - /* Only interested in sourcs with c > 0 */
> - if (c > 0) {
> + /* Only interested in sourcs with c != 0 */
Please, fix typo (sources) now that you're at it :)
> + if (c != 0) {
> + GrlOperationOptions *source_options = NULL;
> + GrlCaps *source_caps;
> +
> /* We use ResultCount to keep track of results emitted by this source */
> rc = g_new0 (struct ResultCount, 1);
> rc->count = c;
> @@ -204,12 +215,17 @@ start_multiple_search_operation (guint search_id,
> skip = 0;
> }
>
> + source_caps = grl_metadata_source_get_caps (GRL_METADATA_SOURCE (source),
> + GRL_OP_SEARCH);
> + grl_operation_options_obey_caps (options, source_caps, &source_options, NULL);
> + grl_operation_options_set_skip (source_options, skip);
> + grl_operation_options_set_count (source_options, rc->count);
> +
> /* Execute the search on this source */
> id = grl_media_source_search (source,
> msd->text,
> msd->keys,
> - skip, rc->count,
> - flags,
> + source_options,
Indentation seems to be wrong here, as well.
> multiple_search_cb,
> msd);
>
> @@ -217,6 +233,8 @@ start_multiple_search_operation (guint search_id,
> grl_metadata_source_get_name (GRL_METADATA_SOURCE (source)),
> id, rc->count, skip);
>
> + g_object_unref (source_options);
> +
> /* Keep track of this operation and this source */
> msd->search_ids = g_list_prepend (msd->search_ids, GINT_TO_POINTER (id));
> msd->sources = g_list_prepend (msd->sources, source);
> @@ -268,7 +286,7 @@ chain_multiple_search_operation (struct MultipleSearchData *old_msd)
> old_msd->keys,
> skip_list,
> old_msd->pending,
> - old_msd->flags,
> + old_msd->options,
> old_msd->user_callback,
> old_msd->user_data);
> g_list_free (skip_list);
> @@ -375,7 +393,8 @@ multiple_search_cb (GrlMediaSource *source,
> /* This source failed to provide as many results as we requested,
> we will have to check if other sources can provide the missing
> results */
> - msd->pending += rc->count - rc->received;
> + if (rc->count != GRL_COUNT_INFINITY)
> + msd->pending += rc->count - rc->received;
> } else if (remaining == 0) {
> /* This source provided all requested results, if others did not
> we can use this to request more */
> @@ -484,8 +503,7 @@ media_from_uri_cb (GrlMediaSource *source,
> * @text: the text to search for
> * @keys: (element-type GrlKeyID): the #GList of
> * #GrlKeyID to retrieve
> - * @count: the maximum number of elements to retrieve
> - * @flags: the operation flags
> + * @options: options wanted for that operation
> * @callback: (scope notified): the user defined callback
> * @user_data: the user data to pass to the user callback
> *
> @@ -504,8 +522,7 @@ guint
> grl_multiple_search (const GList *sources,
> const gchar *text,
> const GList *keys,
> - guint count,
> - GrlMetadataResolutionFlags flags,
> + GrlOperationOptions *options,
Indentation is wrong here, too.
> GrlMediaSourceResultCb callback,
> gpointer user_data)
> {
> @@ -517,8 +534,8 @@ grl_multiple_search (const GList *sources,
>
> GRL_DEBUG ("grl_multiple_search");
>
> - g_return_val_if_fail (count > 0, 0);
> g_return_val_if_fail (callback != NULL, 0);
> + g_return_val_if_fail (grl_operation_options_get_count (options) != 0, 0);
>
> /* If no sources have been provided then get the list of all
> searchable sources from the registry */
> @@ -546,8 +563,8 @@ grl_multiple_search (const GList *sources,
> text,
> keys,
> NULL,
> - count,
> - flags,
> + grl_operation_options_get_count (options),
> + options,
And here
> callback,
> user_data);
> if (allocated_sources_list) {
> @@ -589,8 +606,7 @@ multiple_search_cancel_cb (struct MultipleSearchData *msd)
> * @text: the text to search for
> * @keys: (element-type GrlKeyID): the #GList of
> * #GrlKeyID to retrieve
> - * @count: the maximum number of elements to retrieve
> - * @flags: the operation flags
> + * @options: options wanted for that operation
> * @error: a #GError, or @NULL
> *
> * Search for @text in all the sources specified in @sources.
> @@ -605,8 +621,7 @@ GList *
> grl_multiple_search_sync (const GList *sources,
> const gchar *text,
> const GList *keys,
> - guint count,
> - GrlMetadataResolutionFlags flags,
> + GrlOperationOptions *options,
> GError **error)
> {
> GrlDataSync *ds;
> @@ -617,8 +632,7 @@ grl_multiple_search_sync (const GList *sources,
> grl_multiple_search (sources,
> text,
> keys,
> - count,
> - flags,
> + options,
> multiple_result_async_cb,
> ds);
>
> @@ -642,7 +656,7 @@ grl_multiple_search_sync (const GList *sources,
> * grl_multiple_get_media_from_uri:
> * @uri: A URI that can be used to identify a media resource
> * @keys: (element-type GrlKeyID): List of metadata keys we want to obtain.
> - * @flags: the operation flags
> + * @options: options wanted for that operation
> * @callback: (scope notified): the user defined callback
> * @user_data: the user data to pass to the user callback
> *
> @@ -657,7 +671,7 @@ grl_multiple_search_sync (const GList *sources,
> void
> grl_multiple_get_media_from_uri (const gchar *uri,
> const GList *keys,
> - GrlMetadataResolutionFlags flags,
> + GrlOperationOptions *options,
And here
> GrlMediaSourceMetadataCb callback,
> gpointer user_data)
> {
> @@ -690,7 +704,7 @@ grl_multiple_get_media_from_uri (const gchar *uri,
> grl_media_source_get_media_from_uri (source,
> uri,
> keys,
> - flags,
> + options,
And here
> media_from_uri_cb,
> mfucd);
> found = TRUE;
> diff --git a/src/grl-multiple.h b/src/grl-multiple.h
> index 9827d3d..e83b5f2 100644
> --- a/src/grl-multiple.h
> +++ b/src/grl-multiple.h
> @@ -30,25 +30,24 @@
> #include <glib.h>
>
> #include "grl-media-source.h"
> +#include "grl-operation-options.h"
>
> guint grl_multiple_search (const GList *sources,
> const gchar *text,
> const GList *keys,
> - guint count,
> - GrlMetadataResolutionFlags flags,
> + GrlOperationOptions *options,
And here
> GrlMediaSourceResultCb callback,
> gpointer user_data);
>
> GList *grl_multiple_search_sync (const GList *sources,
> const gchar *text,
> const GList *keys,
> - guint count,
> - GrlMetadataResolutionFlags flags,
> + GrlOperationOptions *options,
> GError **error);
>
> void grl_multiple_get_media_from_uri (const gchar *uri,
> const GList *keys,
> - GrlMetadataResolutionFlags flags,
> + GrlOperationOptions *options,
And here
> GrlMediaSourceMetadataCb callback,
> gpointer user_data);
>
--
Simon Pena <spena igalia com>
Igalia - Free Software Engineering
Attachment:
signature.asc
Description: OpenPGP digital signature