//Other constructor SoundSourceProxy::SoundSourceProxy(TrackPointer pTrack) : m_pTrack(pTrack) , m_pSecurityToken( openSecurityToken(pTrack->getLocation(), pTrack->getSecurityToken())) , m_pSoundSource(initialize(pTrack->getLocation())) { }
Track::Track( const QFileInfo& fileInfo, const SecurityTokenPointer& pSecurityToken, TrackId trackId) : m_fileInfo(fileInfo), m_pSecurityToken(openSecurityToken(m_fileInfo, pSecurityToken)), m_bDeleteOnReferenceExpiration(false), m_qMutex(QMutex::Recursive), m_id(trackId), m_bDirty(false), m_iRating(0), m_fCuePoint(0.0f), m_dateAdded(QDateTime::currentDateTime()), m_bHeaderParsed(false), m_bBpmLocked(false), m_analyzerProgress(-1) { }
// static SecurityTokenPointer Sandbox::openSecurityToken(const QFileInfo& file, bool create) { const QString& canonicalFilePath = file.canonicalFilePath(); if (sDebug) { qDebug() << "openSecurityToken QFileInfo" << canonicalFilePath << create; } if (!enabled()) { return SecurityTokenPointer(); } QMutexLocker locker(&s_mutex); if (s_pSandboxPermissions == NULL) { return SecurityTokenPointer(); } QHash<QString, SecurityTokenWeakPointer>::iterator it = s_activeTokens .find(canonicalFilePath); if (it != s_activeTokens.end()) { SecurityTokenPointer pToken(it.value()); if (pToken) { if (sDebug) { qDebug() << "openSecurityToken QFileInfo" << canonicalFilePath << "using cached token for" << pToken->m_path; } return pToken; } } if (file.isDir()) { return openSecurityToken(QDir(canonicalFilePath), create); } // First, check for a bookmark of the key itself. ConfigKey key = keyForCanonicalPath(canonicalFilePath); if (s_pSandboxPermissions->exists(key)) { return openTokenFromBookmark( canonicalFilePath, s_pSandboxPermissions->getValueString(key)); } // Next, try to open a bookmark for an existing directory but don't create a // bookmark. SecurityTokenPointer pDirToken = openSecurityToken(file.dir(), false); if (!pDirToken.isNull()) { return pDirToken; } if (!create) { return SecurityTokenPointer(); } // Otherwise, try to create a token. bool created = createSecurityToken(file); if (created) { return openTokenFromBookmark( canonicalFilePath, s_pSandboxPermissions->getValueString(key)); } return SecurityTokenPointer(); }
//Constructor SoundSourceProxy::SoundSourceProxy(QString qFilename, SecurityTokenPointer pToken) : m_pSecurityToken(openSecurityToken(qFilename, pToken)) , m_pSoundSource(initialize(qFilename)) { }