summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--epgsearch.cpp9
-rw-r--r--epgsearch.h19
-rw-r--r--epgsearch/services.h3
-rw-r--r--pages/edit_searchtimer.ecpp15
4 files changed, 44 insertions, 2 deletions
diff --git a/epgsearch.cpp b/epgsearch.cpp
index 4d7d3fe..38bf070 100644
--- a/epgsearch.cpp
+++ b/epgsearch.cpp
@@ -548,4 +548,13 @@ std::string SearchResults::PopQuery(std::string const& md5)
return query;
}
+RecordingDirs::RecordingDirs()
+{
+ Epgsearch_services_v1_0 service;
+ if ( cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 )
+ throw HtmlError( tr("No searchtimers available") );
+
+ m_set = service.handler->DirectoryList();
+}
+
} // namespace vdrlive
diff --git a/epgsearch.h b/epgsearch.h
index cde0679..b2c0b73 100644
--- a/epgsearch.h
+++ b/epgsearch.h
@@ -361,6 +361,25 @@ private:
searchresults m_list;
};
+class RecordingDirs
+{
+public:
+ typedef std::set< std::string > recordingdirs;
+ typedef recordingdirs::size_type size_type;
+ typedef recordingdirs::iterator iterator;
+ typedef recordingdirs::const_iterator const_iterator;
+
+ RecordingDirs();
+
+ iterator begin() { return m_set.begin(); }
+ const_iterator begin() const { return m_set.begin(); }
+ iterator end() { return m_set.end(); }
+ const_iterator end() const { return m_set.end(); }
+
+private:
+ recordingdirs m_set;
+};
+
}
// namespace vdrlive
diff --git a/epgsearch/services.h b/epgsearch/services.h
index 7c845f9..35decd3 100644
--- a/epgsearch/services.h
+++ b/epgsearch/services.h
@@ -4,6 +4,7 @@
#include <string>
#include <list>
#include <memory>
+#include <set>
#include <vdr/osdbase.h>
// Data structure for service "Epgsearch-search-v1.0"
@@ -121,6 +122,8 @@ class cServiceHandler
// returns a list of channel groups maintained by epgsearch
virtual std::list<std::string> BlackList() = 0;
// returns a list of blacklists in the same format as used in epgsearchblacklists.conf
+ virtual std::set<std::string> DirectoryList() = 0;
+ // List of all recording directories used in recordings, timers, search timers or in epgsearchdirs.conf
virtual ~cServiceHandler() {}
};
diff --git a/pages/edit_searchtimer.ecpp b/pages/edit_searchtimer.ecpp
index 0ba9bcc..5910394 100644
--- a/pages/edit_searchtimer.ecpp
+++ b/pages/edit_searchtimer.ecpp
@@ -84,7 +84,7 @@ SearchTimer* searchtimer;
ExtEPGInfos extEPGInfos;
ChannelGroups channelGroups;
Blacklists blacklists;
-
+RecordingDirs recordingdirs;
</%request>
<%include>page_init.eh</%include>
<{
@@ -436,6 +436,10 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html");
}
}
}
+ function changeddirselection(selection)
+ {
+ document.getElementById("directory").value = selection.value;
+ }
//--></script>
<title>VDR Live - <$ searchtimer ? tr("Edit search timer") : tr("New search timer") $></title>
@@ -707,7 +711,14 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html");
<tr>
<td><$ tr("Directory") $>:</td>
- <td><input type="text" name="directory" value="<$ directory $>" size="70" /></td>
+ <td><input type="text" name="directory" id="directory" value="<$ directory $>" size="70" /><br>
+ <select onchange="changeddirselection(this)" name="recordingdirsselection" size="1" id="recordingdirsselection">
+ <option/>
+% for (RecordingDirs::iterator rdir = recordingdirs.begin(); rdir != recordingdirs.end(); ++rdir) {
+ <option value="<$ *rdir $>"><$ *rdir $></option>
+% }
+ </select>
+ </td>
</tr>
<tr>