summaryrefslogtreecommitdiff
path: root/recording.c
diff options
context:
space:
mode:
authorhorchi <vdr@jwendel.de>2018-02-10 08:10:22 +0100
committerhorchi <vdr@jwendel.de>2018-02-10 08:10:22 +0100
commit911b71c9c70b99b98677179dff404e8eb2432592 (patch)
tree56aee590e84a212f716b4a70ccde3dfec7b1d595 /recording.c
parent59875c10d77355d34b864445e63f635fcc60d853 (diff)
downloadvdr-plugin-epg2vdr-911b71c9c70b99b98677179dff404e8eb2432592.tar.gz
vdr-plugin-epg2vdr-911b71c9c70b99b98677179dff404e8eb2432592.tar.bz2
2018-02-10 version 1.1.83 (horchi)\n - bugfix: Fixed delete of Switch timer\n - added: Fill recording images table with images of existing recordings\n\n1.1.83
Diffstat (limited to 'recording.c')
-rw-r--r--recording.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/recording.c b/recording.c
index 2de582e..31ec980 100644
--- a/recording.c
+++ b/recording.c
@@ -490,9 +490,56 @@ int cUpdate::updateRecordingTable(int fullReload)
if (!recordingImagesDb->find())
{
+ const char* ext = ".jpg";
+ MemoryStruct data;
+ struct dirent* dirent;
+ DIR* dir;
+ char* recdir;
+ int lfn = 0;
+
// we don't have a image, check filesystem
+ asprintf(&recdir, "%s/%s", videoBasePath, recordingListDb->getStrValue("PATH"));
+ dir = opendir(recdir);
+
+ if (!dir)
+ {
+ tell(1, "Can't open directory '%s', '%s'", recdir, strerror(errno));
+ continue;
+ }
+
+ free(recdir);
+
+ while ((dirent = readdir(dir)))
+ {
+ // check extension
+
+ if (strncmp(dirent->d_name + strlen(dirent->d_name) - strlen(ext), ext, strlen(ext)) != 0)
+ continue;
+
+ char* imgPath;
+ asprintf(&imgPath, "%s/%s/%s", videoBasePath, recordingListDb->getStrValue("PATH"), dirent->d_name);
+
+ tell(0, "%s'found image for '%s' [%s]", fileExists(imgPath) ? "" : "Don't ",
+ recordingListDb->getStrValue("TITLE"), imgPath);
+
+ if (loadFromFile(imgPath, &data) == success)
+ {
+ if (data.size < (unsigned long)imageDb->getField("IMAGE")->getSize())
+ {
+ recordingImagesDb->setValue("IMGID", recordingListDb->getStrValue("IMGID"));
+ recordingImagesDb->setValue("LFN", lfn++);
+ recordingImagesDb->setValue("IMAGE", data.memory, data.size);
+ recordingImagesDb->setValue("TITLE", recordingListDb->getStrValue("TITLE"));
+ recordingImagesDb->setValue("SHORTTEXT", recordingListDb->getStrValue("SHORTTEXT"));
+ recordingImagesDb->store();
+ }
+ }
+
+ free(imgPath);
+ }
+ closedir(dir);
}
recordingImagesDb->reset();