diff options
-rw-r--r-- | epgsearch.cpp | 9 | ||||
-rw-r--r-- | epgsearch.h | 19 | ||||
-rw-r--r-- | epgsearch/services.h | 3 | ||||
-rw-r--r-- | pages/edit_searchtimer.ecpp | 15 |
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> |