mirror of
https://github.com/clangen/musikcube.git
synced 2025-01-01 00:19:20 +00:00
Fixed a deadlock in PlaybackService when changing tracks from an IPlaybackRemote.
This commit is contained in:
parent
482433e5da
commit
bc87e4d28c
@ -255,6 +255,11 @@ void PlaybackService::ProcessMessage(IMessage &message) {
|
|||||||
int64 eventType = streamMessage->GetEventType();
|
int64 eventType = streamMessage->GetEventType();
|
||||||
|
|
||||||
if (eventType == StreamPlaying) {
|
if (eventType == StreamPlaying) {
|
||||||
|
TrackPtr track;
|
||||||
|
|
||||||
|
{
|
||||||
|
std::unique_lock<std::recursive_mutex> lock(this->playlistMutex);
|
||||||
|
|
||||||
if (this->nextIndex != NO_POSITION) {
|
if (this->nextIndex != NO_POSITION) {
|
||||||
/* in most cases when we get here it means that the next track is
|
/* in most cases when we get here it means that the next track is
|
||||||
starting, so we want to update our internal index. however, because
|
starting, so we want to update our internal index. however, because
|
||||||
@ -274,13 +279,11 @@ void PlaybackService::ProcessMessage(IMessage &message) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this->index != NO_POSITION) {
|
if (this->index != NO_POSITION) {
|
||||||
TrackPtr track;
|
|
||||||
|
|
||||||
{
|
|
||||||
std::unique_lock<std::recursive_mutex> lock(this->playlistMutex);
|
|
||||||
track = this->playlist.Get(this->index);
|
track = this->playlist.Get(this->index);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (track) {
|
||||||
this->OnTrackChanged(this->index, track);
|
this->OnTrackChanged(this->index, track);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -364,6 +367,8 @@ bool PlaybackService::Previous() {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::unique_lock<std::recursive_mutex> lock(this->playlistMutex);
|
||||||
|
|
||||||
if (transport.Position() > PREVIOUS_GRACE_PERIOD) {
|
if (transport.Position() > PREVIOUS_GRACE_PERIOD) {
|
||||||
this->Play(index);
|
this->Play(index);
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
Reference in New Issue
Block a user