diff options
author | Christian Wieninger <cwieninger (at) gmx (dot) de> | 2007-05-08 09:47:06 +0000 |
---|---|---|
committer | Christian Wieninger <cwieninger (at) gmx (dot) de> | 2007-05-08 09:47:06 +0000 |
commit | a9ae4f2492549e0803d5945db47c2ee5da45a20e (patch) | |
tree | 67d96eeb71e783d6e0cb0dcc37fd9aaef2ed701e /epgsearch.cpp | |
parent | 4d4204744efbed374f4d837139fab119fffd1558 (diff) | |
download | vdr-plugin-live-a9ae4f2492549e0803d5945db47c2ee5da45a20e.tar.gz vdr-plugin-live-a9ae4f2492549e0803d5945db47c2ee5da45a20e.tar.bz2 |
- additional version check before accessing the service interface
Diffstat (limited to 'epgsearch.cpp')
-rw-r--r-- | epgsearch.cpp | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/epgsearch.cpp b/epgsearch.cpp index 2b7b94e..551604a 100644 --- a/epgsearch.cpp +++ b/epgsearch.cpp @@ -21,6 +21,16 @@ bool operator<( SearchTimer const& left, SearchTimer const& right ) return leftlower < rightlower; } +bool CheckEpgsearchVersion() +{ + cPlugin* epgsearch = cPluginManager::GetPlugin("epgsearch"); + if (!epgsearch) return false; + char minVersion[] = "0.9.21"; + if (string(epgsearch->Version()) < string(minVersion)) + throw HtmlError( tr("Required minimum version of epgsearch: ") + string(minVersion)); + return true; +} + SearchTimer::SearchTimer() { Init(); @@ -286,7 +296,7 @@ SearchTimers::SearchTimers() bool SearchTimers::Reload() { Epgsearch_services_v1_0 service; - if ( cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) throw HtmlError( tr("No searchtimers available") ); ReadLock channelsLock( Channels, 0 ); @@ -299,7 +309,7 @@ bool SearchTimers::Reload() bool SearchTimers::Save(SearchTimer* searchtimer) { Epgsearch_services_v1_0 service; - if ( cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) throw HtmlError( tr("No searchtimers available") ); if (!searchtimer) return false; @@ -339,7 +349,7 @@ bool SearchTimers::Delete(std::string const& id) if (!search) return false; Epgsearch_services_v1_0 service; - if ( cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) throw HtmlError( tr("No searchtimers available") ); if (service.handler->DelSearchTimer(lexical_cast< int >( id ))) @@ -400,7 +410,7 @@ bool ExtEPGInfo::Selected(unsigned int index, std::string const& values) ExtEPGInfos::ExtEPGInfos() { Epgsearch_services_v1_0 service; - if ( cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) throw HtmlError( tr("No searchtimers available") ); list< string > infos = service.handler->ExtEPGInfoList(); @@ -424,7 +434,7 @@ ChannelGroup::ChannelGroup( string const& data ) ChannelGroups::ChannelGroups() { Epgsearch_services_v1_0 service; - if ( cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) throw HtmlError( tr("No searchtimers available") ); list< string > list = service.handler->ChanGrpList(); @@ -449,7 +459,7 @@ Blacklist::Blacklist( string const& data ) Blacklists::Blacklists() { Epgsearch_services_v1_0 service; - if ( cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) throw HtmlError( tr("No searchtimers available") ); list< string > list = service.handler->BlackList(); @@ -486,7 +496,7 @@ std::set<std::string> SearchResults::querySet; void SearchResults::GetByID(int id) { Epgsearch_services_v1_0 service; - if ( cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) throw HtmlError( tr("No searchtimers available") ); list< string > list = service.handler->QuerySearchTimer(id); @@ -497,7 +507,7 @@ void SearchResults::GetByID(int id) void SearchResults::GetByQuery(std::string const& query) { Epgsearch_services_v1_0 service; - if ( cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) throw HtmlError( tr("No searchtimers available") ); list< string > list = service.handler->QuerySearch(query); @@ -533,7 +543,7 @@ std::string SearchResults::PopQuery(std::string const& md5) RecordingDirs::RecordingDirs() { Epgsearch_services_v1_0 service; - if ( cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) + if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) throw HtmlError( tr("No searchtimers available") ); m_set = service.handler->DirectoryList(); |