From patchwork Sun Jun 17 12:30:44 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Klaus Schmidinger X-Patchwork-Id: 12960 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1SgEd1-0004du-M8 for vdr@linuxtv.org; Sun, 17 Jun 2012 14:31:16 +0200 X-tubIT-Incoming-IP: 188.40.50.18 Received: from racoon.tvdr.de ([188.40.50.18]) by mail.tu-berlin.de (exim-4.75/mailfrontend-2) with esmtps [TLSv1:AES256-SHA:256] for id 1SgEd1-00078X-Gv; Sun, 17 Jun 2012 14:30:51 +0200 Received: from dolphin.tvdr.de (dolphin.tvdr.de [192.168.100.2]) by racoon.tvdr.de (8.14.3/8.14.3) with ESMTP id q5HCVUil022382 for ; Sun, 17 Jun 2012 14:31:30 +0200 Received: from [192.168.100.10] (hawk.tvdr.de [192.168.100.10]) by dolphin.tvdr.de (8.14.4/8.14.4) with ESMTP id q5HCUiDv031938 for ; Sun, 17 Jun 2012 14:30:44 +0200 Message-ID: <4FDDCDF4.8000505@tvdr.de> Date: Sun, 17 Jun 2012 14:30:44 +0200 From: Klaus Schmidinger User-Agent: Mozilla/5.0 (X11; Linux i686; rv:12.0) Gecko/20120421 Thunderbird/12.0 MIME-Version: 1.0 To: vdr@linuxtv.org References: <4FDC8ADB.3000604@tvdr.de> <4FDDCAB5.2030006@tvdr.de> In-Reply-To: <4FDDCAB5.2030006@tvdr.de> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.0.1 (racoon.tvdr.de [188.40.50.18]); Sun, 17 Jun 2012 14:31:31 +0200 (CEST) X-PMX-Version: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2012.6.17.121514 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' HTML_00_01 0.05, HTML_00_10 0.05, MSGID_ADDED_BY_MTA 0.05, BODY_SIZE_6000_6999 0, BODY_SIZE_7000_LESS 0, URI_ENDS_IN_HTML 0, __ANY_URI 0, __BOUNCE_CHALLENGE_SUBJ 0, __BOUNCE_NDR_SUBJ_EXEMPT 0, __CP_MEDIA_BODY 0, __CP_URI_IN_BODY 0, __CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __HAS_FROM 0, __HAS_MSGID 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __MOZILLA_MSGID 0, __SANE_MSGID 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NS , __USER_AGENT 0' X-LSpam-Score: -1.1 (-) X-LSpam-Report: No, score=-1.1 required=5.0 tests=BAYES_00=-1.9, RDNS_NONE=0.793 autolearn=no Subject: Re: [vdr] RFE: Make VDR more friendly when using combinations of DVB-S, DVB-T and DVB-C X-BeenThere: vdr@linuxtv.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: VDR Mailing List List-Id: VDR Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jun 2012 12:31:16 -0000 Status: O X-Status: X-Keywords: X-UID: 26395 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 Schmidinger 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/110156-%C3%BCberlegungen-zur-channels-conf-f%C3%BCr-dvb-c-s-t-mischbetrieb/index3.html >>>> >>>> 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: Klaus --- 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();