summaryrefslogtreecommitdiff
path: root/plugins/profiler/vdrDVBProfiler/dvbProfiler.cpp
diff options
context:
space:
mode:
authormethodus <methodus@web.de>2013-01-03 08:23:02 +0100
committermethodus <methodus@web.de>2013-01-03 08:23:02 +0100
commit144b098a1a24d2cc6664513e6951e1215c0b3acb (patch)
treebbc81ae30f174c7e59db3c04802826acc1d10ed4 /plugins/profiler/vdrDVBProfiler/dvbProfiler.cpp
parent0c1c7fe86992a030ed6e72a74b1e16607c4516a2 (diff)
downloadvdr-plugin-upnp-144b098a1a24d2cc6664513e6951e1215c0b3acb.tar.gz
vdr-plugin-upnp-144b098a1a24d2cc6664513e6951e1215c0b3acb.tar.bz2
Added channel group to channel item properties (genre) to use that for filtering and sorting in Windows Media Player 12, which is absolutely unaware of folders.
Diffstat (limited to 'plugins/profiler/vdrDVBProfiler/dvbProfiler.cpp')
-rw-r--r--plugins/profiler/vdrDVBProfiler/dvbProfiler.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/plugins/profiler/vdrDVBProfiler/dvbProfiler.cpp b/plugins/profiler/vdrDVBProfiler/dvbProfiler.cpp
index 84b50a8..1725006 100644
--- a/plugins/profiler/vdrDVBProfiler/dvbProfiler.cpp
+++ b/plugins/profiler/vdrDVBProfiler/dvbProfiler.cpp
@@ -136,6 +136,31 @@ public:
}
}
+ int GetGroupByChannel(const cChannel* channel)
+ {
+ if(!channel) return -1;
+ int Idx = 0, Idx2;
+ cChannel *group, *chan;
+
+ for(group = Channels.First(); group; group = Channels.Next(group)){
+ if(group->GroupSep() && *group->Name()){
+ Idx2 = Idx;
+ for(chan = Channels.Next(group); chan; chan = Channels.Next(chan)){
+ if(chan->GroupSep() && *group->Name()){
+ group = Channels.Prev(chan);
+ break;
+ }
+ if(channel == chan) return Idx;
+ ++Idx2;
+ }
+ Idx = Idx2;
+ }
+ ++Idx;
+ }
+
+ return -1;
+ }
+
::cConfig<ChannelTitle> channelTitleConfig;
cCharSetConv conv;
@@ -341,6 +366,12 @@ private:
metadata.SetProperty(cMetadata::Property(property::object::KEY_CHANNEL_NAME, channelName));
metadata.SetProperty(cMetadata::Property(property::object::KEY_CHANNEL_NR, (long int)channel->Number()));
+ int group = GetGroupByChannel(channel);
+ if(group != -1){
+ LOG(4, "Channel group: %s (%d)", Channels.Get(group)->Name(), group);
+ metadata.SetProperty(cMetadata::Property("upnp:genre", tools::ToUTF8String(Channels.Get(group)->Name())));
+ }
+
// Now, we try to get the present event of the schedule
{
cSchedulesLock lock;