diff options
-rw-r--r-- | css/styles.css | 2 | ||||
-rw-r--r-- | epg_events.cpp | 60 | ||||
-rw-r--r-- | live/js/live/vlc.js | 4 |
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 }, |