static int findInDirectory(struct song *song, void *_data) { struct search_data *data = _data; if (locate_song_match(song, data->criteria)) song_print_info(data->client, song); return 0; }
static bool find_visitor_song(struct song *song, void *_data, G_GNUC_UNUSED GError **error_r) { struct search_data *data = _data; if (locate_song_match(song, data->criteria)) song_print_info(data->client, song); return true; }
static int listUniqueTagsInDirectory(struct song *song, void *_data) { struct list_tags_data *data = _data; ListCommandItem *item = data->item; if (locate_song_match(song, item->criteria)) visitTag(data->client, data->set, song, item->tagType); return 0; }
void queue_find(struct client *client, const struct queue *queue, const struct locate_item_list *criteria) { for (unsigned i = 0; i < queue_length(queue); i++) { const struct song *song = queue_get(queue, i); if (locate_song_match(song, criteria)) queue_print_song_info(client, queue, i); } }
static bool unique_tags_visitor_song(struct song *song, void *_data, G_GNUC_UNUSED GError **error_r) { struct list_tags_data *data = _data; ListCommandItem *item = data->item; if (locate_song_match(song, item->criteria)) visitTag(data->client, data->set, song, item->tagType); return true; }
static int findAddInDirectory(struct song *song, void *_data) { struct search_data *data = _data; if (locate_song_match(song, data->criteria)) return playlist_append_song(&g_playlist, data->client->player_control, song, NULL); return 0; }
static int searchStatsInDirectory(struct song *song, void *data) { SearchStats *stats = data; if (locate_song_match(song, stats->criteria)) { stats->numberOfSongs++; stats->playTime += song_get_duration(song); } return 0; }
static bool stats_visitor_song(struct song *song, void *data, G_GNUC_UNUSED GError **error_r) { SearchStats *stats = data; if (locate_song_match(song, stats->criteria)) { stats->numberOfSongs++; stats->playTime += song_get_duration(song); } return true; }