summaryrefslogtreecommitdiff
path: root/epgsearch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'epgsearch.cpp')
-rw-r--r--epgsearch.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/epgsearch.cpp b/epgsearch.cpp
index d22c636..5a91c28 100644
--- a/epgsearch.cpp
+++ b/epgsearch.cpp
@@ -641,4 +641,63 @@ bool EPGSearchSetupValues::WriteValue(const std::string& entry, const std::strin
return service.handler->WriteSetupValue(entry, value);
}
+bool operator<( TimerConflict const& left, TimerConflict const& right )
+{
+ return left.conflictTime < right.conflictTime;
+}
+
+TimerConflict::TimerConflict()
+{
+ Init();
+}
+
+void TimerConflict::Init()
+{
+ conflictTime = 0;
+}
+
+TimerConflict::TimerConflict( string const& data )
+{
+ Init();
+ vector< string > parts = StringSplit( data, ':' );
+ try {
+ vector< string >::const_iterator part = parts.begin();
+ if (parts.size() > 0) {
+ conflictTime = lexical_cast< time_t >( *part++ );
+ for ( int i = 1; part != parts.end(); ++i, ++part ) {
+ vector< string > timerparts = StringSplit( *part, '|' );
+ vector< string >::const_iterator timerpart = timerparts.begin();
+ TimerInConflict timer;
+ for ( int j = 0; timerpart != timerparts.end(); ++j, ++timerpart )
+ switch(j) {
+ case 0: timer.timerIndex = lexical_cast< int >( *timerpart ); break;
+ case 1: timer.percentage = lexical_cast< int >( *timerpart ); break;
+ case 2:
+ {
+ vector< string > conctimerparts = StringSplit( *timerpart, '#' );
+ vector< string >::const_iterator conctimerpart = conctimerparts.begin();
+ for ( int k = 0; conctimerpart != conctimerparts.end(); ++k, ++conctimerpart )
+ timer.concurrentTimerIndices.push_back(lexical_cast< int >( *conctimerpart ));
+ break;
+ }
+ }
+ conflictingTimers.push_back(timer);
+ }
+ }
+ }
+ catch ( bad_lexical_cast const& ex ) {
+ }
+}
+
+TimerConflicts::TimerConflicts()
+{
+ Epgsearch_services_v1_0 service;
+ if ( !CheckEpgsearchVersion() || cPluginManager::CallFirstService(ServiceInterface, &service) == 0 )
+ throw HtmlError( tr("EPGSearch version outdated! Please update.") );
+
+ list< string > conflicts = service.handler->TimerConflictList();
+ m_conflicts.assign( conflicts.begin(), conflicts.end() );
+ m_conflicts.sort();
+}
+
} // namespace vdrlive