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