20
20
cmd_stats (xmmsc_connection_t *conn, gint argc, gchar **argv)
22
22
xmmsc_result_t *res;
24
25
res = xmmsc_main_stats (conn);
25
26
xmmsc_result_wait (res);
27
val = xmmsc_result_get_value (res);
27
if (xmmsc_result_iserror (res)) {
28
print_error ("%s", xmmsc_result_get_error (res));
29
if (xmmsv_is_error (val)) {
30
print_error ("%s", xmmsv_get_error_old (val));
31
xmmsc_result_dict_foreach (res, print_hash, NULL);
33
xmmsv_dict_foreach (val, print_hash, NULL);
32
34
xmmsc_result_unref (res);
52
56
res = xmmsc_plugin_list (conn, type);
53
57
xmmsc_result_wait (res);
58
val = xmmsc_result_get_value (res);
55
if (xmmsc_result_iserror (res)) {
56
print_error ("%s", xmmsc_result_get_error (res));
60
if (xmmsv_is_error (val)) {
61
print_error ("%s", xmmsv_get_error_old (val));
59
while (xmmsc_result_list_valid (res)) {
64
xmmsv_get_list_iter (val, &it);
65
while (xmmsv_list_iter_valid (it)) {
60
67
const gchar *shortname, *desc;
62
if (xmmsc_result_get_dict_entry_string (res, "shortname", &shortname) &&
63
xmmsc_result_get_dict_entry_string (res, "description", &desc)) {
69
if (xmmsv_list_iter_entry (it, &dict) &&
70
xmmsv_dict_entry_get_string (dict, "shortname", &shortname) &&
71
xmmsv_dict_entry_get_string (dict, "description", &desc)) {
64
72
print_info ("%s - %s", shortname, desc);
67
xmmsc_result_list_next (res);
75
xmmsv_list_iter_next (it);
69
77
xmmsc_result_unref (res);
96
106
res = xmmsc_xform_media_browse (conn, argv[2]);
97
107
xmmsc_result_wait (res);
108
val = xmmsc_result_get_value (res);
99
if (xmmsc_result_iserror (res)) {
100
print_error ("%s", xmmsc_result_get_error (res));
110
if (xmmsv_is_error (val)) {
111
print_error ("%s", xmmsv_get_error_old (val));
103
for (;xmmsc_result_list_valid (res); xmmsc_result_list_next (res)) {
104
xmmsc_result_value_type_t type;
114
xmmsv_get_list_iter (val, &it);
115
while (xmmsv_list_iter_valid (it)) {
108
type = xmmsc_result_get_dict_entry_type (res, "realpath");
109
if (type != XMMSC_RESULT_VALUE_TYPE_NONE) {
110
xmmsc_result_get_dict_entry_string (res, "realpath", &r);
121
xmmsv_list_iter_entry (it, &dict);
122
type = xmmsv_dict_entry_get_type (dict, "realpath");
123
if (type != XMMSV_TYPE_NONE) {
124
xmmsv_dict_entry_get_string (dict, "realpath", &r);
112
xmmsc_result_get_dict_entry_string (res, "path", &r);
126
xmmsv_dict_entry_get_string (dict, "path", &r);
115
xmmsc_result_get_dict_entry_int (res, "isdir", &d);
129
xmmsv_dict_entry_get_int (dict, "isdir", &d);
116
130
print_info ("%s%c", r, d ? '/' : ' ');
131
xmmsv_list_iter_next (it);
119
134
xmmsc_result_unref (res);