Added the ability to query playlists via LocalSimpleDataProvider.

This commit is contained in:
casey langen 2017-02-17 21:54:33 -08:00
parent 1403a92772
commit 2e765da9fc
2 changed files with 16 additions and 5 deletions

View File

@ -41,12 +41,15 @@
#include <core/library/query/local/CategoryListQuery.h>
#include <core/library/query/local/CategoryTrackListQuery.h>
#include <core/library/query/local/SearchTrackListQuery.h>
#include <core/library/query/local/GetPlaylistQuery.h>
#include <core/library/LocalLibraryConstants.h>
#define TAG "LocalSimpleDataProvider"
using namespace musik::core;
using namespace musik::core::db;
using namespace musik::core::db::local;
using namespace musik::core::library;
using namespace musik::core::sdk;
LocalSimpleDataProvider::LocalSimpleDataProvider(musik::core::ILibraryPtr library)
@ -88,8 +91,15 @@ ITrackList* LocalSimpleDataProvider::QueryTracksByCategory(
int offset)
{
try {
std::shared_ptr<CategoryTrackListQuery> search(
new CategoryTrackListQuery(this->library, categoryType, selectedId, filter));
std::shared_ptr<TrackListQueryBase> search;
if (std::string(categoryType) == constants::Playlists::TABLE_NAME) {
search.reset(new GetPlaylistQuery(this->library, selectedId));
}
else {
search.reset(new CategoryTrackListQuery(
this->library, categoryType, selectedId, filter));
}
if (limit >= 0) {
search->SetLimitAndOffset(limit, offset);

View File

@ -80,10 +80,11 @@ bool GetPlaylistQuery::OnRun(Connection& db) {
}
std::string query =
"SELECT DISTINCT track_id " \
"FROM playlist_tracks " \
"SELECT DISTINCT track_id "
"FROM playlist_tracks "
"WHERE playlist_id=? "
"ORDER BY sort_order;";
"ORDER BY sort_order " +
this->GetLimitAndOffset();
Statement trackQuery(query.c_str(), db);
trackQuery.BindInt(0, this->playlistId);