diff options
author | Andreas Mair <andreas@vdr-developer.org> | 2010-05-29 15:01:25 +0200 |
---|---|---|
committer | Andreas Mair <andreas@vdr-developer.org> | 2010-05-29 15:05:49 +0200 |
commit | 61966ead5b86f5791e150d63386f51d58390f497 (patch) | |
tree | ddfe71ebb7d104cb689549d16a4eb702a68cf2c1 /mymenurecordings.c | |
parent | 23f4f2114e7d48bb4bbe5e50aa6ddce0f1c21bd2 (diff) | |
download | vdr-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.
Diffstat (limited to 'mymenurecordings.c')
-rw-r--r-- | mymenurecordings.c | 27 |
1 files changed, 19 insertions, 8 deletions
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; |