![]() |
![]() |
![]() |
Grilo Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy |
#include <grilo.h> struct GrlRelatedKeys; struct GrlRelatedKeysClass; GrlRelatedKeys * grl_related_keys_new (void
); GrlRelatedKeys * grl_related_keys_new_valist (GrlKeyID key
,va_list args
); GrlRelatedKeys * grl_related_keys_new_with_keys (GrlKeyID key
,...
); GrlRelatedKeys * grl_related_keys_dup (GrlRelatedKeys *relkeys
); const GValue * grl_related_keys_get (GrlRelatedKeys *relkeys
,GrlKeyID key
); const guint8 * grl_related_keys_get_binary (GrlRelatedKeys *relkeys
,GrlKeyID key
,gsize *size
); gconstpointer grl_related_keys_get_boxed (GrlRelatedKeys *relkeys
,GrlKeyID key
); gfloat grl_related_keys_get_float (GrlRelatedKeys *relkeys
,GrlKeyID key
); gint grl_related_keys_get_int (GrlRelatedKeys *relkeys
,GrlKeyID key
); GList * grl_related_keys_get_keys (GrlRelatedKeys *relkeys
); const gchar * grl_related_keys_get_string (GrlRelatedKeys *relkeys
,GrlKeyID key
); gboolean grl_related_keys_has_key (GrlRelatedKeys *relkeys
,GrlKeyID key
); void grl_related_keys_set (GrlRelatedKeys *relkeys
,GrlKeyID key
,const GValue *value
); void grl_related_keys_set_binary (GrlRelatedKeys *relkeys
,GrlKeyID key
,const guint8 *buf
,gsize size
); void grl_related_keys_set_boxed (GrlRelatedKeys *relkeys
,GrlKeyID key
,gconstpointer boxed
); void grl_related_keys_set_float (GrlRelatedKeys *relkeys
,GrlKeyID key
,gfloat floatvalue
); void grl_related_keys_set_int (GrlRelatedKeys *relkeys
,GrlKeyID key
,gint intvalue
); void grl_related_keys_set_string (GrlRelatedKeys *relkeys
,GrlKeyID key
,const gchar *strvalue
);
When handling media keys, like artist, URI, mime-type, and so on, some of these keys are somewhat related: they do not make sense if they are not accompanied by other keys.
For instance, media URI and and mime-type are related keys: mime-type does not make sense if it is not accompanied by an URI. Moreover, for each URI value, there is a corresponding mime-type value.
GrlRelatedKeys stores related keys and their values in one place, so user can handle them in one shot.
struct GrlRelatedKeysClass { GObjectClass parent_class; };
Grilo Data Multivalued class
GrlRelatedKeys * grl_related_keys_new (void
);
Creates a new GrlRelatedKeys instance that can be used to store related keys and their values.
Returns : |
a new object. |
Since 0.1.10
GrlRelatedKeys * grl_related_keys_new_valist (GrlKeyID key
,va_list args
);
Creates a new GrlRelatedKeys containing pairs of (key, value). Finish the
list with NULL
.
In case of a binary-type key, the expected element is (key, value, size).
value type will be extracted from key information.
|
first key |
|
va_list of value, followed by (key,value) pairs to insert |
Returns : |
a new GrlRelatedKeys |
Since 0.1.10
GrlRelatedKeys * grl_related_keys_new_with_keys (GrlKeyID key
,...
);
Creates a initial GrlRelatedKeys containing the list of (key, value)
pairs. Finish the list with NULL
.
For more information see grl_related_keys_new_valist.
|
first key |
|
value, following by list of (key, value) |
Returns : |
a new GrlRelatedKeys |
Since 0.1.10
GrlRelatedKeys * grl_related_keys_dup (GrlRelatedKeys *relkeys
);
Makes a deep copy of relkeys
and its contents.
|
set of related keys to duplicate |
Returns : |
a new GrlRelatedKeys. Free it with g_object_unref. [transfer full] |
Since 0.1.10
const GValue * grl_related_keys_get (GrlRelatedKeys *relkeys
,GrlKeyID key
);
Get the value associated with key
from relkeys
. If it does not contain any
value, NULL
will be returned.
|
set of related keys to retrieve value |
|
key to look up. [type GrlKeyID] |
Returns : |
a GValue. This value should not be modified nor freed by user. [transfer none] |
Since 0.1.10
const guint8 * grl_related_keys_get_binary (GrlRelatedKeys *relkeys
,GrlKeyID key
,gsize *size
);
Returns the value associated with key
from relkeys
. If key
has no value,
or value is not a binary, or key
is not in relkeys
, then 0 is returned.
|
set of related keys to inspect |
|
key to use. [type GrlKeyID] |
|
location to store the buffer size. [out] |
Returns : |
buffer location associated with key , or NULL in other case. If
successful size will be set to the buffer size. |
Since 0.1.10
gconstpointer grl_related_keys_get_boxed (GrlRelatedKeys *relkeys
,GrlKeyID key
);
Returns the value associated with key
from relkeys
. If key
has no value,
the value is not of a boxed type, or key
is not in relkeys
, then NULL
is
returned.
|
set of related keys to inspect |
|
key to use |
Returns : |
the GBoxed value associated with key if
possible, or NULL in other case. The caller should not change nor free the
value. [transfer none]
|
Since 0.2.0
gfloat grl_related_keys_get_float (GrlRelatedKeys *relkeys
,GrlKeyID key
);
Returns the value associated with key
from relkeys
. If key
has no value,
or value is not a gfloat, or key
is not in relkeys
, then 0 is returned.
|
set of related keys to inspect |
|
key to use. [type GrlKeyID] |
Returns : |
float value associated with key , or 0 in other case. |
Since 0.1.10
gint grl_related_keys_get_int (GrlRelatedKeys *relkeys
,GrlKeyID key
);
Returns the value associated with key
from relkeys
. If key
has no value,
or value is not a gint, or key
is not in relkeys
, then 0 is returned.
|
set of related keys to inspect |
|
key to use. [type GrlKeyID] |
Returns : |
int value associated with key , or 0 in other case. |
Since 0.1.10
GList * grl_related_keys_get_keys (GrlRelatedKeys *relkeys
);
Returns a list with keys contained in relkeys
.
|
set of related keys to inspect |
Returns : |
a list with
the keys. The content of the list should not be modified or freed. Use
g_list_free() when done using the list. [transfer container][element-type GrlKeyID]
|
Since 0.1.13
const gchar * grl_related_keys_get_string (GrlRelatedKeys *relkeys
,GrlKeyID key
);
Returns the value associated with key
from relkeys
. If key
has no value,
or value is not string, or key
is not in relkeys
, then NULL
is returned.
|
set of related keys to inspect |
|
key to use. [type GrlKeyID] |
Returns : |
string associated with key , or NULL in other case. Caller should
not change nor free the value. |
Since 0.1.10
gboolean grl_related_keys_has_key (GrlRelatedKeys *relkeys
,GrlKeyID key
);
Checks if key
is in relkeys
.
|
set of related keys to inspect |
|
key to search. [type GrlKeyID] |
Returns : |
TRUE if key is in relkeys , FALSE in other case. |
Since 0.1.10
void grl_related_keys_set (GrlRelatedKeys *relkeys
,GrlKeyID key
,const GValue *value
);
Sets the value associated with key
into relkeys
. Old value is freed and
the new one is set.
Also, checks that value
is compliant with key
specification, modifying it
accordingly. For instance, if key
requires a number between 0 and 10, but
value is outside this range, it will be adapted accordingly.
|
set of related keys to modify |
|
key to change or add. [type GrlKeyID] |
|
the new value |
Since 0.1.10
void grl_related_keys_set_binary (GrlRelatedKeys *relkeys
,GrlKeyID key
,const guint8 *buf
,gsize size
);
Sets the value associated with key
into relkeys
. key
must have been
registered as a binary-type key. Old value is replaced by the new one.
|
set of related keys to change |
|
key to change or add. [type GrlKeyID] |
|
buffer holding the relkeys |
|
size of the buffer |
Since 0.1.10
void grl_related_keys_set_boxed (GrlRelatedKeys *relkeys
,GrlKeyID key
,gconstpointer boxed
);
Sets the value associated with key
into relkeys
. key
must have been
registered as a boxed-type key. Old value is freed and the new one is set.
|
set of related keys to modify |
|
key to change or add |
|
the new value |
Since 0.2.0
void grl_related_keys_set_float (GrlRelatedKeys *relkeys
,GrlKeyID key
,gfloat floatvalue
);
Sets the value associated with key
into relkeys
. key
must have been
registered as a float-type key. Old value is replaced by the new one.
|
set of related keys to change |
|
key to change or add. [type GrlKeyID] |
|
the new value |
Since 0.1.10
void grl_related_keys_set_int (GrlRelatedKeys *relkeys
,GrlKeyID key
,gint intvalue
);
Sets the value associated with key
into relkeys
. key
must have been
registered as an int-type key. Old value is replaced by the new one.
|
set of related keys to change |
|
key to change or add. [type GrlKeyID] |
|
the new value |
Since 0.1.10
void grl_related_keys_set_string (GrlRelatedKeys *relkeys
,GrlKeyID key
,const gchar *strvalue
);
Sets the value associated with key
into relkeys
. key
must have been
registered as a strying-type key. Old value is freed and the new one is set.
|
set of related keys to modify |
|
key to change or add. [type GrlKeyID] |
|
the new value |
Since 0.1.10