summaryrefslogtreecommitdiff
path: root/mymenurenamerecording.c
diff options
context:
space:
mode:
authorMartin Prochnow <nordlicht@martins-kabuff.de>2006-03-09 15:01:38 +0100
committerAndreas Mair <andreas@vdr-developer.org>2006-03-09 15:01:38 +0100
commit93372f4ecc69a079c0e5c5af9169f39222983667 (patch)
treef341ea604e6fd1a8e175ee78a70cab88a6006623 /mymenurenamerecording.c
downloadvdr-plugin-extrecmenu-93372f4ecc69a079c0e5c5af9169f39222983667.tar.gz
vdr-plugin-extrecmenu-93372f4ecc69a079c0e5c5af9169f39222983667.tar.bz2
Version 0.1 (Initial revision).v0.1
Diffstat (limited to 'mymenurenamerecording.c')
-rw-r--r--mymenurenamerecording.c72
1 files changed, 72 insertions, 0 deletions
diff --git a/mymenurenamerecording.c b/mymenurenamerecording.c
new file mode 100644
index 0000000..492a3c6
--- /dev/null
+++ b/mymenurenamerecording.c
@@ -0,0 +1,72 @@
+#include "extrecmenu.h"
+
+myMenuRenameRecording::myMenuRenameRecording(cRecording *Recording,myMenuRecordings *MenuRecordings):cOsdMenu(tr("Rename recording"),12)
+{
+ recording=Recording;
+ menurecordings=MenuRecordings;
+
+ char *p=strrchr(recording->Name(),'~');
+ if(p)
+ {
+ strn0cpy(name,++p,sizeof(name));
+ strn0cpy(path,recording->Name(),sizeof(path));
+
+ p=strrchr(path,'~');
+ if(p)
+ *p=0;
+ }
+ else
+ {
+ strn0cpy(name,recording->Name(),sizeof(name));
+ strn0cpy(path,"",sizeof(path));
+ }
+ Add(new cMenuEditStrItem(tr("Name"),name,sizeof(name),tr(FileNameChars)));
+}
+
+eOSState myMenuRenameRecording::ProcessKey(eKeys Key)
+{
+ eOSState state=cOsdMenu::ProcessKey(Key);
+ if(state==osUnknown)
+ {
+ if(Key==kOk)
+ {
+ int result;
+ char *buffer;
+ char *newFileName;
+
+ if(strlen(path))
+ asprintf(&buffer,"%s~%s",path,name);
+ else
+ asprintf(&buffer,"%s",name);
+
+ asprintf(&newFileName,"%s/%s/%s",VideoDirectory,ExchangeChars(buffer,true),strrchr(recording->FileName(),'/')+1);
+
+ result=MakeDirs(newFileName,true);
+ if(result)
+ {
+ result=RenameVideoFile(recording->FileName(),newFileName);
+ if(result)
+ {
+ // update recordings list
+ Recordings.Update(true);
+ // update menu
+ menurecordings->Set();
+ return osBack;
+ }
+ else
+ {
+ Skins.Message(mtError,tr("Error while accessing recording!"));
+ state=osContinue;
+ }
+ }
+ else
+ {
+ Skins.Message(mtError,tr("Error while accessing recording!"));
+ state=osContinue;
+ }
+ free(buffer);
+ free(newFileName);
+ }
+ }
+ return state;
+}