static void test_empty_source (void) { task_cnt++; OlMetadata *metadata = ol_metadata_new (); ol_metadata_set_title (metadata, "empty"); OlLyricSourceSearchTask *task = ol_lyric_source_search (source, metadata, NULL); g_signal_connect (G_OBJECT (task), "complete", (GCallback) search_complete_cb, (gpointer)OL_LYRIC_SOURCE_STATUS_FALIURE); g_signal_connect (G_OBJECT (task), "started", (GCallback) search_started_cb, NULL); ol_lyric_source_task_cancel (OL_LYRIC_SOURCE_TASK (task)); ol_metadata_free (metadata); }
static void test_search (void) { task_cnt++; OlMetadata *metadata = ol_metadata_new (); ol_metadata_set_title (metadata, "虫儿飞"); GList *ids = get_default_sourcid_list (); OlLyricSourceSearchTask *task = ol_lyric_source_search (source, metadata, ids); g_signal_connect (G_OBJECT (task), "complete", (GCallback) search_complete_cb, (gpointer) OL_LYRIC_SOURCE_STATUS_SUCCESS); g_signal_connect (G_OBJECT (task), "started", (GCallback) search_started_cb, NULL); ol_metadata_free (metadata); free_sourceid_list (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; }