diff options
-rw-r--r-- | CHANGES.AM | 7 | ||||
-rw-r--r-- | extrecmenu.c | 4 | ||||
-rw-r--r-- | mymenurecordings.c | 27 | ||||
-rw-r--r-- | mymenusetup.c | 2 | ||||
-rw-r--r-- | mymenusetup.h | 2 | ||||
-rw-r--r-- | tools.c | 5 |
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(¶meter,"\"%s\"",recording->FileName()); + if (item->IsDirectory()) + { + char *strBase=base?ExchangeChars(strdup(base), true):NULL; + char *strName=ExchangeChars(strdup(item->Name()), true); + asprintf(¶meter,"\"%s/%s/%s\"",VideoDirectory,strBase?strBase:"", strName); + free(strBase); + free(strName); + } + else + asprintf(¶meter,"\"%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: @@ -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) { |