diff options
author | RJ Ryan <rryan@mixxx.org> | 2014-02-13 23:49:27 -0500 |
---|---|---|
committer | RJ Ryan <rryan@mixxx.org> | 2014-02-13 23:49:27 -0500 |
commit | 2c2d5c06c254349a1b73e23bae0edf2bcd4d4e2d (patch) | |
tree | 73fedc2f23dce7dd4d6994fad154bf3020f972f3 /src/basetrackplayer.cpp | |
parent | 280ba5999f5d22dc0698076f43ce4833eb67e57f (diff) | |
parent | d1a2b7bba9a431ef4f4887d04cdd2a7adb1e607a (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.cpp | 12 |
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 |