void CGUIDialogSubtitles::FillServices() { std::string previousService = m_currentService; ClearServices(); VECADDONS addons; ADDON::CAddonMgr::GetInstance().GetAddons(addons, ADDON_SUBTITLE_MODULE); if (addons.empty()) { UpdateStatus(NO_SERVICES); return; } std::string defaultService; const CFileItem &item = g_application.CurrentUnstackedItem(); if (item.GetVideoContentType() == VIDEODB_CONTENT_TVSHOWS || item.GetVideoContentType() == VIDEODB_CONTENT_EPISODES) // Set default service for tv shows defaultService = CSettings::GetInstance().GetString(CSettings::SETTING_SUBTITLES_TV); else // Set default service for filemode and movies defaultService = CSettings::GetInstance().GetString(CSettings::SETTING_SUBTITLES_MOVIE); std::string service = addons.front()->ID(); for (VECADDONS::const_iterator addonIt = addons.begin(); addonIt != addons.end(); ++addonIt) { CFileItemPtr item(CAddonsDirectory::FileItemFromAddon(*addonIt, "plugin://" + (*addonIt)->ID(), false)); m_serviceItems->Add(item); // If we don't have used a previous service use the default service, otherwise use the previous service if ((previousService.empty() && (*addonIt)->ID() == defaultService) || (*addonIt)->ID() == previousService) service = (*addonIt)->ID(); } // Bind our services to the UI CGUIMessage msg(GUI_MSG_LABEL_BIND, GetID(), CONTROL_SERVICELIST, 0, 0, m_serviceItems); OnMessage(msg); SetService(service); }
void CGUIDialogSubtitles::FillServices() { ClearServices(); VECADDONS addons; ADDON::CAddonMgr::Get().GetAddons(ADDON_SUBTITLE_MODULE, addons, true); if (addons.empty()) { UpdateStatus(NO_SERVICES); return; } std::string defaultService; const CFileItem &item = g_application.CurrentUnstackedItem(); if (item.GetVideoContentType() == VIDEODB_CONTENT_TVSHOWS || item.GetVideoContentType() == VIDEODB_CONTENT_EPISODES) // Set default service for tv shows defaultService = CSettings::Get().GetString("subtitles.tv"); else // Set default service for filemode and movies defaultService = CSettings::Get().GetString("subtitles.movie"); std::string service = addons.front()->ID(); for (VECADDONS::const_iterator addonIt = addons.begin(); addonIt != addons.end(); addonIt++) { CFileItemPtr item(CAddonsDirectory::FileItemFromAddon(*addonIt, "plugin://", false)); m_serviceItems->Add(item); if ((*addonIt)->ID() == defaultService) service = (*addonIt)->ID(); } // Bind our services to the UI CGUIMessage msg(GUI_MSG_LABEL_BIND, GetID(), CONTROL_SERVICELIST, 0, 0, m_serviceItems); OnMessage(msg); SetService(service); }