diff options
-rw-r--r-- | epgsearch.cpp | 72 | ||||
-rw-r--r-- | epgsearch.h | 7 | ||||
-rw-r--r-- | epgsearch/services.h | 4 | ||||
-rw-r--r-- | i18n.cpp | 22 |
4 files changed, 79 insertions, 26 deletions
diff --git a/epgsearch.cpp b/epgsearch.cpp index 4ea3c60..3b1712f 100644 --- a/epgsearch.cpp +++ b/epgsearch.cpp @@ -12,6 +12,8 @@ namespace vdrlive { using namespace std; +char ServiceInterface[] = "Epgsearch-services-v1.0-beta1"; + bool operator<( SearchTimer const& left, SearchTimer const& right ) { string leftlower = left.m_search; @@ -54,8 +56,8 @@ void SearchTimer::Init() m_useDayOfWeek = false; m_dayOfWeek = 0; m_useEpisode = false; - m_priority = 99; - m_lifetime = 50; + m_priority = lexical_cast< int >(EPGSearchSetupValues::ReadValue("DefPriority")); + m_lifetime = lexical_cast< int >(EPGSearchSetupValues::ReadValue("DefLifetime")); m_fuzzytolerance = 1; m_useInFavorites = false; m_useAsSearchtimer = false; @@ -66,8 +68,8 @@ void SearchTimer::Init() m_switchMinBefore = 1; m_useExtEPGInfo = false; m_useVPS = false; - m_marginstart = 2; - m_marginstop = 10; + m_marginstart = lexical_cast< int >(EPGSearchSetupValues::ReadValue("DefMarginStart")); + m_marginstop = lexical_cast< int >(EPGSearchSetupValues::ReadValue("DefMarginStop")); } SearchTimer::SearchTimer( string const& data ) @@ -114,11 +116,11 @@ SearchTimer::SearchTimer( string const& data ) case 33: m_catvaluesAvoidRepeat = lexical_cast< unsigned long >( *part ); break; case 34: m_repeatsWithinDays = lexical_cast< int >( *part ); break; case 35: m_delAfterDays = lexical_cast< int >( *part ); break; - case 36: m_recordingsKeep = lexical_cast< int >( *part ); break; - case 37: m_switchMinBefore = lexical_cast< int >( *part ); break; - case 38: m_pauseOnNrRecordings = lexical_cast< int >( *part ); break; - case 39: m_blacklistmode = lexical_cast< int >( *part ); break; - case 40: ParseBlacklist( *part ); break; + case 36: m_recordingsKeep = lexical_cast< int >( *part ); break; + case 37: m_switchMinBefore = lexical_cast< int >( *part ); break; + case 38: m_pauseOnNrRecordings = lexical_cast< int >( *part ); break; + case 39: m_blacklistmode = lexical_cast< int >( *part ); break; + case 40: ParseBlacklist( *part ); break; case 41: m_fuzzytolerance = lexical_cast< int >( *part ); break; case 42: m_useInFavorites = lexical_cast< bool >( *part ); break; case 43: m_menuTemplate = lexical_cast< int >( *part ); break; @@ -296,8 +298,8 @@ SearchTimers::SearchTimers() bool SearchTimers::Reload() { Epgsearch_services_v1_0 service; - if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) - throw HtmlError( tr("No searchtimers available") ); + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService(ServiceInterface, &service) == 0 ) + throw HtmlError( tr("EPGSearch version outdated! Please update.") ); ReadLock channelsLock( Channels, 0 ); list< string > timers = service.handler->SearchTimerList(); @@ -310,7 +312,7 @@ bool SearchTimers::Save(SearchTimer* searchtimer) { Epgsearch_services_v1_0 service; if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) - throw HtmlError( tr("No searchtimers available") ); + throw HtmlError( tr("EPGSearch version outdated! Please update.") ); if (!searchtimer) return false; ReadLock channelsLock( Channels, 0 ); @@ -349,8 +351,8 @@ bool SearchTimers::Delete(std::string const& id) if (!search) return false; Epgsearch_services_v1_0 service; - if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) - throw HtmlError( tr("No searchtimers available") ); + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService(ServiceInterface, &service) == 0 ) + throw HtmlError( tr("EPGSearch version outdated! Please update.") ); if (service.handler->DelSearchTimer(lexical_cast< int >( id ))) return Reload(); @@ -410,8 +412,8 @@ bool ExtEPGInfo::Selected(unsigned int index, std::string const& values) ExtEPGInfos::ExtEPGInfos() { Epgsearch_services_v1_0 service; - if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) - throw HtmlError( tr("No searchtimers available") ); + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService(ServiceInterface, &service) == 0 ) + throw HtmlError( tr("EPGSearch version outdated! Please update.") ); list< string > infos = service.handler->ExtEPGInfoList(); m_infos.assign( infos.begin(), infos.end() ); @@ -434,8 +436,8 @@ ChannelGroup::ChannelGroup( string const& data ) ChannelGroups::ChannelGroups() { Epgsearch_services_v1_0 service; - if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) - throw HtmlError( tr("No searchtimers available") ); + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService(ServiceInterface, &service) == 0 ) + throw HtmlError( tr("EPGSearch version outdated! Please update.") ); list< string > list = service.handler->ChanGrpList(); m_list.assign( list.begin(), list.end() ); @@ -459,8 +461,8 @@ Blacklist::Blacklist( string const& data ) Blacklists::Blacklists() { Epgsearch_services_v1_0 service; - if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) - throw HtmlError( tr("No searchtimers available") ); + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService(ServiceInterface, &service) == 0 ) + throw HtmlError( tr("EPGSearch version outdated! Please update.") ); list< string > list = service.handler->BlackList(); m_list.assign( list.begin(), list.end() ); @@ -497,8 +499,8 @@ std::set<std::string> SearchResults::querySet; void SearchResults::GetByID(int id) { Epgsearch_services_v1_0 service; - if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) - throw HtmlError( tr("No searchtimers available") ); + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService(ServiceInterface, &service) == 0 ) + throw HtmlError( tr("EPGSearch version outdated! Please update.") ); list< string > list = service.handler->QuerySearchTimer(id); m_list.assign( list.begin(), list.end() ); @@ -508,8 +510,8 @@ void SearchResults::GetByID(int id) void SearchResults::GetByQuery(std::string const& query) { Epgsearch_services_v1_0 service; - if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) - throw HtmlError( tr("No searchtimers available") ); + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService(ServiceInterface, &service) == 0 ) + throw HtmlError( tr("EPGSearch version outdated! Please update.") ); list< string > list = service.handler->QuerySearch(query); m_list.assign( list.begin(), list.end() ); @@ -544,10 +546,28 @@ std::string SearchResults::PopQuery(std::string const& md5) RecordingDirs::RecordingDirs() { Epgsearch_services_v1_0 service; - if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) - throw HtmlError( tr("No searchtimers available") ); + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService(ServiceInterface, &service) == 0 ) + throw HtmlError( tr("EPGSearch version outdated! Please update.") ); m_set = service.handler->DirectoryList(); } +std::string EPGSearchSetupValues::ReadValue(const std::string& entry) +{ + Epgsearch_services_v1_0 service; + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService(ServiceInterface, &service) == 0 ) + throw HtmlError( tr("EPGSearch version outdated! Please update.") ); + + return service.handler->ReadSetupValue(entry); +} + +bool EPGSearchSetupValues::WriteValue(const std::string& entry, const std::string& value) +{ + Epgsearch_services_v1_0 service; + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService(ServiceInterface, &service) == 0 ) + throw HtmlError( tr("EPGSearch version outdated! Please update.") ); + + return service.handler->WriteSetupValue(entry, value); +} + } // namespace vdrlive diff --git a/epgsearch.h b/epgsearch.h index 5a67a54..be8bf0c 100644 --- a/epgsearch.h +++ b/epgsearch.h @@ -381,6 +381,13 @@ private: recordingdirs m_set; }; +class EPGSearchSetupValues +{ +public: + static std::string ReadValue(const std::string& entry); + static bool WriteValue(const std::string& entry, const std::string& value); +}; + } // namespace vdrlive diff --git a/epgsearch/services.h b/epgsearch/services.h index 35decd3..c6a973e 100644 --- a/epgsearch/services.h +++ b/epgsearch/services.h @@ -125,6 +125,10 @@ class cServiceHandler virtual std::set<std::string> DirectoryList() = 0; // List of all recording directories used in recordings, timers, search timers or in epgsearchdirs.conf virtual ~cServiceHandler() {} + // Read a setup value + virtual std::string ReadSetupValue(const std::string& entry) = 0; + // Write a setup value + virtual bool WriteSetupValue(const std::string& entry, const std::string& value) = 0; }; struct Epgsearch_services_v1_0 @@ -3374,6 +3374,28 @@ const tI18nPhrase Phrases[] = { "", // Dansk "", // Czech }, + { "EPGSearch version outdated! Please update.", // English + "EPGSearch-Version zu alt, bitte updaten!", // Deutsch + "", // Slovenski + "", // Italiano + "", // Nederlands + "", // Português + "", // Français + "", // Norsk + "", // Finnish + "", // Polski + "", // Español + "", // Greek + "", // Svenska + "", // Românã + "", // Magyar + "", // Català + "", // Russian + "", // Hrvatski + "", // Eesti + "", // Dansk + "", // Czech + }, /* { "", // English "", // Deutsch |