/[xmltv_parser]/trunk/libxmltv/Core/XMLTVChannelCollection.cs
ViewVC logotype

Diff of /trunk/libxmltv/Core/XMLTVChannelCollection.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

--- trunk/libxmltv/Core/XMLTVChannelCollection.cs	2013/03/08 02:13:59	36
+++ trunk/libxmltv/Core/XMLTVChannelCollection.cs	2013/03/08 04:01:25	46
@@ -5,16 +5,21 @@
 using libxmltv.Interfaces;
 using System.Diagnostics;
 using System.Xml.Linq;
+using System.Windows.Forms;
 
 namespace libxmltv.Core
 {
-    internal class XMLTVChannelCollection
+    internal class XMLTVChannelCollection : IDisposable
     {
         private Dictionary<string, IXMLTVChannel> entries = new Dictionary<string, IXMLTVChannel>();
+        internal static void CreateInstance(XMLTVRuntimeInstance xmltv)
+        {
+            using (XMLTVChannelCollection g = new XMLTVChannelCollection(xmltv)) { g.instance.Channels = g.Collection; }
+        }
         private XMLTVRuntimeInstance instance;
         public XMLTVChannelCollection(XMLTVRuntimeInstance xmltv)
         {
-            XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Creating Instance of XMLTVChannelCollection");
+            xmltv_logger.Log.Verbose.Debug.WriteLine("Creating Instance of XMLTVChannelCollection");
             //IXMLTV_PARSER _xmltv;
             //if (!Internals.VerifyInstance<IXMLTV_PARSER>(xmltv, out _xmltv)) { return; }
             //XMLTV_PARSER = _xmltv;
@@ -36,14 +41,24 @@
 
             foreach (var c in doc.Descendants(XMLTVConstants.CHANNEL_ELEMENT))
             {
+                if (instance.IsAborting)
+                {
+                    break;
+                }
                 Channel channel = new Channel(c);
                 entries.Add(channel.Id, channel);
+                Application.DoEvents();
             }
+            //instance.Channels = Collection;
         }
         public override string ToString()
         {
-            //return string.Format("XmlTv Source: '{0}' (Generated by: '{1}') (support: '{2}')", SourceName, GeneratorName, GeneratorUrl);
-            return string.Empty;
+            return string.Format("Channel Count: {0}", Collection == null ? 0 : Collection.Count);
+        }
+
+        public void Dispose()
+        {
+            //throw new NotImplementedException();
         }
     }
     [Serializable]
@@ -61,10 +76,14 @@
         {
             // get the channel id
             Id = e.Attribute(XMLTVConstants.Channels.ChannelId).Value;
+            xmltv_logger.Log.Verbose.Debug.WriteLine("\tchannel_id: {0}", Id);
             var names = e.Descendants(XMLTVConstants.Channels.ChannelDisplayName).ToList();
             Number = Convert.ToInt32(names[1].Value);
+            xmltv_logger.Log.Verbose.Debug.WriteLine("\tchannel_number: {0}", Number);
             CallSign = names[2].Value;
+            xmltv_logger.Log.Verbose.Debug.WriteLine("\tchannel_callsign: {0}", CallSign);
             Name = names[3].Value;
+            xmltv_logger.Log.Verbose.Debug.WriteLine("\tchannel_name: {0}", Name);
         }
         #region IXMLTVChannel members
         public string Id { get; private set; }

 

  ViewVC Help
Powered by ViewVC 1.1.22