1
0
mirror of https://github.com/clangen/musikcube.git synced 2025-02-14 09:40:53 +00:00

- Moved PlaybackService and TrackList from glue to core

- Moved all current queries from box to blue
This commit is contained in:
casey langen 2017-01-06 23:49:46 -08:00
parent 79cf91851d
commit 9812e2fe3d
44 changed files with 218 additions and 228 deletions

@ -5,6 +5,7 @@ set(CORE_SOURCES
./audio/CrossfadeTransport.cpp
./audio/GaplessTransport.cpp
./audio/Outputs.cpp
./audio/PlaybackService.cpp
./audio/Player.cpp
./audio/Stream.cpp
./audio/Streams.cpp
@ -23,6 +24,7 @@ set(CORE_SOURCES
./library/track/IndexerTrack.cpp
./library/track/LibraryTrack.cpp
./library/track/Track.cpp
./library/track/TrackList.cpp
./library/track/RetainedTrack.cpp
./plugin/PluginFactory.cpp
./runtime/Message.cpp

@ -36,8 +36,6 @@
#include "PlaybackService.h"
#include <glue/util/Playback.h>
#include <core/audio/ITransport.h>
#include <core/library/LocalLibraryConstants.h>
#include <core/library/track/RetainedTrack.h>
@ -57,8 +55,7 @@ using namespace musik::core;
using namespace musik::core::prefs;
using namespace musik::core::sdk;
using namespace musik::core::runtime;
using namespace musik::glue;
using namespace musik::glue::audio;
using namespace musik::core::audio;
#define NO_POSITION (size_t) -1
@ -414,13 +411,17 @@ double PlaybackService::GetVolume() {
}
void PlaybackService::PauseOrResume() {
if (transport.GetPlaybackState() == PlaybackStopped) {
int state = transport.GetPlaybackState();
if (state == PlaybackStopped) {
if (this->Count()) {
this->Play(0);
}
}
else {
playback::PauseOrResume(this->transport);
else if (state == PlaybackPaused) {
transport.Resume();
}
else if (state == PlaybackPlaying) {
transport.Pause();
}
}

@ -36,11 +36,10 @@
#include <sigslot/sigslot.h>
#include <glue/model/TrackList.h>
#include <core/sdk/IPlaybackService.h>
#include <core/sdk/IPlaybackRemote.h>
#include <core/library/track/Track.h>
#include <core/library/track/TrackList.h>
#include <core/library/ILibrary.h>
#include <core/audio/ITransport.h>
#include <core/support/Preferences.h>
@ -48,7 +47,8 @@
#include <mutex>
namespace musik { namespace glue { namespace audio {
namespace musik { namespace core { namespace audio {
class PlaybackService :
public musik::core::sdk::IPlaybackService,
public musik::core::runtime::IMessageTarget,
@ -94,8 +94,8 @@ namespace musik { namespace glue { namespace audio {
/* app-specific implementation */
musik::core::audio::ITransport& GetTransport() { return this->transport; }
void Play(musik::glue::TrackList& tracks, size_t index);
void CopyTo(musik::glue::TrackList& target);
void Play(musik::core::TrackList& tracks, size_t index);
void CopyTo(musik::core::TrackList& target);
musik::core::TrackPtr GetTrackAtIndex(size_t index);
private:
@ -107,8 +107,8 @@ namespace musik { namespace glue { namespace audio {
void InitRemotes();
void ResetRemotes();
musik::glue::TrackList playlist;
musik::glue::TrackList unshuffled;
musik::core::TrackList playlist;
musik::core::TrackList unshuffled;
std::recursive_mutex playlistMutex;
std::vector<std::shared_ptr<musik::core::sdk::IPlaybackRemote > > remotes;
@ -121,4 +121,5 @@ namespace musik { namespace glue { namespace audio {
musik::core::runtime::IMessageQueue& messageQueue;
};
} } }

@ -89,6 +89,7 @@
<ClCompile Include="audio\CrossfadeTransport.cpp" />
<ClCompile Include="audio\GaplessTransport.cpp" />
<ClCompile Include="audio\Outputs.cpp" />
<ClCompile Include="audio\PlaybackService.cpp" />
<ClCompile Include="audio\Streams.cpp" />
<ClCompile Include="audio\Visualizer.cpp" />
<ClCompile Include="debug.cpp" />
@ -103,6 +104,7 @@
<ClCompile Include="library\track\LibraryTrack.cpp" />
<ClCompile Include="library\track\RetainedTrack.cpp" />
<ClCompile Include="library\track\Track.cpp" />
<ClCompile Include="library\track\TrackList.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
@ -127,6 +129,7 @@
<ClInclude Include="audio\IStream.h" />
<ClInclude Include="audio\ITransport.h" />
<ClInclude Include="audio\Outputs.h" />
<ClInclude Include="audio\PlaybackService.h" />
<ClInclude Include="audio\Streams.h" />
<ClInclude Include="audio\Visualizer.h" />
<ClInclude Include="debug.h" />
@ -145,6 +148,7 @@
<ClInclude Include="library\track\LibraryTrack.h" />
<ClInclude Include="library\track\RetainedTrack.h" />
<ClInclude Include="library\track\Track.h" />
<ClInclude Include="library\track\TrackList.h" />
<ClInclude Include="pch.hpp" />
<ClInclude Include="config.h" />
<ClInclude Include="plugin\PluginFactory.h" />

@ -133,6 +133,12 @@
<ClCompile Include="audio\Crossfader.cpp">
<Filter>src\audio</Filter>
</ClCompile>
<ClCompile Include="audio\PlaybackService.cpp">
<Filter>src\audio</Filter>
</ClCompile>
<ClCompile Include="library\track\TrackList.cpp">
<Filter>src\library\track</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.hpp">
@ -321,5 +327,11 @@
<ClInclude Include="runtime\IMessageQueue.h">
<Filter>src\runtime</Filter>
</ClInclude>
<ClInclude Include="audio\PlaybackService.h">
<Filter>src\audio</Filter>
</ClInclude>
<ClInclude Include="library\track\TrackList.h">
<Filter>src\library\track</Filter>
</ClInclude>
</ItemGroup>
</Project>

@ -45,18 +45,10 @@
#define MAX_SIZE 50
using musik::core::db::Statement;
using musik::core::db::Row;
using musik::core::TrackPtr;
using musik::core::LibraryTrack;
using musik::core::LibraryPtr;
using musik::core::ILibrary;
using namespace musik::core;
using namespace musik::core::db;
using namespace musik::core::query;
using namespace musik::core::library::constants;
using namespace musik::glue;
using namespace musik::core::library;
class TrackMetadataQuery : public QueryBase {
public:
@ -192,20 +184,20 @@ bool TrackMetadataQuery::OnRun(Connection& db) {
if (trackQuery.Step() == Row) {
DBID id = trackQuery.ColumnInt64(0);
TrackPtr track = TrackPtr(new LibraryTrack(id, this->library));
track->SetValue(Track::TRACK_NUM, trackQuery.ColumnText(1));
track->SetValue(Track::DISC_NUM, trackQuery.ColumnText(2));
track->SetValue(Track::BPM, trackQuery.ColumnText(3));
track->SetValue(Track::DURATION, trackQuery.ColumnText(4));
track->SetValue(Track::FILESIZE, trackQuery.ColumnText(5));
track->SetValue(Track::YEAR, trackQuery.ColumnText(6));
track->SetValue(Track::TITLE, trackQuery.ColumnText(7));
track->SetValue(Track::FILENAME, trackQuery.ColumnText(8));
track->SetValue(Track::THUMBNAIL_ID, trackQuery.ColumnText(9));
track->SetValue(Track::ALBUM, trackQuery.ColumnText(10));
track->SetValue(Track::ALBUM_ARTIST, trackQuery.ColumnText(11));
track->SetValue(Track::GENRE, trackQuery.ColumnText(12));
track->SetValue(Track::ARTIST, trackQuery.ColumnText(13));
track->SetValue(Track::FILETIME, trackQuery.ColumnText(14));
track->SetValue(constants::Track::TRACK_NUM, trackQuery.ColumnText(1));
track->SetValue(constants::Track::DISC_NUM, trackQuery.ColumnText(2));
track->SetValue(constants::Track::BPM, trackQuery.ColumnText(3));
track->SetValue(constants::Track::DURATION, trackQuery.ColumnText(4));
track->SetValue(constants::Track::FILESIZE, trackQuery.ColumnText(5));
track->SetValue(constants::Track::YEAR, trackQuery.ColumnText(6));
track->SetValue(constants::Track::TITLE, trackQuery.ColumnText(7));
track->SetValue(constants::Track::FILENAME, trackQuery.ColumnText(8));
track->SetValue(constants::Track::THUMBNAIL_ID, trackQuery.ColumnText(9));
track->SetValue(constants::Track::ALBUM, trackQuery.ColumnText(10));
track->SetValue(constants::Track::ALBUM_ARTIST, trackQuery.ColumnText(11));
track->SetValue(constants::Track::GENRE, trackQuery.ColumnText(12));
track->SetValue(constants::Track::ARTIST, trackQuery.ColumnText(13));
track->SetValue(constants::Track::FILETIME, trackQuery.ColumnText(14));
this->result = track;
return true;

@ -40,38 +40,36 @@
#include <unordered_map>
#include <list>
namespace musik {
namespace glue {
class TrackList {
public:
TrackList(musik::core::LibraryPtr library);
virtual ~TrackList();
namespace musik { namespace core {
class TrackList {
public:
TrackList(LibraryPtr library);
virtual ~TrackList();
size_t Count();
void Add(const DBID& id);
musik::core::TrackPtr Get(size_t index);
DBID GetId(size_t index);
int IndexOf(DBID id);
void ClearCache();
void Clear();
void Swap(TrackList& list);
void CopyFrom(TrackList& from);
void Shuffle();
size_t Count();
void Add(const DBID& id);
TrackPtr Get(size_t index);
DBID GetId(size_t index);
int IndexOf(DBID id);
void ClearCache();
void Clear();
void Swap(TrackList& list);
void CopyFrom(TrackList& from);
void Shuffle();
private:
typedef std::list<DBID> CacheList;
typedef std::pair<musik::core::TrackPtr, CacheList::iterator> CacheValue;
typedef std::unordered_map<DBID, CacheValue> CacheMap;
private:
typedef std::list<DBID> CacheList;
typedef std::pair<TrackPtr, CacheList::iterator> CacheValue;
typedef std::unordered_map<DBID, CacheValue> CacheMap;
musik::core::TrackPtr GetFromCache(DBID key);
void AddToCache(DBID key, musik::core::TrackPtr value);
TrackPtr GetFromCache(DBID key);
void AddToCache(DBID key, TrackPtr value);
/* lru cache structures */
CacheList cacheList;
CacheMap cacheMap;
/* lru cache structures */
CacheList cacheList;
CacheMap cacheMap;
std::vector<DBID> ids;
musik::core::LibraryPtr library;
};
}
}
std::vector<DBID> ids;
LibraryPtr library;
};
} }

@ -1,7 +1,9 @@
set(GLUE_SOURCES
./audio/MasterTransport.cpp
./audio/PlaybackService.cpp
./model/TrackList.cpp
./query/CategoryListQuery.cpp
./query/CategoryTrackListQuery.cpp
./query/NowPlayingTrackListQuery.cpp
./query/SearchTrackListQuery.cpp
./util/Duration.cpp
./util/Playback.cpp
)

@ -92,20 +92,25 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="audio\MasterTransport.h" />
<ClInclude Include="audio\PlaybackService.h" />
<ClInclude Include="model\TrackList.h" />
<ClInclude Include="pch.hpp" />
<ClInclude Include="query\CategoryListQuery.h" />
<ClInclude Include="query\CategoryTrackListQuery.h" />
<ClInclude Include="query\NowPlayingTrackListQuery.h" />
<ClInclude Include="query\SearchTrackListQuery.h" />
<ClInclude Include="query\TrackListQueryBase.h" />
<ClInclude Include="util\Duration.h" />
<ClInclude Include="util\Playback.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="audio\MasterTransport.cpp" />
<ClCompile Include="audio\PlaybackService.cpp" />
<ClCompile Include="model\TrackList.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="query\CategoryListQuery.cpp" />
<ClCompile Include="query\CategoryTrackListQuery.cpp" />
<ClCompile Include="query\NowPlayingTrackListQuery.cpp" />
<ClCompile Include="query\SearchTrackListQuery.cpp" />
<ClCompile Include="util\Duration.cpp" />
<ClCompile Include="util\Playback.cpp" />
</ItemGroup>

@ -7,12 +7,12 @@
<Filter Include="src\audio">
<UniqueIdentifier>{df549fdf-a398-4ade-94b5-89aca3719470}</UniqueIdentifier>
</Filter>
<Filter Include="src\model">
<UniqueIdentifier>{7fd41124-442f-4e74-82a9-470f68b65cd0}</UniqueIdentifier>
</Filter>
<Filter Include="src\util">
<UniqueIdentifier>{bbbddc84-ecce-43e4-baa1-c93978765231}</UniqueIdentifier>
</Filter>
<Filter Include="src\query">
<UniqueIdentifier>{5aa81b51-6987-497b-9a22-1c68171652b4}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.hpp">
@ -21,18 +21,27 @@
<ClInclude Include="audio\MasterTransport.h">
<Filter>src\audio</Filter>
</ClInclude>
<ClInclude Include="audio\PlaybackService.h">
<Filter>src\audio</Filter>
</ClInclude>
<ClInclude Include="model\TrackList.h">
<Filter>src\model</Filter>
</ClInclude>
<ClInclude Include="util\Playback.h">
<Filter>src\util</Filter>
</ClInclude>
<ClInclude Include="util\Duration.h">
<Filter>src\util</Filter>
</ClInclude>
<ClInclude Include="query\CategoryTrackListQuery.h">
<Filter>src\query</Filter>
</ClInclude>
<ClInclude Include="query\NowPlayingTrackListQuery.h">
<Filter>src\query</Filter>
</ClInclude>
<ClInclude Include="query\SearchTrackListQuery.h">
<Filter>src\query</Filter>
</ClInclude>
<ClInclude Include="query\TrackListQueryBase.h">
<Filter>src\query</Filter>
</ClInclude>
<ClInclude Include="query\CategoryListQuery.h">
<Filter>src\query</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="pch.cpp">
@ -41,17 +50,23 @@
<ClCompile Include="audio\MasterTransport.cpp">
<Filter>src\audio</Filter>
</ClCompile>
<ClCompile Include="audio\PlaybackService.cpp">
<Filter>src\audio</Filter>
</ClCompile>
<ClCompile Include="model\TrackList.cpp">
<Filter>src\model</Filter>
</ClCompile>
<ClCompile Include="util\Playback.cpp">
<Filter>src\util</Filter>
</ClCompile>
<ClCompile Include="util\Duration.cpp">
<Filter>src\util</Filter>
</ClCompile>
<ClCompile Include="query\CategoryTrackListQuery.cpp">
<Filter>src\query</Filter>
</ClCompile>
<ClCompile Include="query\NowPlayingTrackListQuery.cpp">
<Filter>src\query</Filter>
</ClCompile>
<ClCompile Include="query\SearchTrackListQuery.cpp">
<Filter>src\query</Filter>
</ClCompile>
<ClCompile Include="query\CategoryListQuery.cpp">
<Filter>src\query</Filter>
</ClCompile>
</ItemGroup>
</Project>

@ -32,8 +32,8 @@
//
//////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "CategoryListViewQuery.h"
#include "pch.hpp"
#include "CategoryListQuery.h"
#include <core/library/LocalLibraryConstants.h>
#include <core/db/Statement.h>
@ -46,7 +46,7 @@ using musik::core::db::Row;
using namespace musik::core::db;
using namespace musik::core::library::constants;
using namespace musik::box;
using namespace musik::glue;
#define RESET_RESULT(x) x.reset(new std::vector<std::shared_ptr<Result> >);
@ -114,7 +114,7 @@ static void initFieldToQueryMap() {
FILTERED_FIELD_TO_QUERY_MAP[Track::GENRE] = FILTERED_GENRE_QUERY;
}
CategoryListViewQuery::CategoryListViewQuery(
CategoryListQuery::CategoryListQuery(
const std::string& trackField, const std::string& filter)
: trackField(trackField)
, filter(filter) {
@ -133,15 +133,15 @@ CategoryListViewQuery::CategoryListViewQuery(
}
}
CategoryListViewQuery::~CategoryListViewQuery() {
CategoryListQuery::~CategoryListQuery() {
}
CategoryListViewQuery::ResultList CategoryListViewQuery::GetResult() {
CategoryListQuery::ResultList CategoryListQuery::GetResult() {
return this->result;
}
int CategoryListViewQuery::GetIndexOf(DBID id) {
int CategoryListQuery::GetIndexOf(DBID id) {
auto result = this->GetResult();
for (size_t i = 0; i < result->size(); i++) {
if (id == (*result)[i]->id) {
@ -151,7 +151,7 @@ int CategoryListViewQuery::GetIndexOf(DBID id) {
return -1;
}
bool CategoryListViewQuery::OnRun(Connection& db) {
bool CategoryListQuery::OnRun(Connection& db) {
RESET_RESULT(result);
bool filtered = this->filter.size() > 0;

@ -39,8 +39,8 @@
#include <memory>
namespace musik {
namespace box {
class CategoryListViewQuery : public musik::core::query::QueryBase {
namespace glue {
class CategoryListQuery : public musik::core::query::QueryBase {
public:
struct Result {
std::string displayValue;
@ -50,13 +50,13 @@ namespace musik {
typedef std::shared_ptr<std::vector<
std::shared_ptr<Result> > > ResultList;
CategoryListViewQuery(
CategoryListQuery(
const std::string& trackField,
const std::string& filter = "");
virtual ~CategoryListViewQuery();
virtual ~CategoryListQuery();
std::string Name() { return "CategoryListViewQuery"; }
std::string Name() { return "CategoryListQuery"; }
virtual ResultList GetResult();
virtual int GetIndexOf(DBID id);

@ -32,7 +32,7 @@
//
//////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "pch.hpp"
#include "CategoryTrackListQuery.h"
#include <core/library/track/LibraryTrack.h>
@ -49,7 +49,7 @@ using musik::core::LibraryPtr;
using namespace musik::core::db;
using namespace musik::core::library::constants;
using namespace musik::box;
using namespace musik::glue;
static std::map<std::string, std::string> FIELD_TO_FOREIGN_KEY =
{
@ -62,7 +62,7 @@ static std::map<std::string, std::string> FIELD_TO_FOREIGN_KEY =
CategoryTrackListQuery::CategoryTrackListQuery(LibraryPtr library, const std::string& column, DBID id) {
this->library = library;
this->id = id;
this->result.reset(new musik::glue::TrackList(library));
this->result.reset(new musik::core::TrackList(library));
this->headers.reset(new std::set<size_t>());
this->hash = 0;
@ -98,7 +98,7 @@ size_t CategoryTrackListQuery::GetQueryHash() {
bool CategoryTrackListQuery::OnRun(Connection& db) {
if (result) {
result.reset(new musik::glue::TrackList(this->library));
result.reset(new musik::core::TrackList(this->library));
headers.reset(new std::set<size_t>());
}

@ -34,14 +34,14 @@
#pragma once
#include <core/library/query/QueryBase.h>
#include <core/db/Connection.h>
#include <core/library/track/Track.h>
#include <core/library/query/QueryBase.h>
#include "TrackListQueryBase.h"
namespace musik {
namespace box {
namespace glue {
class CategoryTrackListQuery : public TrackListQueryBase {
public:
CategoryTrackListQuery(

@ -32,7 +32,7 @@
//
//////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "pch.hpp"
#include "NowPlayingTrackListQuery.h"
#include <core/library/track/LibraryTrack.h>
@ -47,13 +47,13 @@ using musik::core::LibraryPtr;
using namespace musik::core::db;
using namespace musik::core::library::constants;
using namespace musik::box;
using namespace musik::glue;
NowPlayingTrackListQuery::NowPlayingTrackListQuery(
LibraryPtr library, musik::glue::audio::PlaybackService& playback)
LibraryPtr library, musik::core::audio::PlaybackService& playback)
: library(library)
, playback(playback) {
this->result.reset(new musik::glue::TrackList(library));
this->result.reset(new musik::core::TrackList(library));
this->headers.reset(new std::set<size_t>());
this->hash = 0;
}
@ -80,7 +80,7 @@ size_t NowPlayingTrackListQuery::GetQueryHash() {
bool NowPlayingTrackListQuery::OnRun(Connection& db) {
if (result) {
result.reset(new musik::glue::TrackList(this->library));
result.reset(new musik::core::TrackList(this->library));
headers.reset(new std::set<size_t>());
}

@ -35,16 +35,17 @@
#pragma once
#include <core/library/query/QueryBase.h>
#include <core/audio/PlaybackService.h>
#include "TrackListQueryBase.h"
#include <glue/audio/PlaybackService.h>
namespace musik {
namespace box {
namespace glue {
class NowPlayingTrackListQuery : public TrackListQueryBase {
public:
NowPlayingTrackListQuery(
musik::core::LibraryPtr library,
musik::glue::audio::PlaybackService& playback);
musik::core::audio::PlaybackService& playback);
virtual ~NowPlayingTrackListQuery();
@ -58,7 +59,7 @@ namespace musik {
private:
musik::core::LibraryPtr library;
musik::glue::audio::PlaybackService& playback;
musik::core::audio::PlaybackService& playback;
Result result;
Headers headers;
size_t hash;

@ -32,7 +32,7 @@
//
//////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "pch.hpp"
#include "SearchTrackListQuery.h"
#include <core/library/track/LibraryTrack.h>
@ -50,7 +50,7 @@ using musik::core::LibraryPtr;
using namespace musik::core::db;
using namespace musik::core::library::constants;
using namespace musik::box;
using namespace musik::glue;
using namespace boost::algorithm;
SearchTrackListQuery::SearchTrackListQuery(LibraryPtr library, const std::string& filter) {
@ -60,7 +60,7 @@ SearchTrackListQuery::SearchTrackListQuery(LibraryPtr library, const std::string
this->filter = "%" + trim_copy(to_lower_copy(filter)) + "%";
}
this->result.reset(new musik::glue::TrackList(library));
this->result.reset(new musik::core::TrackList(library));
this->headers.reset(new std::set<size_t>());
this->hash = 0;
}
@ -83,7 +83,7 @@ size_t SearchTrackListQuery::GetQueryHash() {
bool SearchTrackListQuery::OnRun(Connection& db) {
if (result) {
result.reset(new musik::glue::TrackList(this->library));
result.reset(new musik::core::TrackList(this->library));
headers.reset(new std::set<size_t>());
}

@ -37,7 +37,7 @@
#include "TrackListQueryBase.h"
namespace musik {
namespace box {
namespace glue {
class SearchTrackListQuery : public TrackListQueryBase {
public:
SearchTrackListQuery(

@ -37,14 +37,13 @@
#include <core/library/query/QueryBase.h>
#include <core/db/Connection.h>
#include <core/library/track/Track.h>
#include <glue/model/TrackList.h>
#include "CategoryListViewQuery.h"
#include <core/library/track/TrackList.h>
namespace musik {
namespace box {
namespace glue {
class TrackListQueryBase : public musik::core::query::QueryBase {
public:
typedef std::shared_ptr<musik::glue::TrackList> Result;
typedef std::shared_ptr<musik::core::TrackList> Result;
typedef std::shared_ptr<std::set<size_t> > Headers;
virtual ~TrackListQueryBase() { };

@ -46,7 +46,7 @@
#include <app/util/GlobalHotkeys.h>
#include <app/util/Hotkeys.h>
#include <app/util/PreferenceKeys.h>
#include <glue/audio/PlaybackService.h>
#include <core/audio/PlaybackService.h>
#include <glue/audio/MasterTransport.h>

@ -37,7 +37,7 @@
#include <cursespp/Colors.h>
#include <cursespp/Screen.h>
#include <core/library/LocalLibraryConstants.h>
#include <app/query/CategoryTrackListQuery.h>
#include <glue/query/CategoryTrackListQuery.h>
#include <app/util/Hotkeys.h>
#include <app/util/Playback.h>
@ -76,7 +76,7 @@ static std::map <std::string, std::string> FIELD_TO_TITLE{
this->categoryTitle->SetText(CATEGORY_TITLE(key), text::AlignCenter);
BrowseLayout::BrowseLayout(
musik::glue::audio::PlaybackService& playback,
musik::core::audio::PlaybackService& playback,
LibraryPtr library)
: LayoutBase()
, playback(playback) {
@ -167,8 +167,8 @@ void BrowseLayout::RequeryTrackList(ListWindow *view) {
if (view == this->categoryList.get()) {
DBID selectedId = this->categoryList->GetSelectedId();
if (selectedId != -1) {
this->trackList->Requery(std::shared_ptr<TrackListQueryBase>(
new CategoryTrackListQuery(
this->trackList->Requery(std::shared_ptr<musik::glue::TrackListQueryBase>(
new musik::glue::CategoryTrackListQuery(
this->library,
this->categoryList->GetFieldName(),
selectedId)));

@ -40,7 +40,7 @@
#include <app/window/CategoryListView.h>
#include <app/window/TrackListView.h>
#include <app/window/TransportWindow.h>
#include <glue/audio/PlaybackService.h>
#include <core/audio/PlaybackService.h>
#include <core/library/ILibrary.h>
@ -57,7 +57,7 @@ namespace musik {
{
public:
BrowseLayout(
musik::glue::audio::PlaybackService& playback,
musik::core::audio::PlaybackService& playback,
musik::core::LibraryPtr library);
virtual ~BrowseLayout();
@ -83,7 +83,7 @@ namespace musik {
void OnCategoryViewInvalidated(
cursespp::ListWindow *view, size_t selectedIndex);
musik::glue::audio::PlaybackService& playback;
musik::core::audio::PlaybackService& playback;
musik::core::LibraryPtr library;
std::shared_ptr<CategoryListView> categoryList;
std::shared_ptr<TrackListView> trackList;

@ -39,7 +39,6 @@
#include <core/library/LocalLibraryConstants.h>
#include <app/query/CategoryTrackListQuery.h>
#include <app/util/Hotkeys.h>
#include <glue/util/Playback.h>
@ -60,7 +59,7 @@ using namespace musik::box;
using namespace musik::core::runtime;
using namespace cursespp;
LibraryLayout::LibraryLayout(musik::glue::audio::PlaybackService& playback, LibraryPtr library)
LibraryLayout::LibraryLayout(musik::core::audio::PlaybackService& playback, LibraryPtr library)
: LayoutBase()
, playback(playback)
, shortcuts(nullptr)

@ -42,7 +42,7 @@
#include <app/layout/SearchLayout.h>
#include <app/layout/TrackSearchLayout.h>
#include <app/window/TransportWindow.h>
#include <glue/audio/PlaybackService.h>
#include <core/audio/PlaybackService.h>
#include <core/library/ILibrary.h>
@ -59,7 +59,7 @@ namespace musik {
{
public:
LibraryLayout(
musik::glue::audio::PlaybackService& playback,
musik::core::audio::PlaybackService& playback,
musik::core::LibraryPtr library);
virtual ~LibraryLayout();
@ -97,7 +97,7 @@ namespace musik {
void OnLayoutChanged();
void UpdateShortcutsWindow();
musik::glue::audio::PlaybackService& playback;
musik::core::audio::PlaybackService& playback;
musik::core::audio::ITransport& transport;
musik::core::LibraryPtr library;
std::shared_ptr<BrowseLayout> browseLayout;

@ -38,7 +38,7 @@
#include <cursespp/Screen.h>
#include <cursespp/Text.h>
#include <core/library/LocalLibraryConstants.h>
#include <app/query/NowPlayingTrackListQuery.h>
#include <glue/query/NowPlayingTrackListQuery.h>
#include <glue/util/Duration.h>
#include "NowPlayingLayout.h"
@ -56,7 +56,7 @@ using namespace cursespp;
static std::string formatWithAlbum(TrackPtr track, size_t width);
NowPlayingLayout::NowPlayingLayout(
musik::glue::audio::PlaybackService& playback,
musik::core::audio::PlaybackService& playback,
musik::core::LibraryPtr library)
: LayoutBase()
, playback(playback)

@ -39,7 +39,7 @@
#include <app/window/CategoryListView.h>
#include <app/window/TrackListView.h>
#include <app/window/TransportWindow.h>
#include <glue/audio/PlaybackService.h>
#include <core/audio/PlaybackService.h>
#include <core/library/ILibrary.h>
@ -56,7 +56,7 @@ namespace musik {
{
public:
NowPlayingLayout(
musik::glue::audio::PlaybackService& playback,
musik::core::audio::PlaybackService& playback,
musik::core::LibraryPtr library);
virtual ~NowPlayingLayout();
@ -73,7 +73,7 @@ namespace musik {
void InitializeWindows();
void RequeryTrackList();
musik::glue::audio::PlaybackService& playback;
musik::core::audio::PlaybackService& playback;
musik::core::LibraryPtr library;
std::shared_ptr<TrackListView> trackList;
};

@ -38,7 +38,6 @@
#include <cursespp/Screen.h>
#include <cursespp/Text.h>
#include <core/library/LocalLibraryConstants.h>
#include <app/query/CategoryTrackListQuery.h>
#include "SearchLayout.h"
using namespace musik::core::library::constants;
@ -57,7 +56,7 @@ using namespace cursespp;
x == this->artists || \
x == this->genres
SearchLayout::SearchLayout(musik::glue::audio::PlaybackService& playback, LibraryPtr library)
SearchLayout::SearchLayout(musik::core::audio::PlaybackService& playback, LibraryPtr library)
: LayoutBase() {
this->library = library;
this->InitializeWindows(playback);
@ -102,7 +101,7 @@ void SearchLayout::OnLayout() {
view->SetText(value, cursespp::text::AlignCenter); \
this->AddWindow(view);
void SearchLayout::InitializeWindows(musik::glue::audio::PlaybackService& playback) {
void SearchLayout::InitializeWindows(musik::core::audio::PlaybackService& playback) {
this->input.reset(new cursespp::TextInput());
this->input->TextChanged.connect(this, &SearchLayout::OnInputChanged);
this->input->EnterPressed.connect(this, &SearchLayout::OnEnterPressed);

@ -41,7 +41,7 @@
#include <app/window/CategoryListView.h>
#include <app/window/TrackListView.h>
#include <app/window/TransportWindow.h>
#include <glue/audio/PlaybackService.h>
#include <core/audio/PlaybackService.h>
#include <core/library/ILibrary.h>
@ -60,7 +60,7 @@ namespace musik {
sigslot::signal3<SearchLayout*, std::string, DBID> SearchResultSelected;
SearchLayout(
musik::glue::audio::PlaybackService& playback,
musik::core::audio::PlaybackService& playback,
musik::core::LibraryPtr library);
virtual ~SearchLayout();
@ -74,7 +74,7 @@ namespace musik {
virtual void OnLayout();
private:
void InitializeWindows(musik::glue::audio::PlaybackService& playback);
void InitializeWindows(musik::core::audio::PlaybackService& playback);
void Requery();
void OnEnterPressed(cursespp::TextInput* sender);

@ -45,7 +45,6 @@
#include <core/support/PreferenceKeys.h>
#include <core/audio/Outputs.h>
#include <app/query/SearchTrackListQuery.h>
#include <app/util/Hotkeys.h>
#include <app/util/PreferenceKeys.h>
#include <app/overlay/PlaybackOverlays.h>

@ -44,7 +44,7 @@
#include <cursespp/DialogOverlay.h>
#include <app/window/TrackListView.h>
#include <glue/audio/PlaybackService.h>
#include <core/audio/PlaybackService.h>
#include <app/model/DirectoryAdapter.h>
#include <glue/audio/MasterTransport.h>

@ -37,19 +37,18 @@
#include <cursespp/Colors.h>
#include <cursespp/Screen.h>
#include <core/library/LocalLibraryConstants.h>
#include <app/query/SearchTrackListQuery.h>
#include <glue/query/SearchTrackListQuery.h>
#include <app/util/Playback.h>
#include "TrackSearchLayout.h"
using namespace musik::core::library::constants;
using namespace musik::core;
using namespace musik::core::audio;
using namespace musik::core::library;
using namespace musik::box;
using namespace musik::core::library::constants;
using namespace musik::core::runtime;
using namespace musik::box;
using namespace musik::glue;
using namespace cursespp;
#define SEARCH_HEIGHT 3
@ -62,7 +61,7 @@ using namespace cursespp;
this->PostMessage(REQUERY_TRACKLIST, 0, 0, x);
TrackSearchLayout::TrackSearchLayout(
musik::glue::audio::PlaybackService& playback,
musik::core::audio::PlaybackService& playback,
musik::core::LibraryPtr library)
: LayoutBase()
, playback(playback)

@ -38,7 +38,7 @@
#include <cursespp/TextInput.h>
#include <app/window/TrackListView.h>
#include <glue/audio/PlaybackService.h>
#include <core/audio/PlaybackService.h>
#include <core/library/ILibrary.h>
@ -55,7 +55,7 @@ namespace musik {
{
public:
TrackSearchLayout(
musik::glue::audio::PlaybackService& playback,
musik::core::audio::PlaybackService& playback,
musik::core::LibraryPtr library);
virtual ~TrackSearchLayout();
@ -79,7 +79,7 @@ namespace musik {
void OnEnterPressed(cursespp::TextInput* sender);
musik::glue::audio::PlaybackService& playback;
musik::core::audio::PlaybackService& playback;
musik::core::LibraryPtr library;
std::shared_ptr<TrackListView> trackList;
std::shared_ptr<cursespp::TextInput> input;

@ -49,7 +49,7 @@ using namespace musik::core::audio;
using namespace musik::core::sdk;
using namespace musik::box;
GlobalHotkeys::GlobalHotkeys(musik::glue::audio::PlaybackService& playback, LibraryPtr library)
GlobalHotkeys::GlobalHotkeys(musik::core::audio::PlaybackService& playback, LibraryPtr library)
: playback(playback)
, transport(playback.GetTransport()) {
this->library = library;

@ -36,7 +36,7 @@
#include "stdafx.h"
#include <glue/audio/PlaybackService.h>
#include <core/audio/PlaybackService.h>
#include <core/library/ILibrary.h>
namespace musik {
@ -44,7 +44,7 @@ namespace musik {
class GlobalHotkeys {
public:
GlobalHotkeys(
musik::glue::audio::PlaybackService& playback,
musik::core::audio::PlaybackService& playback,
musik::core::LibraryPtr library);
~GlobalHotkeys(); /* non-virtual; do not use as a base class */
@ -52,7 +52,7 @@ namespace musik {
bool Handle(const std::string& kn);
private:
musik::glue::audio::PlaybackService& playback;
musik::core::audio::PlaybackService& playback;
musik::core::audio::ITransport& transport;
musik::core::LibraryPtr library;
};

@ -44,7 +44,7 @@ namespace musik {
namespace playback {
void Play(
std::shared_ptr<musik::box::TrackListView> trackList,
musik::glue::audio::PlaybackService& playback,
musik::core::audio::PlaybackService& playback,
cursespp::IWindowPtr focused)
{
auto tracks = trackList->GetTrackList();

@ -36,7 +36,7 @@
#include "stdafx.h"
#include <glue/audio/PlaybackService.h>
#include <core/audio/PlaybackService.h>
#include <app/window/TrackListView.h>
namespace musik {
@ -44,7 +44,7 @@ namespace musik {
namespace playback {
void Play(
std::shared_ptr<musik::box::TrackListView> trackList,
musik::glue::audio::PlaybackService& playback,
musik::core::audio::PlaybackService& playback,
cursespp::IWindowPtr focused);
}
}

@ -42,7 +42,6 @@
#include <core/runtime/IMessage.h>
#include <core/library/LocalLibraryConstants.h>
#include <app/query/CategoryListViewQuery.h>
#include <app/util/Hotkeys.h>
#include "CategoryListView.h"
@ -52,12 +51,13 @@ using namespace musik::core::audio;
using namespace musik::core::library::constants;
using namespace musik::core::runtime;
using namespace musik::box;
using namespace musik::glue;
using namespace cursespp;
#define WINDOW_MESSAGE_QUERY_COMPLETED 1002
CategoryListView::CategoryListView(
musik::glue::audio::PlaybackService& playback,
musik::core::audio::PlaybackService& playback,
LibraryPtr library,
const std::string& fieldName)
: ListWindow(NULL)
@ -92,7 +92,7 @@ void CategoryListView::RequeryWithField(
this->fieldName = fieldName;
this->selectAfterQuery = selectAfterQuery;
this->activeQuery.reset(new CategoryListViewQuery(this->fieldName, filter));
this->activeQuery.reset(new CategoryListQuery(this->fieldName, filter));
this->library->Enqueue(activeQuery);
}
@ -101,7 +101,7 @@ void CategoryListView::Requery(const std::string& filter, const DBID selectAfter
}
void CategoryListView::Reset() {
this->metadata.reset(new std::vector<std::shared_ptr<CategoryListViewQuery::Result> >()); /* ugh */
this->metadata.reset(new std::vector<std::shared_ptr<CategoryListQuery::Result> >()); /* ugh */
this->OnAdapterChanged();
}

@ -39,9 +39,9 @@
#include <cursespp/ListWindow.h>
#include <cursespp/ScrollAdapterBase.h>
#include <app/query/CategoryListViewQuery.h>
#include <glue/audio/PlaybackService.h>
#include <glue/query/CategoryListQuery.h>
#include <core/audio/PlaybackService.h>
#include <core/library/IQuery.h>
#include <core/library/ILibrary.h>
#include <core/runtime/IMessage.h>
@ -59,7 +59,7 @@ namespace musik {
{
public:
CategoryListView(
musik::glue::audio::PlaybackService& playback,
musik::core::audio::PlaybackService& playback,
musik::core::LibraryPtr library,
const std::string& fieldName);
@ -106,18 +106,18 @@ namespace musik {
void OnTrackChanged(size_t index, musik::core::TrackPtr track);
void ScrollToPlaying();
musik::glue::audio::PlaybackService& playback;
musik::core::audio::PlaybackService& playback;
Adapter *adapter;
std::mutex queryMutex;
std::shared_ptr<CategoryListViewQuery> activeQuery;
std::shared_ptr<musik::glue::CategoryListQuery> activeQuery;
musik::core::LibraryPtr library;
musik::core::TrackPtr playing;
std::string fieldName;
DBID selectAfterQuery;
CategoryListViewQuery::ResultList metadata;
musik::glue::CategoryListQuery::ResultList metadata;
};
}
}

@ -57,7 +57,6 @@ using namespace musik::core::library;
using namespace musik::core::runtime;
using namespace musik::box;
using namespace musik::glue;
using namespace musik::glue::audio;
using namespace cursespp;
using namespace std::chrono;

@ -39,8 +39,8 @@
#include <cursespp/IKeyHandler.h>
#include <cursespp/ListWindow.h>
#include <app/query/TrackListQueryBase.h>
#include <glue/audio/PlaybackService.h>
#include <glue/query/TrackListQueryBase.h>
#include <core/audio/PlaybackService.h>
#include <core/runtime/IMessage.h>
#include <core/library/ILibrary.h>
@ -62,8 +62,10 @@ namespace musik {
typedef std::shared_ptr<std::set<size_t> > Headers;
typedef musik::glue::TrackListQueryBase TrackListQueryBase;
TrackListView(
musik::glue::audio::PlaybackService& playback,
musik::core::audio::PlaybackService& playback,
musik::core::LibraryPtr library,
RowFormatter formatter = RowFormatter());
@ -72,7 +74,7 @@ namespace musik {
virtual void ProcessMessage(musik::core::runtime::IMessage &message);
virtual bool KeyPress(const std::string& key);
std::shared_ptr<musik::glue::TrackList> GetTrackList();
std::shared_ptr<musik::core::TrackList> GetTrackList();
void Clear();
void Requery(std::shared_ptr<TrackListQueryBase> query);
@ -99,10 +101,10 @@ namespace musik {
void ScrollToPlaying();
std::shared_ptr<TrackListQueryBase> query;
std::shared_ptr<musik::glue::TrackList> metadata;
std::shared_ptr<musik::core::TrackList> metadata;
Headers headers;
Adapter* adapter;
musik::glue::audio::PlaybackService& playback;
musik::core::audio::PlaybackService& playback;
musik::core::TrackPtr playing;
musik::core::LibraryPtr library;
size_t lastQueryHash;

@ -276,7 +276,7 @@ static inline bool dec(const std::string& kn) {
return (/*kn == "KEY_DOWN" ||*/ kn == "KEY_LEFT");
}
TransportWindow::TransportWindow(musik::glue::audio::PlaybackService& playback)
TransportWindow::TransportWindow(musik::core::audio::PlaybackService& playback)
: Window(nullptr)
, displayCache(new TransportDisplayCache())
, playback(playback)

@ -38,7 +38,7 @@
#include <cursespp/IKeyHandler.h>
#include <core/library/track/Track.h>
#include <core/runtime/IMessage.h>
#include <glue/audio/PlaybackService.h>
#include <core/audio/PlaybackService.h>
#include <sigslot/sigslot.h>
#include "OutputWindow.h"
@ -61,7 +61,7 @@ namespace musik {
FocusTime = 2
};
TransportWindow(musik::glue::audio::PlaybackService& playback);
TransportWindow(musik::core::audio::PlaybackService& playback);
virtual ~TransportWindow();
virtual void ProcessMessage(musik::core::runtime::IMessage &message);
@ -94,7 +94,7 @@ namespace musik {
bool paused;
musik::core::audio::ITransport& transport;
musik::glue::audio::PlaybackService& playback;
musik::core::audio::PlaybackService& playback;
musik::core::TrackPtr currentTrack;
FocusTarget focus, lastFocus;
std::unique_ptr<TransportDisplayCache> displayCache;

@ -133,10 +133,6 @@
<ClCompile Include="app\model\DirectoryAdapter.cpp" />
<ClCompile Include="app\overlay\PlaybackOverlays.cpp" />
<ClCompile Include="app\overlay\VisualizerOverlay.cpp" />
<ClCompile Include="app\query\CategoryListViewQuery.cpp" />
<ClCompile Include="app\query\NowPlayingTrackListQuery.cpp" />
<ClCompile Include="app\query\CategoryTrackListQuery.cpp" />
<ClCompile Include="app\query\SearchTrackListQuery.cpp" />
<ClCompile Include="app\util\GlobalHotkeys.cpp" />
<ClCompile Include="app\util\Hotkeys.cpp" />
<ClCompile Include="app\util\Playback.cpp" />
@ -186,11 +182,6 @@
<ClInclude Include="app\model\DirectoryAdapter.h" />
<ClInclude Include="app\overlay\PlaybackOverlays.h" />
<ClInclude Include="app\overlay\VisualizerOverlay.h" />
<ClInclude Include="app\query\CategoryListViewQuery.h" />
<ClInclude Include="app\query\NowPlayingTrackListQuery.h" />
<ClInclude Include="app\query\SearchTrackListQuery.h" />
<ClInclude Include="app\query\TrackListQueryBase.h" />
<ClInclude Include="app\query\CategoryTrackListQuery.h" />
<ClInclude Include="app\util\GlobalHotkeys.h" />
<ClInclude Include="app\util\Hotkeys.h" />
<ClInclude Include="app\util\Playback.h" />

@ -33,9 +33,6 @@
<ClCompile Include="app\layout\LibraryLayout.cpp">
<Filter>app\layout</Filter>
</ClCompile>
<ClCompile Include="app\query\CategoryListViewQuery.cpp">
<Filter>app\query</Filter>
</ClCompile>
<ClCompile Include="app\window\OutputWindow.cpp">
<Filter>app\window</Filter>
</ClCompile>
@ -57,12 +54,6 @@
<ClCompile Include="app\window\EntryWithHeader.cpp">
<Filter>app\window</Filter>
</ClCompile>
<ClCompile Include="app\query\CategoryTrackListQuery.cpp">
<Filter>app\query</Filter>
</ClCompile>
<ClCompile Include="app\query\NowPlayingTrackListQuery.cpp">
<Filter>app\query</Filter>
</ClCompile>
<ClCompile Include="app\layout\ConsoleLayout.cpp">
<Filter>app\layout</Filter>
</ClCompile>
@ -93,9 +84,6 @@
<ClCompile Include="app\layout\TrackSearchLayout.cpp">
<Filter>app\layout</Filter>
</ClCompile>
<ClCompile Include="app\query\SearchTrackListQuery.cpp">
<Filter>app\query</Filter>
</ClCompile>
<ClCompile Include="app\model\DirectoryAdapter.cpp">
<Filter>app\model</Filter>
</ClCompile>
@ -201,9 +189,6 @@
<ClInclude Include="app\layout\LibraryLayout.h">
<Filter>app\layout</Filter>
</ClInclude>
<ClInclude Include="app\query\CategoryListViewQuery.h">
<Filter>app\query</Filter>
</ClInclude>
<ClInclude Include="app\window\LogWindow.h">
<Filter>app\window</Filter>
</ClInclude>
@ -228,15 +213,6 @@
<ClInclude Include="app\window\EntryWithHeader.h">
<Filter>app\window</Filter>
</ClInclude>
<ClInclude Include="app\query\TrackListQueryBase.h">
<Filter>app\query</Filter>
</ClInclude>
<ClInclude Include="app\query\CategoryTrackListQuery.h">
<Filter>app\query</Filter>
</ClInclude>
<ClInclude Include="app\query\NowPlayingTrackListQuery.h">
<Filter>app\query</Filter>
</ClInclude>
<ClInclude Include="app\layout\ConsoleLayout.h">
<Filter>app\layout</Filter>
</ClInclude>
@ -264,9 +240,6 @@
<ClInclude Include="app\layout\TrackSearchLayout.h">
<Filter>app\layout</Filter>
</ClInclude>
<ClInclude Include="app\query\SearchTrackListQuery.h">
<Filter>app\query</Filter>
</ClInclude>
<ClInclude Include="app\model\DirectoryAdapter.h">
<Filter>app\model</Filter>
</ClInclude>
@ -341,9 +314,6 @@
<Filter Include="app\util">
<UniqueIdentifier>{629374d5-c682-472d-85a3-1f7fa29c3e04}</UniqueIdentifier>
</Filter>
<Filter Include="app\query">
<UniqueIdentifier>{5c751253-4250-4a81-8b5f-ca6244954d64}</UniqueIdentifier>
</Filter>
<Filter Include="app\model">
<UniqueIdentifier>{b6720351-dd55-4b14-936a-09df56193c15}</UniqueIdentifier>
</Filter>