Index: TVLibrary/Implementations/DVB/Graphs/DVBIP/TvCardDVBIP.cs
===================================================================
--- TVLibrary/Implementations/DVB/Graphs/DVBIP/TvCardDVBIP.cs (revision 26819)
+++ TVLibrary/Implementations/DVB/Graphs/DVBIP/TvCardDVBIP.cs (working copy)
@@ -141,15 +141,37 @@
if (!CheckThreadId()) return null;
return new DVBIPScanning(this);
}
+ }
+
+ ///
+ /// Scans the specified channel.
+ ///
+ /// The sub channel id
+ /// The channel.
+ ///
+ public override ITvSubChannel Scan(int subChannelId, IChannel channel)
+ {
+ return DoTune(subChannelId, channel, true);
}
///
+ /// Tunes the specified channel.
+ ///
+ /// The sub channel id
+ /// The channel.
+ ///
+ public override ITvSubChannel Tune(int subChannelId, IChannel channel)
+ {
+ return DoTune(subChannelId, channel, false);
+ }
+
+ ///
/// Tune to channel
///
///
///
///
- public ITvSubChannel Tune(int subChannelId, IChannel channel)
+ private ITvSubChannel DoTune(int subChannelId, IChannel channel, bool ignorePMT)
{
Log.Log.WriteFile("dvbip: Tune:{0}", channel);
ITvSubChannel ch = null;
@@ -214,7 +236,19 @@
ch = _mapSubChannels[subChannelId];
Log.Log.Info("dvbip: tune: Running graph for channel {0}", ch.ToString());
Log.Log.Info("dvbip: tune: SubChannel {0}", ch.SubChannelId);
- RunGraph(ch.SubChannelId, dvbipChannel.Url);
+
+ try
+ {
+ RunGraph(ch.SubChannelId, dvbipChannel.Url);
+ }
+ catch (TvExceptionNoPMT)
+ {
+ if (!ignorePMT)
+ {
+ throw;
+ }
+ }
+
Log.Log.Info("dvbip: tune: Graph running. Returning {0}", ch.ToString());
return ch;
}