static void test_list_sources (void) { GList *list = ol_lyric_source_list_sources (source); for (; list != NULL; list = g_list_delete_link (list, list)) { OlLyricSourceInfo *info = list->data; printf ("%s: %s\n", ol_lyric_source_info_get_id (info), ol_lyric_source_info_get_name (info)); ol_lyric_source_info_free (info); } }
static GList* get_default_sourcid_list (void) { GList *list = ol_lyric_source_list_sources (source); GList *ids = NULL; for (; list != NULL; list = g_list_delete_link (list, list)) { OlLyricSourceInfo *info = list->data; if (ol_lyric_source_info_get_enabled (info)) { ids = g_list_prepend (ids, g_strdup (ol_lyric_source_info_get_id (info))); } ol_lyric_source_info_free (info); } return g_list_reverse (ids); }
OlLyricSourceSearchTask * ol_lyric_source_search_default (OlLyricSource *source, OlMetadata *metadata) { ol_assert_ret (OL_IS_LYRIC_SOURCE (source), NULL); OlLyricSourceSearchTask *task = NULL; GList *sources; GList *source_ids = NULL; sources = ol_lyric_source_list_sources (source); for (; sources; sources = g_list_delete_link (sources, sources)) { OlLyricSourceInfo *info = sources->data; source_ids = g_list_prepend (source_ids, g_strdup (ol_lyric_source_info_get_id (info))); ol_lyric_source_info_free (info); } source_ids = g_list_reverse (source_ids); task = ol_lyric_source_search (source, metadata, source_ids); for (; source_ids; source_ids = g_list_delete_link (source_ids, source_ids)) { g_free (source_ids->data); } return task; }