Show old VDR PES recordings in HTTP menu only if PES mode is selected

This commit is contained in:
Frank Schmirler 2014-09-08 22:35:18 +02:00
parent e83c9d92aa
commit 58f0348578
3 changed files with 21 additions and 5 deletions

View File

@ -468,7 +468,7 @@ cMenuList* cConnectionHTTP::MenuListFromString(const std::string& Path, const st
(Filebase.empty() && Fileext.empty())) {
iterator = new cListAll();
} else if (Filebase.compare("recordings") == 0) {
iterator = new cRecordingsIterator();
iterator = new cRecordingsIterator(m_StreamType);
}
if (iterator) {

View File

@ -6,12 +6,25 @@
#include "server/menuHTTP.h"
//**************************** cRecordingIterator **************
cRecordingsIterator::cRecordingsIterator(): RecordingsLock(&Recordings)
cRecordingsIterator::cRecordingsIterator(eStreamType StreamType): RecordingsLock(&Recordings)
{
first = Recordings.First();
streamType = StreamType;
first = NextSuitable(Recordings.First());
current = NULL;
}
const cRecording* cRecordingsIterator::NextSuitable(const cRecording *Recording)
{
while (Recording)
{
bool isPes = Recording->IsPesRecording();
if (!isPes || (isPes && streamType == stPES))
break;
Recording = Recordings.Next(Recording);
}
return Recording;
}
bool cRecordingsIterator::Next()
{
if (first)
@ -20,7 +33,7 @@ bool cRecordingsIterator::Next()
first = NULL;
}
else
current = Recordings.Next(current);
current = NextSuitable(Recordings.Next(current));
return current;
}

View File

@ -24,9 +24,12 @@ class cItemIterator
class cRecordingsIterator: public cItemIterator
{
private:
eStreamType streamType;
const cRecording *first;
const cRecording *current;
cThreadLock RecordingsLock;
protected:
virtual const cRecording* NextSuitable(const cRecording *Recording);
public:
virtual bool Next();
virtual bool IsGroup() const { return false; }
@ -35,7 +38,7 @@ class cRecordingsIterator: public cItemIterator
virtual const cString ItemRessource() const;
virtual const char* Alang(int i) const { return NULL; }
virtual const char* Dlang(int i) const { return NULL; }
cRecordingsIterator();
cRecordingsIterator(eStreamType StreamType);
virtual ~cRecordingsIterator() {};
};