On 06.01.2010 13:18, Theunis Potgieter wrote: > 2010/1/6 Klaus Schmidinger <Klaus.Schmidinger@xxxxxxx>: >> On 06.01.2010 13:05, Theunis Potgieter wrote: >>> 2010/1/6 Klaus Schmidinger <Klaus.Schmidinger@xxxxxxx>: >>>> On 05.01.2010 09:40, Theunis Potgieter wrote: >>>>> 2010/1/4 Klaus Schmidinger <Klaus.Schmidinger@xxxxxxx>: >>>>>> On 04.01.2010 16:09, Theunis Potgieter wrote: >>>>>>> 2010/1/4 Klaus Schmidinger <Klaus.Schmidinger@xxxxxxx>: >>>>>>>> On 04.01.2010 14:37, Theunis Potgieter wrote: >>>>>>>>> I was in search for a plug-in that could map alternative long names to >>>>>>>>> the supposedly current long name of a channel. I guess I didn't search >>>>>>>>> hard and long enough, but could not find one that would implement this >>>>>>>>> behaviour. The idea is, that when ever a channel list is called, it >>>>>>>>> will provide the alternative long name, but saves the original long >>>>>>>>> name in channels.conf. >>>>>>>>> >>>>>>>>> So I thought of implementing one my self. After reading the >>>>>>>>> PLUGINS.html from VDR-1.7.10, I thought it would be possible. I didn't >>>>>>>>> see any spoon feeding when it came to channels in the documentation, >>>>>>>>> so I thought I will have a look at channels.h and there seems to be a >>>>>>>>> member function called Name() in the tChannelID class. Would it be >>>>>>>>> wise then to copy the tChannelID class and replace the member function >>>>>>>>> Name()? >>>>>>>> tChannelID has no member function named Name(). >>>>>>>> Maybe you mean the cChannel class? >>>>>>>> I guess if you change the implementation of cChannel::Name(), then you >>>>>>>> could do what you want. >>>>>>> Thanks for that. I must have scrolled back up and saw the wrong class, >>>>>>> I meant cChannel:Name(). >>>>>>> >>>>>>>>> Which global pointer will I have to deleted and assign to the new object? >>>>>>>> I don't understand this question. >>>>>>>> There is no "new object". >>>>>>>> You will have to patch the VDR source to implement this. >>>>>>> The idea is that the plug-in would delete the current instance of >>>>>>> cChannel and instantiate a new cChannel instance in the place there >>>>>>> of. This without having to patch vdr to implement this feature. There >>>>>>> for the question about the (e.g. global) pointer that is pointing to >>>>>>> the original instance of cChannel. Is there a member function in the >>>>>>> plug-in class that can be called from VDR's main and hand over such a >>>>>>> pointer? >>>>>> There is an object of cChannel for each channel, and they are stored in >>>>>> a list. You can either patch VDR to modify cChannel::Name() so that it >>>>>> takes the original name as an index into some database of yours, or >>>>>> modify the names in your channels.conf and set "Setup/DVB/Update channels" >>>>>> to "PIDs only". >>>>>> >>>>>> Just curious: what's wrong with the original names? >>>>> The long names and the short names are the same. >>>> And what's wrong with that? >>> If you have a lot of channels, where the Long names are reduced to >>> short (acronym) names. Then you might run into the problem where you >>> see a few channels with the same short name but with different IDs. I >>> can't always remember what the short name used to stand for after I >>> visit the channel in 6 months. The STB will show the correct long >>> name. >> Where does the STB get that long name from? > > I only guess that it will get that information in the same form as the > EPG works. The EPG can only be accessed by going to a specific channel > and view it using the STB's propriety hardware. Those providers really suck! At the moment the only real advice I can give you is to change the cChannel::Name() function so that it looks up your long channel names in a list that maps channel ids to long names. A clean solution will be possible once I get to implement user defined favorite channel lists, where the user will be able to overwrite the channel name. Klaus _______________________________________________ vdr mailing list vdr@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr