summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--css/styles.css2
-rw-r--r--epg_events.cpp60
-rw-r--r--live/js/live/vlc.js4
3 files changed, 51 insertions, 15 deletions
diff --git a/css/styles.css b/css/styles.css
index 6c4fa66..33822fc 100644
--- a/css/styles.css
+++ b/css/styles.css
@@ -768,7 +768,7 @@ div.short {
}
div.info {
- padding: 5px;
+ padding: 5px 5px 5px 0px;
overflow: hidden;
}
diff --git a/epg_events.cpp b/epg_events.cpp
index b95443d..a514769 100644
--- a/epg_events.cpp
+++ b/epg_events.cpp
@@ -280,10 +280,11 @@ namespace vdrlive
string domId(idOverride ? idOverride : EncodeDomId(chan->GetChannelID(), event->EventID()));
return EpgInfoPtr(new EpgEvent(domId, event, chan->Name()));
}
- else if (LiveSetup().GetShowChannelsWithoutEPG()) {
+ if (LiveSetup().GetShowChannelsWithoutEPG()) {
string domId(idOverride ? idOverride : EncodeDomId(chan->GetChannelID(), 0));
return EpgInfoPtr(new EmptyEvent(domId, chan->GetChannelID(), chan->Name()));
}
+ return EpgInfoPtr();
}
EpgInfoPtr CreateEpgInfo(string const &recid, cRecording const *recording, char const *caption)
@@ -296,25 +297,64 @@ namespace vdrlive
return EpgInfoPtr(new EpgString(id, caption, info));
}
- list<string> EpgImages(string const &epgid)
- {
- list<string> images;
- size_t delimPos = epgid.find_last_of('_');
- string imageId = epgid.substr(delimPos+1);
- imageId = imageId.substr(0, imageId.size()-1); // tvm2vdr seems always to use one digit less
-
- const string filemask(LiveSetup().GetEpgImageDir() + "/" + imageId + "*.*");
+ bool ScanForEpgImages(string const & imageId, string const & wildcard, list<string> & images)
+ {
+ bool found = false;
+ const string filemask(LiveSetup().GetEpgImageDir() + "/" + imageId + wildcard);
glob_t globbuf;
globbuf.gl_offs = 0;
if (!LiveSetup().GetEpgImageDir().empty() && glob(filemask.c_str(), GLOB_DOOFFS, NULL, &globbuf) == 0) {
- for(int i=0; i<(int)globbuf.gl_pathc; i++) {
+ for(size_t i = 0; i < globbuf.gl_pathc; i++) {
const string imagefile(globbuf.gl_pathv[i]);
size_t delimPos = imagefile.find_last_of('/');
images.push_back(imagefile.substr(delimPos+1));
+ found = true;
}
globfree(&globbuf);
}
+ return found;
+ }
+
+ list<string> EpgImages(string const &epgid)
+ {
+ size_t delimPos = epgid.find_last_of('_');
+ string imageId = epgid.substr(delimPos+1);
+
+ list<string> images;
+
+ // Initially we scan for images that follow the scheme
+ // '<epgid>_<distinction>.*' where distincition is any
+ // character sequence. Usually distinction will be used
+ // to assign more than one image to an epg event. Thus it
+ // will be a digit or number. The sorting of the images
+ // will depend on the 'distinction' lexical sorting
+ // (similar to what ls does).
+ // Example:
+ // 112123_0.jpg first epg image for event id 112123
+ // 112123_1.png second epg image for event id 112123
+ if (! ScanForEpgImages(imageId, "_*.*", images))
+ {
+ // if we didn't find images that follow the scheme
+ // above we try to find images that contain only the
+ // event id as file name without extension:
+ if (! ScanForEpgImages(imageId, ".*", images))
+ {
+#if TVM2VDR_PL_WORKAROUND
+ // if we didn't get images try to work arround a
+ // bug in tvm2vdr. tvm2vdr seems always to use
+ // one digit less, which leads in some rare cases
+ // to the bug in LIVE, that unrelated and to many
+ // images are displayed. But without this 'fix'
+ // no images would be visible at all. The bug
+ // should be fixed in tvm2vdr.pl (Perl version of
+ // tvm2vdr). There exists a plugin - also called
+ // tvm2vdr - which does not have that bug.
+ imageId = imageId.substr(0, imageId.size()-1);
+ ScanForEpgImages(imageId, "*.*", images);
+#endif
+ }
+ }
return images;
}
diff --git a/live/js/live/vlc.js b/live/js/live/vlc.js
index 927f3a4..3b8aa23 100644
--- a/live/js/live/vlc.js
+++ b/live/js/live/vlc.js
@@ -67,10 +67,6 @@ var VLC = new Class({
playerSetup: function(){
this.vlc = $(this.id);
this.newVlcApi = (this.vlc.VersionInfo != null);
- if (this.newVlcApi) {
- // disable logging.
- this.vlc.log.verbosity = -1;
- }
// add here new actions these class might support:
var actions = {
play: { check: this.isPlaying, toggle: this.togglePlay },