std::string CFavouritesDirectory::GetExecutePath(const CFileItem &item, const std::string &contextWindow) { std::string execute; if (item.m_bIsFolder && (g_advancedSettings.m_playlistAsFolders || !(item.IsSmartPlayList() || item.IsPlayList()))) { if (!contextWindow.empty()) execute = StringUtils::Format("ActivateWindow(%s,%s,return)", contextWindow.c_str(), StringUtils::Paramify(item.GetPath()).c_str()); } //! @todo STRING_CLEANUP else if (item.IsScript() && item.GetPath().size() > 9) // plugin://<foo> execute = StringUtils::Format("RunScript(%s)", StringUtils::Paramify(item.GetPath().substr(9)).c_str()); else if (item.IsAndroidApp() && item.GetPath().size() > 26) // androidapp://sources/apps/<foo> execute = StringUtils::Format("StartAndroidActivity(%s)", StringUtils::Paramify(item.GetPath().substr(26)).c_str()); else // assume a media file { if (item.IsVideoDb() && item.HasVideoInfoTag()) execute = StringUtils::Format("PlayMedia(%s)", StringUtils::Paramify(item.GetVideoInfoTag()->m_strFileNameAndPath).c_str()); else if (item.IsMusicDb() && item.HasMusicInfoTag()) execute = StringUtils::Format("PlayMedia(%s)", StringUtils::Paramify(item.GetMusicInfoTag()->GetURL()).c_str()); else if (item.IsPicture()) execute = StringUtils::Format("ShowPicture(%s)", StringUtils::Paramify(item.GetPath()).c_str()); else execute = StringUtils::Format("PlayMedia(%s)", StringUtils::Paramify(item.GetPath()).c_str()); } return execute; }
void WatchDog::TestPath(const CStdString &strPath) { #ifdef WATCHDOG_DONT_TEST_PATH return; #else CFileItem item; item.m_strPath = strPath; bool bAvailable = false; bool bHasInfo = false; if (item.IsInternetStream() || item.IsPlugin() || item.IsScript() || item.IsApp()) { bAvailable = IsConnectedToInternet(); bHasInfo = true; } else if (!CUtil::IsSmb(strPath) || !g_application.IsPlaying()) { DIRECTORY::IDirectory* pDir = DIRECTORY::CFactoryDirectory::Create(strPath); if (pDir) { bAvailable = pDir->Exists(strPath); bHasInfo = true; delete pDir; } } // if (item.IsSmb() || item.IsHD()) // { // CLog::Log(LOGDEBUG,"WatchDog::TestPath - [share=%s][available=%d][hasInfo=%d] (testpath)",strPath.c_str(), bAvailable, bHasInfo); // } if (bHasInfo) { CSingleLock lock(m_lock); // If there was a change in a status, notify listeners if ( (bAvailable && m_mapPaths[strPath] != WD_AVAILABLE) || (!bAvailable && m_mapPaths[strPath] != WD_UNAVAILABLE) ) NotifyListeners(strPath, bAvailable); m_mapPaths[strPath] = bAvailable?WD_AVAILABLE:WD_UNAVAILABLE; //CLog::Log(LOGDEBUG,"WatchDog::TestPath - For [share=%s] set [available=%d] (testpath)",strPath.c_str(), m_mapPaths[strPath]); } #endif }
CStdString CFavouritesDirectory::GetExecutePath(const CFileItem &item, const std::string &contextWindow) { CStdString execute; if (item.m_bIsFolder && (g_advancedSettings.m_playlistAsFolders || !(item.IsSmartPlayList() || item.IsPlayList()))) { if (!contextWindow.empty()) execute = StringUtils::Format("ActivateWindow(%s,%s,return)", contextWindow.c_str(), StringUtils::Paramify(item.GetPath()).c_str()); } else if (item.IsScript()) execute = StringUtils::Format("RunScript(%s)", StringUtils::Paramify(item.GetPath().substr(9)).c_str()); else if (item.IsAndroidApp()) execute = StringUtils::Format("StartAndroidActivity(%s)", StringUtils::Paramify(item.GetPath().substr(26)).c_str()); else // assume a media file { if (item.IsVideoDb() && item.HasVideoInfoTag()) execute = StringUtils::Format("PlayMedia(%s)", StringUtils::Paramify(item.GetVideoInfoTag()->m_strFileNameAndPath).c_str()); else execute = StringUtils::Format("PlayMedia(%s)", StringUtils::Paramify(item.GetPath()).c_str()); } return execute; }