void OnInfo(AMCPParserEventArgs e) { List <ChannelInfo> channelInfo = new List <ChannelInfo>(); foreach (string data in e.Data) { try { XmlDocument doc = new XmlDocument(); doc.LoadXml(data); device_.OnUpdateInfo(doc); } catch { try { string[] infos = data.Split(' '); int id = Int32.Parse(infos[0]); VideoMode vm = VideoMode.Unknown; switch (infos[1].Trim().ToLower()) { case "pal43": vm = VideoMode.PAL43; break; case "pal169": vm = VideoMode.PAL169; break; case "ntsc": vm = VideoMode.NTSC; break; case "576p2500": vm = VideoMode.SD576p2500; break; case "720p5000": vm = VideoMode.HD720p5000; break; case "1080i5000": vm = VideoMode.HD1080i5000; break; default: vm = VideoMode.Unknown; break; } ChannelStatus cs = (ChannelStatus)Enum.Parse(typeof(ChannelStatus), infos[2], true); channelInfo.Add(new ChannelInfo(id, vm, cs, "")); } catch { } } } if (channelInfo.Count > 0) { device_.OnUpdatedChannelInfo(channelInfo); } }