[vdr-plugin-extrecmenu] 04/09: New upstream version 1.2.4+git20171227
Tobias Grimm
tiber-guest at moszumanska.debian.org
Wed Dec 27 14:55:28 UTC 2017
This is an automated email from the git hooks/post-receive script.
tiber-guest pushed a commit to branch master
in repository vdr-plugin-extrecmenu.
commit cf48928dbcad9cdbcbb5726529e758923fafe080
Author: Tobias Grimm <git at e-tobi.net>
Date: Wed Dec 27 15:47:09 2017 +0100
New upstream version 1.2.4+git20171227
---
HISTORY | 3 +++
extrecmenu.c | 2 +-
mymenueditrecording.c | 32 ++++++++++++++++++++++
mymenurecordings.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++---
tools.c | 41 +++++++++++++++++++++++++++-
tools.h | 4 +++
6 files changed, 150 insertions(+), 6 deletions(-)
diff --git a/HISTORY b/HISTORY
index 72c1dd4..6c830f1 100644
--- a/HISTORY
+++ b/HISTORY
@@ -1,6 +1,9 @@
VDR Plugin 'extrecmenu' Revision History
----------------------------------------
+2015-xx-xx: Version 1.2.5
+- [amair] Compile under VDR 2.3.1.
+
2014-08-20: Version 1.2.4
- [amair] Reduced delay when opening the recordings menu if "menu category" feature is used.
diff --git a/extrecmenu.c b/extrecmenu.c
index f72f550..272b001 100644
--- a/extrecmenu.c
+++ b/extrecmenu.c
@@ -20,7 +20,7 @@
using namespace std;
-static const char *VERSION = "1.2.4";
+static const char *VERSION = "1.2.5-git";
static const char *DESCRIPTION = tr("Extended recordings menu");
static const char *MAINMENUENTRY = "ExtRecMenu";
diff --git a/mymenueditrecording.c b/mymenueditrecording.c
index d166d0f..78b957d 100644
--- a/mymenueditrecording.c
+++ b/mymenueditrecording.c
@@ -177,7 +177,11 @@ class myMenuMoveRecordingItem:public cOsdItem
char *title;
public:
myMenuMoveRecordingItem(const char *Title,int Level);
+#if VDRVERSNUM >= 20301
+ myMenuMoveRecordingItem(const cRecording *Recording,int Level);
+#else
myMenuMoveRecordingItem(cRecording *Recording,int Level);
+#endif
int Level(){return level;}
void SetLevel(int _Level){level=_Level;}
};
@@ -189,7 +193,11 @@ myMenuMoveRecordingItem::myMenuMoveRecordingItem(const char *Title,int _Level)
SetText(title);
}
+#if VDRVERSNUM >= 20301
+myMenuMoveRecordingItem::myMenuMoveRecordingItem(const cRecording *Recording,int _Level)
+#else
myMenuMoveRecordingItem::myMenuMoveRecordingItem(cRecording *Recording,int _Level)
+#endif
{
level=0;
@@ -247,12 +255,21 @@ void myMenuMoveRecording::Set()
if(level==0)
Add(new myMenuMoveRecordingItem(tr("[base dir]"),0));
+#if VDRVERSNUM >= 20301
+ LOCK_RECORDINGS_WRITE
+ Recordings->Sort();
+#else
cThreadLock RecordingsLock(&Recordings);
Recordings.Sort();
+#endif
char *lastitemtext=NULL;
myMenuMoveRecordingItem *lastitem=NULL;
+#if VDRVERSNUM >= 20301
+ for(const cRecording *_recording=Recordings->First();_recording;_recording=Recordings->Next(_recording))
+#else
for(cRecording *_recording=Recordings.First();_recording;_recording=Recordings.Next(_recording))
+#endif
{
if(!base||(strstr(_recording->Name(),base)==_recording->Name()&&_recording->Name()[strlen(base)]=='~'))
{
@@ -427,8 +444,13 @@ eOSState myMenuMoveRecording::MoveRec()
Skins.Message(mtError,tr("Moving into own sub-directory not allowed!"));
else
{
+#if VDRVERSNUM >= 20301
+ LOCK_RECORDINGS_READ
+ for(const cRecording *rec=Recordings->First();rec;rec=Recordings->Next(rec))
+#else
cThreadLock RecordingsLock(&Recordings);
for(cRecording *rec=Recordings.First();rec;rec=Recordings.Next(rec))
+#endif
{
if(!strncmp(oldname,rec->FileName(),strlen(oldname)))
recmb+=DirSizeMB(rec->FileName());
@@ -436,7 +458,11 @@ eOSState myMenuMoveRecording::MoveRec()
if(freemb-recmb > 0 || Interface->Confirm(tr("Target filesystem filled - try anyway?")))
{
+#if VDRVERSNUM >= 20301
+ for(const cRecording *rec=Recordings->First();rec;rec=Recordings->Next(rec))
+#else
for(cRecording *rec=Recordings.First();rec;rec=Recordings.Next(rec))
+#endif
{
if(!strncmp(oldname,rec->FileName(),strlen(oldname)))
{
@@ -572,8 +598,14 @@ eOSState myMenuRecordingDetails::ProcessKey(eKeys Key)
if(ModifyInfo(recording,*buffer))
{
cString fileName = recording->FileName();
+#if VDRVERSNUM >= 20301
+ LOCK_RECORDINGS_WRITE
+ Recordings->Del(recording);
+ Recordings->AddByName(*fileName);
+#else
Recordings.Del(recording);
Recordings.AddByName(*fileName);
+#endif
state=osBack;
}
else
diff --git a/mymenurecordings.c b/mymenurecordings.c
index 165baf9..6166983 100644
--- a/mymenurecordings.c
+++ b/mymenurecordings.c
@@ -96,9 +96,14 @@ void myMenuRecordingInfo::Display(void)
else
text << tr("Name") << ": " << recname << "\n";
- cChannel *chan=Channels.GetByChannelID(((cRecordingInfo*)recording->Info())->ChannelID());
- if(chan)
- text << tr("Channel") << ": " << *ChannelString(chan,0) << "\n";
+#if VDRVERSNUM >= 20301
+ LOCK_CHANNELS_READ
+ const cChannel *channel=Channels->GetByChannelID(((cRecordingInfo*)recording->Info())->ChannelID());
+#else
+ cChannel *channel=Channels.GetByChannelID(((cRecordingInfo*)recording->Info())->ChannelID());
+#endif
+ if(channel)
+ text << tr("Channel") << ": " << *ChannelString(channel,0) << "\n";
int recmb=DirSizeMB(recording->FileName());
if(recmb<0)
@@ -125,7 +130,7 @@ void myMenuRecordingInfo::Display(void)
eOSState myMenuRecordingInfo::ProcessKey(eKeys Key)
{
- switch(Key)
+ switch((int)Key)
{
case kUp|k_Repeat:
case kUp:
@@ -562,7 +567,11 @@ myMenuRecordings::myMenuRecordings(const char *Base,int Level):cOsdMenu("")
helpkeys=-1;
base=Base?strdup(Base):NULL;
+#if VDRVERSNUM >= 20301
+ //TODO???
+#else
Recordings.StateChanged(recordingsstate);
+#endif
//Display();
@@ -649,7 +658,12 @@ int myMenuRecordings::FreeMB()
{
freediskspace=int((double)fsstat.f_bavail/(double)(1024.0*1024.0/fsstat.f_bsize));
+#if VDRVERSNUM >= 20301
+ LOCK_DELETEDRECORDINGS_READ
+ for(const cRecording *rec=DeletedRecordings->First();rec;rec=DeletedRecordings->Next(rec))
+#else
for(cRecording *rec=DeletedRecordings.First();rec;rec=DeletedRecordings.Next(rec))
+#endif
{
if(!stat(rec->FileName(),&statdir))
{
@@ -719,7 +733,12 @@ void myMenuRecordings::Title()
#endif
int freemb=FreeMB();
#if VDRVERSNUM >= 10727
+# if VDRVERSNUM >= 20301
+ LOCK_RECORDINGS_READ
+ double MBperMinute = Recordings->MBperMinute();
+# else
double MBperMinute = Recordings.MBperMinute();
+# endif
int minutes=int(double(freemb)/(MBperMinute>0?MBperMinute:MB_PER_MINUTE));
#else
int minutes=int(double(freemb)/MB_PER_MINUTE);
@@ -794,14 +813,22 @@ void myMenuRecordings::Set(bool Refresh)
{
const char *lastreplayed=myReplayControl::LastReplayed();
+#if VDRVERSNUM >= 20301
+ LOCK_RECORDINGS_READ
+#else
cThreadLock RecordingsLock(&Recordings);
+#endif
if(Refresh)
{
fsid=0;
myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current());
if(item)
{
+#if VDRVERSNUM >= 20301
+ const cRecording *recording=Recordings->GetByName(item->FileName());
+#else
cRecording *recording=Recordings.GetByName(item->FileName());
+#endif
if(recording)
lastreplayed=recording->FileName();
}
@@ -811,7 +838,11 @@ void myMenuRecordings::Set(bool Refresh)
// create my own recordings list from VDR's
myRecList *list=new myRecList();
+#if VDRVERSNUM >= 20301
+ for(const cRecording *recording=Recordings->First();recording;recording=Recordings->Next(recording))
+#else
for(cRecording *recording=Recordings.First();recording;recording=Recordings.Next(recording))
+#endif
list->Add(new myRecListItem(recording));
// sort my recordings list
#if APIVERSNUM > 20101
@@ -908,7 +939,12 @@ void myMenuRecordings::Set(bool Refresh)
// returns the corresponding recording to an item
cRecording *myMenuRecordings::GetRecording(myMenuRecordingsItem *Item)
{
+#if VDRVERSNUM >= 20301
+ LOCK_RECORDINGS_READ
+ cRecording *recording=(cRecording *)Recordings->GetByName(Item->FileName());
+#else
cRecording *recording=Recordings.GetByName(Item->FileName());
+#endif
if(!recording)
Skins.Message(mtError,trVDR("Error while accessing recording!"));
return recording;
@@ -1175,13 +1211,26 @@ eOSState myMenuRecordings::Delete()
if(timer)
{
timer->Skip();
+#if VDRVERSNUM >= 20301
+ LOCK_TIMERS_WRITE
+ cRecordControls::Process(Timers,time(NULL));
+#else
cRecordControls::Process(time(NULL));
+#endif
if(timer->IsSingleEvent())
{
isyslog("deleting timer %s",*timer->ToDescr());
+#if VDRVERSNUM >= 20301
+ Timers->Del(timer);
+#else
Timers.Del(timer);
+#endif
}
+#if VDRVERSNUM >= 20301
+ Timers->SetModified();
+#else
Timers.SetModified();
+#endif
}
}
else
@@ -1194,7 +1243,12 @@ eOSState myMenuRecordings::Delete()
{
cRecordingUserCommand::InvokeCommand("delete",item->FileName());
myReplayControl::ClearLastReplayed(item->FileName());
+#if VDRVERSNUM >= 20301
+ LOCK_RECORDINGS_WRITE
+ Recordings->DelByName(item->FileName());
+#else
Recordings.DelByName(item->FileName());
+#endif
cOsdMenu::Del(Current());
SetHelpKeys();
ForceFreeMbUpdate();
@@ -1423,7 +1477,12 @@ eOSState myMenuRecordings::ProcessKey(eKeys Key)
if(Interface->Confirm(tr("Cancel moving?")))
{
+#if VDRVERSNUM >= 20301
+ LOCK_RECORDINGS_READ
+ for(const cRecording *rec=Recordings->First();rec;rec=Recordings->Next(rec))
+#else
for(cRecording *rec=Recordings.First();rec;rec=Recordings.Next(rec))
+#endif
{
if(!strncmp(path.c_str(),rec->Name(),path.length()))
MoveCutterThread->CancelMove(rec->FileName());
@@ -1480,14 +1539,21 @@ eOSState myMenuRecordings::ProcessKey(eKeys Key)
default: break;
}
}
+#if VDRVERSNUM >= 20301
+ //TODO???
+ Set(true);
+#else
bool stateChanged = Recordings.StateChanged(recordingsstate);
if(stateChanged || MoveCutterThread->IsCutterQueueEmpty())
Set(true);
+#endif
if(!Count() && level>0)
state=osBack;
+#if VDRVERSNUM < 20301
if((!HasSubMenu() && Key!=kNone) || stateChanged)
+#endif
SetHelpKeys();
}
return state;
diff --git a/tools.c b/tools.c
index ea6e8e2..c1fc22a 100644
--- a/tools.c
+++ b/tools.c
@@ -116,9 +116,15 @@ bool MoveRename(const char *OldName,const char *NewName,cRecording *Recording,bo
return false;
}
+#if VDRVERSNUM >= 20301
+ LOCK_RECORDINGS_WRITE
+ Recordings->DelByName(OldName);
+ Recordings->AddByName(NewName);
+#else
cThreadLock RecordingsLock(&Recordings);
Recordings.DelByName(OldName);
Recordings.AddByName(NewName);
+#endif
// set user command for '-r'-option of VDR
if(-1!=asprintf(&buf,"%s \"%s\"",Move?"move":"rename",*strescape(OldName,"'\\\"$")))
@@ -144,7 +150,12 @@ bool MoveRename(const char *OldName,const char *NewName,cRecording *Recording,bo
buf=NULL;
myRecList *list=new myRecList();
+#if VDRVERSNUM >= 20301
+ LOCK_RECORDINGS_READ
+ for(const cRecording *recording=Recordings->First();recording;recording=Recordings->Next(recording))
+#else
for(cRecording *recording=Recordings.First();recording;recording=Recordings.Next(recording))
+#endif
list->Add(new myRecListItem(recording));
myRecListItem *item=list->First();
@@ -195,9 +206,13 @@ bool MoveRename(const char *OldName,const char *NewName,cRecording *Recording,bo
// --- myRecListItem ----------------------------------------------------------
bool myRecListItem::SortByName=false;
+#if VDRVERSNUM >= 20301
+myRecListItem::myRecListItem(const cRecording *Recording)
+#else
myRecListItem::myRecListItem(cRecording *Recording)
+#endif
{
- recording=Recording;
+ recording=(cRecording *)Recording;
filename=strdup(recording->FileName());
sortBufferName = sortBufferTime = NULL;
}
@@ -359,7 +374,11 @@ void WorkerThread::Action()
#endif
CutterQueue->Del(cutteritem);
+#if VDRVERSNUM >= 20301
+ //TODO???
+#else
Recordings.ChangeState();
+#endif
}
if((moveitem=MoveBetweenFileSystemsList->First())!=NULL)
@@ -371,7 +390,11 @@ void WorkerThread::Action()
// error occured -> empty move queue
MoveBetweenFileSystemsList->Clear();
+#if VDRVERSNUM >= 20301
+ //TODO???
+#else
Recordings.ChangeState();
+#endif
}
sleep(1);
@@ -659,7 +682,11 @@ void WorkerThread::CancelMove(string Path)
void WorkerThread::AddToMoveList(string From,string To)
{
MoveBetweenFileSystemsList->Add(new MoveListItem(From,To));
+#if VDRVERSNUM >= 20301
+ //TODO???
+#else
Recordings.ChangeState();
+#endif
}
bool WorkerThread::Move(string From,string To)
@@ -762,18 +789,30 @@ bool WorkerThread::Move(string From,string To)
{
closedir(dir);
+#if VDRVERSNUM >= 20301
+ LOCK_RECORDINGS_WRITE
+ cRecording rec(From.c_str());
+ rec.Delete();
+ Recordings->DelByName(From.c_str());
+ Recordings->AddByName(To.c_str());
+#else
cThreadLock RecordingsLock(&Recordings);
cRecording rec(From.c_str());
rec.Delete();
Recordings.DelByName(From.c_str());
Recordings.AddByName(To.c_str());
+#endif
string cmdstring="move \"";
cmdstring+=myStrEscape(From,"'\\\"$");
cmdstring+="\"";
cRecordingUserCommand::InvokeCommand(cmdstring.c_str(),To.c_str());
+#if VDRVERSNUM >= 20301
+ Recordings->TouchUpdate();
+#else
Recordings.TouchUpdate();
+#endif
return true;
}
diff --git a/tools.h b/tools.h
index b075b64..b2c129a 100644
--- a/tools.h
+++ b/tools.h
@@ -38,7 +38,11 @@ class myRecListItem:public cListObject
static char *StripEpisodeName(char *s);
char *SortName(void) const;
public:
+#if VDRVERSNUM >= 20301
+ myRecListItem(const cRecording *Recording);
+#else
myRecListItem(cRecording *Recording);
+#endif
~myRecListItem();
virtual int Compare(const cListObject &ListObject)const;
cRecording *recording;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-vdr-dvb/vdr-plugin-extrecmenu.git
More information about the pkg-vdr-dvb-changes
mailing list