﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	mlocked
802	DiSEqC confuses channel changing with LiveTV	nooneimprt4nt@…	danielk	"When trying to change channels in liveTV where it would change ports on a DiSEqC switch, I get a message that says:

{{{
TVRec(1) Error: Channel: '110' was not found in the database.
Most likely, your DefaultTVChannel setting is wrong.
Could not start livetv.
}}}

This occurs because in GetChannelValue() channelinput = ""DiSEqC Switch Input 1""
(I find this by setting a breakpoint in GetChannelValue() and printing channelinput)
but channel 110 should be on 'Input 2' as can be seen here:
{{{
select channel.sourceid,channum,inputname from channel,cardinput where channum=110 and cardinput.sourceid=channel.sourceid;
+----------+---------+-----------------------+
| sourceid | channum | inputname             |
+----------+---------+-----------------------+
|        2 | 110     | DiSEqC Switch Input 2 |
}}}
channelinput is incorrect because chan->GetCurrentInput() returns channelnames[0] (no place in the dvb code seems to change the value of currentcapchannel), and 
channelnames only gets set in DVBChannel::SwitchToInput() which is only called once (from TVRec::InitChannel)

I'm not sure how this is supposed to work.

Interestingly enough, this seems to only happen in LiveTV (recordings work OK), and I can see that a command was sent to the diseqc to switch.  If I hack the SELECT command in GetChannelValue, I can make it change channels fine.

For other cards (which use channel.cpp), it is apparent that all sources are enumerated, but it looks like they are not used in dvbchannel.cpp  I could probably work up a patch if I understood the intention of how this code should work"	defect	closed	minor	0.20	dvb	head	medium	fixed	dvb diseqc		0
