diff options
author | horchi <vdr@jwendel.de> | 2018-02-10 08:10:22 +0100 |
---|---|---|
committer | horchi <vdr@jwendel.de> | 2018-02-10 08:10:22 +0100 |
commit | 911b71c9c70b99b98677179dff404e8eb2432592 (patch) | |
tree | 56aee590e84a212f716b4a70ccde3dfec7b1d595 /recording.c | |
parent | 59875c10d77355d34b864445e63f635fcc60d853 (diff) | |
download | vdr-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.c | 47 |
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(); |