Centralized the play/stop events from playqueue

This commit is contained in:
emeric
2018-09-13 13:21:20 +02:00
parent 5e3cfffa92
commit 7264cdc364
14 changed files with 85 additions and 85 deletions
+25 -40
View File
@@ -145,7 +145,7 @@ LmsApplication::finalize()
getApplicationGroup().postOthers([info]
{
LmsApp->getGroupEvents().appClosed(info);
LmsApp->getEvents().appClosed(info);
});
getApplicationGroup().leave();
@@ -304,7 +304,7 @@ LmsApplication::handleAuthEvent()
getApplicationGroup().postOthers([info]
{
LmsApp->getGroupEvents().appOpen(info);
LmsApp->getEvents().appOpen(info);
});
createHome();
@@ -407,7 +407,7 @@ LmsApplication::createHome()
Explore* explore = mainStack->addNew<Explore>();
PlayQueue* playqueue = mainStack->addNew<PlayQueue>();
PlayHistory* playhistory = mainStack->addNew<PlayHistory>();
mainStack->addNew<PlayHistory>();
mainStack->addNew<SettingsView>();
// Admin stuff
@@ -446,54 +446,44 @@ LmsApplication::createHome()
playqueue->playNext();
});
// Events from the PlayQueue
playqueue->loadTrack.connect([=](Database::IdType trackId, bool play)
playqueue->loadTrack.connect([=] (Database::IdType trackId, bool play)
{
playhistory->addTrack(trackId);
_events.trackLoaded(trackId, play);
});
playqueue->loadTrack.connect([=](Database::IdType trackId, bool play)
playqueue->trackUnload.connect([=]
{
explore->handleTrackPlayed(trackId);
_events.trackUnloaded();
});
playqueue->loadTrack.connect(player, &MediaPlayer::loadTrack);
playqueue->playbackStop.connect(player, &MediaPlayer::stop);
// Events from MediaScanner
std::string sessionId = LmsApp->sessionId();
_scanner.scanComplete().connect([=] (Scanner::MediaScanner::Stats stats)
{
// Runs from media scanner context
Wt::WServer::instance()->post(sessionId, [=]
{
bool changes = false;
if (_isAdmin)
{
notifyMsg(MsgType::Info, Wt::WString::tr("Lms.Admin.Database.scan-complete")
.arg(static_cast<unsigned>(stats.nbFiles()))
.arg(static_cast<unsigned>(stats.additions))
.arg(static_cast<unsigned>(stats.updates))
.arg(static_cast<unsigned>(stats.deletions))
.arg(static_cast<unsigned>(stats.nbDuplicates()))
.arg(static_cast<unsigned>(stats.nbErrors())));
changes = true;
}
if (stats.nbChanges() > 0)
{
explore->handleDbChanged();
changes = true;
}
if (changes)
triggerUpdate();
_events.dbScanned.emit(stats);
triggerUpdate();
});
});
_events.dbScanned.connect([=] (Scanner::MediaScanner::Stats stats)
{
if (_isAdmin)
{
notifyMsg(MsgType::Info, Wt::WString::tr("Lms.Admin.Database.scan-complete")
.arg(static_cast<unsigned>(stats.nbFiles()))
.arg(static_cast<unsigned>(stats.additions))
.arg(static_cast<unsigned>(stats.updates))
.arg(static_cast<unsigned>(stats.deletions))
.arg(static_cast<unsigned>(stats.nbDuplicates()))
.arg(static_cast<unsigned>(stats.nbErrors())));
}
});
// Events from Application group
_groupEvents.appOpen.connect([=] (LmsApplicationInfo info)
_events.appOpen.connect([=] (LmsApplicationInfo info)
{
// Only one active session by user
if (!LmsApp->getUser()->isDemo())
@@ -503,11 +493,6 @@ LmsApplication::createHome()
}
});
_groupEvents.appClosed.connect([=] (LmsApplicationInfo info)
{
;
});
internalPathChanged().connect(std::bind([=]
{
handlePathChange(mainStack, _isAdmin);