Re: Operation options (filtering, sorting and more)
- From: "Juan A." Suárez Romero <jasuarez igalia com>
 
- To: grilo-list gnome org
 
- Subject: Re: Operation options (filtering, sorting and more)
 
- Date: Tue, 15 Mar 2011 17:19:06 +0100
 
On Tue, 2011-03-15 at 16:43 +0100, Iago Toral Quiroga wrote:
> > Juan's branch have them merged, but I feel this makes some structure
> > members, and some APIs have names that aren't as simple and obvious
> as
> > they could.
> 
> Since I have not looked at the code this explanation is a bit too
> abstract for me to align with one option or the other, can you or juan
> drop a couple of significant examples here? 
Sure.
Firstly note that I will only refer to filtering, and I was focusing on
this work.
The GrlFilter API is divided in two kinds:
- One for handling filter capabilities (that is, what the source is able
to do)
- Another for handling the options itself (that is, what the client
demands).
So the API I have is:
/* Set source capabilities */
void grl_filter_caps_set_type (GrlFilter *filter,
                               GrlFilterTypeFilter type);
void grl_filter_caps_set_keys (GrlFilter *filter,
                               GList *keys);
/* Check source capabilites */
gboolean grl_filter_caps_type (GrlFilter *filter,
                               GrlFilterTypeFilter type);
gboolean grl_filter_caps_key (GrlFilter *filter,
                              GrlKeyID key);
gboolean grl_filter_caps_supports_type (GrlFilter *filter);
gboolean grl_filter_caps_supports_key (GrlFilter *filter);
/* Set options */
void grl_filter_set_type (GrlFilter *filter,
                          GrlFilterTypeFilter type);
void grl_filter_set_key_string (GrlFilter *filter,
                                GrlKeyID key,
                                const gchar *value);
void grl_filter_set_key_int (GrlFilter *filter,
                             GrlKeyID key,
                             gint value);
void
grl_filter_set_key_valist (GrlFilter *filter,
                           va_list args);
void
grl_filter_set_key (GrlFilter *filter,
                    ...);
/* Check options */
gboolean grl_filter_supports_type (GrlFilter *filter,
                                   GrlFilterTypeFilter type);
GList *grl_filter_get_keys (GrlFilter *filter);
gboolean grl_filter_supports_key_string (GrlFilter *filter,
                                         GrlKeyID key,
                                         gchar **value);
gboolean grl_filter_supports_key (GrlFilter *filter,
                                  ...);
gboolean grl_filter_validate (GrlFilter *filter,
                              GError **error);
Some of the functions are used by clients, while other functions are
used by plugins, to check what users want.
	J.A.
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]