GSoC:2008 Collections 2.0 Query API proposal - nesciens/xmms2-wiki GitHub Wiki
Proposed Query API
In the new API ordering is done using the order collections operator. Limiting is done using the limit collections operator.
xmmsc_coll_query_mediaset_{id,info}s are provided only for convenience. They could also be achieved using xmmsc_coll_query_medialist_{id,info}s having applied order[type=id,order=ASC](mediaset(coll)) to the original collection.
Getting ids
- xmmsc_coll_query_medialist_ids (conn, coll) - one id per entry
- xmmsc_coll_query_mediaset_ids (conn, coll) - every id once, ordered ascending by id
Getting metadata
- xmmsc_coll_query_medialist_infos (conn, coll, fetch) - one row per entry
- xmmsc_coll_query_mediaset_infos (conn, coll, fetch) - every id once, ordered ascending by id
- xmmsc_coll_query_clustered_infos (conn, coll, fetch, clusterby) - one row in recursive dicts
Conditional fetching
These fetch one row per entry of coll1, if coll1 is a medialist, otherwise of coll2. This is useful for inserting/appending collections to playlists and for using the same window for showing mediaset (which need additional order-operators) and medialists.
- xmmsc_coll_query_ids_if_medialist (conn, coll1, coll2)
- xmmsc_coll_query_infos_if_medialist (conn, coll1, coll2, fetch)
For compatibility
- xmmsc_coll_query_ids (conn, coll, order, limit_start, limit_len) - legacy-style query_ids
- xmmsc_coll_query_infos (conn, coll, order, limit_start, limit_len, fetch, group) - legacy style query_infos