summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Mair <andreas@vdr-developer.org>2010-05-29 15:01:25 +0200
committerAndreas Mair <andreas@vdr-developer.org>2010-05-29 15:05:49 +0200
commit61966ead5b86f5791e150d63386f51d58390f497 (patch)
treeddfe71ebb7d104cb689549d16a4eb702a68cf2c1
parent23f4f2114e7d48bb4bbe5e50aa6ddce0f1c21bd2 (diff)
downloadvdr-plugin-extrecmenu-61966ead5b86f5791e150d63386f51d58390f497.tar.gz
vdr-plugin-extrecmenu-61966ead5b86f5791e150d63386f51d58390f497.tar.bz2
Version 1.2-test1-am1v1.2-test1-am1
- fixed wrong help keys if selected recording finishes cutting. - plugins/extrecmenu/dircmds.conf for recording directory commands (same as reccmds.conf) - "nice" the action thread. - Use LimitBandwidth setting also for cutting.
-rw-r--r--CHANGES.AM7
-rw-r--r--extrecmenu.c4
-rw-r--r--mymenurecordings.c27
-rw-r--r--mymenusetup.c2
-rw-r--r--mymenusetup.h2
-rw-r--r--tools.c5
6 files changed, 38 insertions, 9 deletions
diff --git a/CHANGES.AM b/CHANGES.AM
new file mode 100644
index 0000000..7094266
--- /dev/null
+++ b/CHANGES.AM
@@ -0,0 +1,7 @@
+- fixed wrong help keys if selected recording finishes cutting.
+- plugins/extrecmenu/dircmds.conf for recording directory commands (same as reccmds.conf)
+- "nice" the action thread.
+- Use LimitBandwidth setting also for cutting.
+
+TODO:
+- ioprio_set
diff --git a/extrecmenu.c b/extrecmenu.c
index 6793c93..1df3d34 100644
--- a/extrecmenu.c
+++ b/extrecmenu.c
@@ -11,7 +11,7 @@
using namespace std;
-static const char *VERSION = "1.2";
+static const char *VERSION = "1.2-test1-am1";
static const char *DESCRIPTION = tr("Extended recordings menu");
static const char *MAINMENUENTRY = "ExtRecMenu";
@@ -74,6 +74,8 @@ bool cPluginExtrecmenu::Start(void)
MoveCutterThread=new WorkerThread();
+ RecordingDirCommands.Load(AddDirectory(cPlugin::ConfigDirectory(PLUGIN_NAME_I18N), "dircmds.conf"), true);
+
return true;
}
diff --git a/mymenurecordings.c b/mymenurecordings.c
index 920c6af..dee0276 100644
--- a/mymenurecordings.c
+++ b/mymenurecordings.c
@@ -529,7 +529,7 @@ void myMenuRecordings::SetHelpKeys()
switch(newhelpkeys)
{
case 0: SetHelp(NULL);break;
- case 1: SetHelp(tr("Button$Open"),NULL,tr("Button$Edit"));break;
+ case 1: SetHelp(RecordingDirCommands.Count()?tr("Button$Commands"):tr("Button$Open"),NULL,tr("Button$Edit"));break;
case 2: SetHelp(RecordingCommands.Count()?tr("Button$Commands"):tr("Button$Play"),tr("Button$Rewind"),tr("Button$Edit"),tr("Button$Info"));break;
case 3: SetHelp(RecordingCommands.Count()?tr("Button$Commands"):tr("Button$Play"),tr("Button$Rewind"),tr("Button$Cancel"),tr("Button$Info"));break;
case 4: SetHelp(RecordingCommands.Count()?tr("Button$Commands"):tr("Button$Play"),tr("Button$Rewind"),tr("Button$Edit"),NULL);break;
@@ -934,15 +934,24 @@ eOSState myMenuRecordings::Commands(eKeys Key)
return osContinue;
myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current());
- if(item && !item->IsDirectory())
+ if(item)
{
cRecording *recording=GetRecording(item);
if(recording)
{
char *parameter=NULL;
- asprintf(&parameter,"\"%s\"",recording->FileName());
+ if (item->IsDirectory())
+ {
+ char *strBase=base?ExchangeChars(strdup(base), true):NULL;
+ char *strName=ExchangeChars(strdup(item->Name()), true);
+ asprintf(&parameter,"\"%s/%s/%s\"",VideoDirectory,strBase?strBase:"", strName);
+ free(strBase);
+ free(strName);
+ }
+ else
+ asprintf(&parameter,"\"%s\"",recording->FileName());
myMenuCommands *menu;
- eOSState state=AddSubMenu(menu=new myMenuCommands(trVDR("Recording commands"),&RecordingCommands,parameter));
+ eOSState state=AddSubMenu(menu=new myMenuCommands(trVDR("Recording commands"),item->IsDirectory() ? &RecordingDirCommands : &RecordingCommands,parameter));
free(parameter);
if(Key!=kNone)
state=menu->ProcessKey(Key);
@@ -1013,15 +1022,16 @@ eOSState myMenuRecordings::ProcessKey(eKeys Key)
state=cOsdMenu::ProcessKey(Key);
if(state==osUnknown)
{
+ myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current());
+
switch(Key)
{
case kOk: return Play();
- case kRed: return (helpkeys>1 && RecordingCommands.Count())?Commands():Play();
+ case kRed: return (helpkeys>0 && item && ((item->IsDirectory() && RecordingDirCommands.Count()) || (!item->IsDirectory() && RecordingCommands.Count())))?Commands():Play();
case kGreen: return Rewind();
case kYellow: {
if(!HasSubMenu())
{
- myMenuRecordingsItem *item=(myMenuRecordingsItem*)Get(Current());
if(item)
{
if(item->IsDirectory())
@@ -1096,13 +1106,14 @@ eOSState myMenuRecordings::ProcessKey(eKeys Key)
default: break;
}
}
- if(Recordings.StateChanged(recordingsstate) || MoveCutterThread->IsCutterQueueEmpty())
+ bool stateChanged = Recordings.StateChanged(recordingsstate);
+ if(stateChanged || MoveCutterThread->IsCutterQueueEmpty())
Set(true);
if(!Count() && level>0)
state=osBack;
- if(!HasSubMenu() && Key!=kNone)
+ if((!HasSubMenu() && Key!=kNone) || stateChanged)
SetHelpKeys();
}
return state;
diff --git a/mymenusetup.c b/mymenusetup.c
index 99a3229..03f15b6 100644
--- a/mymenusetup.c
+++ b/mymenusetup.c
@@ -5,6 +5,8 @@
#include <vdr/menu.h>
#include "mymenusetup.h"
+cCommands RecordingDirCommands;
+
mySetup::mySetup()
{
mysetup.HideMainMenuEntry=0;
diff --git a/mymenusetup.h b/mymenusetup.h
index cd8b601..e263e7f 100644
--- a/mymenusetup.h
+++ b/mymenusetup.h
@@ -1,5 +1,7 @@
#include <vdr/menu.h>
+extern cCommands RecordingDirCommands;
+
class mySetup
{
public:
diff --git a/tools.c b/tools.c
index 268ee84..396787d 100644
--- a/tools.c
+++ b/tools.c
@@ -282,6 +282,8 @@ void WorkerThread::Action()
{
CutterListItem *cutteritem=NULL;
MoveListItem *moveitem=NULL;
+
+ SetPriority(19);
while(Running())
{
@@ -500,6 +502,9 @@ void WorkerThread::Cut(string From,string To)
else
lastmark=true;
}
+
+ if(mysetup.LimitBandwidth)
+ usleep(10);
}
if(!Running() || cancelcut || error)
{