Exemple #1
0
static void
cli_info_print (xmmsv_t *propdict)
{
	xmmsv_t *properties, *sourcedict, *sources, *value;
	xmmsv_list_iter_t *pit, *sit;
	const gchar *source, *property;
	gint source_width;
	GString *sb;

	if (!xmmsv_propdict_lengths (propdict, NULL, &source_width)) {
		return;
	}

	sb = g_string_sized_new (source_width);

	xmmsv_dict_keys (propdict, &properties);
	xmmsv_list_sort (properties, xmmsv_strcmp);

	xmmsv_get_list_iter (properties, &pit);
	while (xmmsv_list_iter_entry_string (pit, &property)) {
		if (xmmsv_dict_get (propdict, property, &sourcedict)) {
			xmmsv_dict_keys (sourcedict, &sources);
			xmmsv_list_sort (sources, xmmsv_strcmp);

			xmmsv_get_list_iter (sources, &sit);
			while (xmmsv_list_iter_entry_string (sit, &source)) {
				if (xmmsv_dict_get (sourcedict, source, &value)) {
					cli_info_pad_source (sb, source_width, source);
					xmmsv_print_value (sb->str, property, value);
				}
				xmmsv_list_iter_next (sit);
			}
		}
		xmmsv_list_iter_next (pit);
	}

	g_string_free (sb, TRUE);
}
Exemple #2
0
xmmsv_t *
xmms_xform_browse_method (xmms_xform_t *xform, const gchar *url,
                          xmms_error_t *error)
{
	xmmsv_t *list = NULL;

	if (xmms_xform_plugin_can_browse (xform->plugin)) {
		xform->browse_list = xmmsv_new_list ();
		if (!xmms_xform_plugin_browse (xform->plugin, xform, url, error)) {
			return NULL;
		}
		list = xform->browse_list;
		xform->browse_list = NULL;
		xmmsv_list_sort (list, xmms_browse_list_sortfunc);
	} else {
		xmms_error_set (error, XMMS_ERROR_GENERIC, "Couldn't handle that URL");
	}

	return list;
}