class Xmms::RawDict
Public Instance Methods
to_propdict( src_prefs ) → propdict
click to toggle source
Transforms a RawDict (key-source-value) to a regular key-value dict. The optional src_prefs argument restricts which sources are considered. The value may be a string or an array of strings, which may contain wildcards. Example: rawdict.to_propdict( [‘server’,‘plugin/*’] )
static VALUE
c_raw_dict_to_propdict (int argc, VALUE *argv, VALUE self)
{
VALUE value, sources = Qnil;
RbDict *dict = NULL, *dict2 = NULL;
xmmsv_t *inner_dict;
const char **csources = NULL;
Data_Get_Struct (self, RbDict, dict);
rb_scan_args (argc, argv, "01", &sources);
if (!NIL_P (sources))
csources = parse_string_array (sources);
inner_dict = xmmsv_propdict_to_dict (dict->real, csources);
if (csources)
free (csources);
value = Data_Make_Struct (cDict, RbDict,
c_dict_mark, c_dict_free,
dict2);
// don't add a second reference here
dict2->real = inner_dict;
dict2->parent = dict->parent;
rb_obj_call_init (value, 0, NULL);
return value;
}