void positions_print_info (cli_infos_t *infos, playlist_positions_t *positions) { pl_pos_udata_t udata = { infos, NULL, NULL, NULL, 0, 0 }; playlist_positions_foreach (positions, pos_print_info_cb, TRUE, &udata); cli_infos_loop_resume (infos); }
void positions_print_list (xmmsc_result_t *res, playlist_positions_t *positions, column_display_t *coldisp, gboolean is_search) { cli_infos_t *infos = column_display_infos_get (coldisp); pl_pos_udata_t udata = { infos, coldisp, NULL, NULL, 0, 0}; xmmsv_t *val; GArray *entries; guint id; const gchar *err; /* FIXME: separate function or merge with list_print_row (lot of if(positions))? */ val = xmmsc_result_get_value (res); if (!xmmsv_get_error (val, &err)) { xmmsv_list_iter_t *it; column_display_prepare (coldisp); if (is_search) { column_display_print_header (coldisp); } entries = g_array_sized_new (FALSE, FALSE, sizeof (guint), xmmsv_list_get_size (val)); for (xmmsv_get_list_iter (val, &it); xmmsv_list_iter_valid (it); xmmsv_list_iter_next (it)) { xmmsv_t *entry; xmmsv_list_iter_entry (it, &entry); if (xmmsv_get_uint (entry, &id)) { g_array_append_val (entries, id); } } udata.entries = entries; playlist_positions_foreach (positions, pos_print_row_cb, TRUE, &udata); } else { g_printf (_("Server error: %s\n"), err); } if (is_search) { column_display_print_footer (coldisp); } else { g_printf ("\n"); column_display_print_footer_totaltime (coldisp); } column_display_free (coldisp); g_array_free (entries, TRUE); cli_infos_loop_resume (infos); xmmsc_result_unref (res); }
void positions_remove (cli_infos_t *infos, const gchar *playlist, playlist_positions_t *positions) { pl_pos_udata_t udata = { infos, NULL, playlist, NULL, 0, 0 }; playlist_positions_foreach (positions, pos_remove_cb, FALSE, &udata); cli_infos_loop_resume (infos); }
static void cli_info_print_positions (cli_context_t *ctx, playlist_positions_t *positions) { cli_info_print_positions_t udata = { ctx, 0, 0 }; playlist_positions_foreach (positions, cli_info_print_position, TRUE, &udata); }