diff --git a/HISTORY b/HISTORY index 749b4ed..b00ff4a 100644 --- a/HISTORY +++ b/HISTORY @@ -1,6 +1,7 @@ VDR Plugin 'streamdev' Revision History --------------------------------------- +- Added simple recordings menu in HTTP server - Restructured menuHTTP classes - Added RSS format for HTTP menus - Recordings can now also be selected by struct stat "st_dev:st_ino.rec" diff --git a/server/connectionHTTP.c b/server/connectionHTTP.c index a8a8c8f..ec10824 100644 --- a/server/connectionHTTP.c +++ b/server/connectionHTTP.c @@ -408,6 +408,8 @@ cMenuList* cConnectionHTTP::MenuListFromString(const std::string& Path, const st } else if (Filebase.compare("all") == 0 || (Filebase.empty() && Fileext.empty())) { iterator = new cListAll(); + } else if (Filebase.compare("recordings") == 0) { + iterator = new cRecordingsIterator(); } if (iterator) { diff --git a/server/menuHTTP.c b/server/menuHTTP.c index ca44579..de46f00 100644 --- a/server/menuHTTP.c +++ b/server/menuHTTP.c @@ -1,6 +1,37 @@ +#include +#include +#include + #include #include "server/menuHTTP.h" +//**************************** cRecordingIterator ************** +cRecordingsIterator::cRecordingsIterator(): RecordingsLock(&Recordings) +{ + first = Recordings.First(); + current = NULL; +} + +bool cRecordingsIterator::Next() +{ + if (first) + { + current = first; + first = NULL; + } + else + current = Recordings.Next(current); + return current; +} + +const cString cRecordingsIterator::ItemRessource() const +{ + struct stat st; + if (stat(current->FileName(), &st) == 0) + return cString::sprintf("%lu:%lu.rec", st.st_dev, st.st_ino); + return ""; +} + //**************************** cChannelIterator ************** cChannelIterator::cChannelIterator(const cChannel *First) { @@ -144,7 +175,8 @@ const char* cHtmlMenuList::menu = "[Home (no script)] " "[Tree View] " "[Groups (Playlist | RSS)] " - "[Channels (Playlist | RSS)] "; + "[Channels (Playlist | RSS)] " + "[Recordings (Playlist | RSS)] "; const char* cHtmlMenuList::css = "