On 17.06.2012 14:16, Klaus Schmidinger wrote:
On 16.06.2012 16:53, Ludi wrote:
Hi Klaus,
First of all, thanks for your reply and for taking the problem into account.
On Sat, 16 Jun 2012 15:32:11 +0200 Klaus SchmidingerKlaus.Schmidinger@tvdr.de wrote:
On 15.06.2012 17:17, Ludi wrote:
Hello,
Some time ago, I started a discussion in german on the VDR forum about making the VDR more friendly for users that are simultaneously using different sources to receive channels: http://www.vdr-portal.de/board16-video-disk-recorder/board8-vdr-grundlagen/1...
I am going to explain the problem, when receiving channels from two different sources by using the second german public channel named ZDF:
Suppose a user is receiving the channel ZDF by dvb-s and dvb-t. For the VDR, these are two different channels, and it probably is not a bad thing that the VDR differentiates between them because these channels might be of different quality (different data rates, etc.). However, as both sources name these channels often the same way, it is not easily possible to differentiate between the two channels in the VDR OSD, which is particularly annoying for the timers, one of the main VDR features.
Currently, I work around this problem, by setting the VDR to not update channelnames and manually adding a suffix to the channelnames in the channels.conf. So, to use the example above and differentiate between the two channels, they could be renamed to ZDF-s and ZDF-t (or ZDF.s and ZDF.t, or...). In practice, I only only rename the channelnames of the source with the smallest number of channels; I know that the channelnames without suffix are those from the other source.
@ Klaus
Do you think that you could add an additional option to one of your next VDR releases, like "Add suffix about source to channelnames"; I could imagine such an option next to the "Update channels" option in the DVB section of the Setup in the OSD of the VDR.
Since the information is already in the channels.conf for every channel, I assume, that it will not require huge changes to the VDR code to use channelnames-source (or something similar) instead of only the channelname in the channelname field of the channels.conf, when the corresponding option is active.
I'd rather have the channels.conf entries keep the names that are broadcast in the SI data. I wouldn't want to add a "source" suffix there.
I understand your concerns.
I assumed that changing the names in the channels.conf would be the best in order to make also the plugins and other software use the names+source for free. Moreover, since the channels.conf can be constantly updated, I thought that it would not really matter, because the names without source could be restored in the channels.conf by simply disabling the new option and configure the update setting to also modify the channelnames. I was not aware that there was a standard for the broadcasting of the channelnames; but it does not surprise me either now.
However, I could imagine adding a function like
cString cChannel::NameWithSource(void)
which would return things like
ZDF (DVB-T) ZDF (DVB-S)
or, shorter,
ZDF (T) ZDF (S)
and using that function instead of the Name() function at the appropriate places.
If I get you right, that means that if the user activates the new option (I assume that you will make it optional, since most people probably use only one source and do not have the problem), the VDR uses the NameWithSource() method instead of the Name() method.
But what does this mean for the plugins? I am particularly thinking at the plugins related to the timers, like the epgsearch and the live plugin. Will they have to be adapted or will they also show the name+source if the new option is enabled?
Concerning whether to use the longer or the shorter version of the name+source, I would choose the shorter version to not increase chances of the new name not fitting in the OSD. Thus:
ZDF (S) ZDF (T) ZDF (C)
After sleeping over this for a night I tend to follow your idea of using modifed names directly, thus having them appear everywhere.
I won't change these names in channels.conf, though (this file shall always store what comes from the broadcaster - provided it is enabled in the setup). I'll rather
- Make a setup option to "Show channel names with source" (default is "no").
- Modify cChannel::Name() and cChannel::ShortName() to optionally
append the source character (A, C, S, T, I, ...) to the channel name in the (short) form mentioned above.
The attached patch implements this (i18n stuff left out for brevity). Please give it a try.
Sorry, apparently I forgot to store this new option in the setup.conf file:
--- config.c 2012/06/13 09:12:53 2.25 +++ config.c 2012/06/17 12:27:07 @@ -658,6 +659,7 @@ else if (!strcasecmp(Name, "InitialVolume")) InitialVolume = atoi(Value); else if (!strcasecmp(Name, "DeviceBondings")) DeviceBondings = Value; else if (!strcasecmp(Name, "ChannelsWrap")) ChannelsWrap = atoi(Value); + else if (!strcasecmp(Name, "ShowChannelNamesWithSource")) ShowChannelNamesWithSource = atoi(Value); else if (!strcasecmp(Name, "EmergencyExit")) EmergencyExit = atoi(Value); else return false; @@ -756,6 +758,7 @@ Store("InitialVolume", InitialVolume); Store("DeviceBondings", DeviceBondings); Store("ChannelsWrap", ChannelsWrap); + Store("ShowChannelNamesWithSource", ShowChannelNamesWithSource); Store("EmergencyExit", EmergencyExit);
Sort();
Klaus