On 06.01.2010 13:05, Theunis Potgieter wrote:
2010/1/6 Klaus Schmidinger Klaus.Schmidinger@tvdr.de:
On 05.01.2010 09:40, Theunis Potgieter wrote:
2010/1/4 Klaus Schmidinger Klaus.Schmidinger@tvdr.de:
On 04.01.2010 16:09, Theunis Potgieter wrote:
2010/1/4 Klaus Schmidinger Klaus.Schmidinger@tvdr.de:
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?
Klaus