summaryrefslogtreecommitdiffstats
path: root/src/basetrackplayer.cpp
diff options
context:
space:
mode:
authorRJ Ryan <rryan@mixxx.org>2014-02-13 23:49:27 -0500
committerRJ Ryan <rryan@mixxx.org>2014-02-13 23:49:27 -0500
commit2c2d5c06c254349a1b73e23bae0edf2bcd4d4e2d (patch)
tree73fedc2f23dce7dd4d6994fad154bf3020f972f3 /src/basetrackplayer.cpp
parent280ba5999f5d22dc0698076f43ce4833eb67e57f (diff)
parentd1a2b7bba9a431ef4f4887d04cdd2a7adb1e607a (diff)
Merge branch 'master' into features_effects
Conflicts: src/basetrackplayer.cpp src/engine/enginemaster.cpp src/mixxx.cpp src/mixxx.h
Diffstat (limited to 'src/basetrackplayer.cpp')
-rw-r--r--src/basetrackplayer.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/basetrackplayer.cpp b/src/basetrackplayer.cpp
index 652a8b09e1..20feb4225a 100644
--- a/src/basetrackplayer.cpp
+++ b/src/basetrackplayer.cpp
@@ -14,6 +14,7 @@
#include "track/beatgrid.h"
#include "waveform/renderers/waveformwidgetrenderer.h"
#include "analyserqueue.h"
+#include "util/sandbox.h"
#include "effects/effectsmanager.h"
BaseTrackPlayer::BaseTrackPlayer(QObject* pParent,
@@ -102,6 +103,12 @@ BaseTrackPlayer::~BaseTrackPlayer()
}
void BaseTrackPlayer::slotLoadTrack(TrackPointer track, bool bPlay) {
+ // Before loading the track, ensure we have access. This uses lazy
+ // evaluation to make sure track isn't NULL before we dereference it.
+ if (!track.isNull() && !Sandbox::askForAccess(track->getCanonicalLocation())) {
+ // We don't have access.
+ return;
+ }
//Disconnect the old track's signals.
if (m_pLoadedTrack) {
@@ -200,8 +207,9 @@ void BaseTrackPlayer::slotUnloadTrack(TrackPointer) {
void BaseTrackPlayer::slotFinishLoading(TrackPointer pTrackInfoObject)
{
// Read the tags if required
- if(!m_pLoadedTrack->getHeaderParsed())
- SoundSourceProxy::ParseHeader(m_pLoadedTrack.data());
+ if (!m_pLoadedTrack->getHeaderParsed()) {
+ m_pLoadedTrack->parse();
+ }
// m_pLoadedTrack->setPlayedAndUpdatePlaycount(true); // Actually the song is loaded but not played