Esempio n. 1
0
        private void ListCameras(IEnumerable <ManufacturersManufacturer> m, ref List <Uri> lp)
        {
            foreach (var s in m)
            {
                var cand = s.url.ToList();
                cand = cand.OrderBy(p => p.Source).ToList();

                foreach (var u in cand)
                {
                    Uri addr;
                    Uri audioUri          = null;
                    int audioSourceTypeID = -1;
                    addr = Conf.GetAddr(u, Uri, Channel, Username, Password);
                    if (!lp.Contains(addr))
                    {
                        lp.Add(addr);
                        URLScan?.Invoke(addr, EventArgs.Empty);

                        bool found = Helper.TestAddress(addr, u, Username, Password);
                        if (found)
                        {
                            if (!string.IsNullOrEmpty(u.AudioSource))
                            {
                                audioUri          = Conf.GetAddr(u, Uri, Channel, Username, Password, true);
                                audioSourceTypeID = Conf.GetSourceType(u.AudioSource, 1);
                            }
                            ManufacturersManufacturerUrl u1 = u;

                            URLFound?.Invoke(this,
                                             new ConnectionOptionEventArgs(new ConnectionOption(addr, audioUri,
                                                                                                Conf.GetSourceType(u1.Source, 2), audioSourceTypeID, u1)));
                        }
                    }
                    if (Quiturlscanner)
                    {
                        ScanComplete?.Invoke(this, EventArgs.Empty);
                        return;
                    }
                }
            }
            ScanComplete?.Invoke(this, EventArgs.Empty);
        }
Esempio n. 2
0
        private void ListCameras(IEnumerable <ManufacturersManufacturer> m, ref List <Uri> lp)
        {
            foreach (var s in m)
            {
                var cand = s.url.ToList();
                cand = cand.OrderBy(p => p.Source).ToList();

                foreach (var u in cand)
                {
                    Uri addr;
                    Uri audioUri          = null;
                    int audioSourceTypeID = -1;
                    switch (u.prefix.ToUpper())
                    {
                    default:
                        addr = Conf.GetAddr(u, Uri, Channel, Username, Password);
                        if (!lp.Contains(addr))
                        {
                            lp.Add(addr);
                            URLScan?.Invoke(addr, EventArgs.Empty);
                            if (Helper.TestHttpurl(addr.ToString(), u.cookies, Username, Password))
                            {
                                if (!string.IsNullOrEmpty(u.AudioSource))
                                {
                                    audioUri          = Conf.GetAddr(u, Uri, Channel, Username, Password, true);
                                    audioSourceTypeID = Conf.GetSourceType(u.AudioSource, 1);
                                }

                                ManufacturersManufacturerUrl u1 = u;
                                URLFound?.Invoke(this,
                                                 new ConnectionOptionEventArgs(new ConnectionOption(addr, audioUri, Conf.GetSourceType(u1.Source, 2), audioSourceTypeID, u1)));
                            }
                        }

                        break;

                    case "RTSP://":
                        addr = Conf.GetAddr(u, Uri, Channel, Username, Password);
                        if (!lp.Contains(addr))
                        {
                            lp.Add(addr);
                            URLScan?.Invoke(addr, EventArgs.Empty);
                            if (Helper.TestRtspurl(addr, Username, Password))
                            {
                                if (!string.IsNullOrEmpty(u.AudioSource))
                                {
                                    audioUri          = Conf.GetAddr(u, Uri, Channel, Username, Password, true);
                                    audioSourceTypeID = Conf.GetSourceType(u.AudioSource, 1);
                                }
                                ManufacturersManufacturerUrl u1 = u;

                                URLFound?.Invoke(this,
                                                 new ConnectionOptionEventArgs(new ConnectionOption(addr, audioUri,
                                                                                                    Conf.GetSourceType(u1.Source, 2), audioSourceTypeID, u1)));
                            }
                        }
                        break;
                    }
                    if (Quiturlscanner)
                    {
                        break;
                    }
                }
                if (Quiturlscanner)
                {
                    break;
                }
            }
            ScanComplete?.Invoke(this, EventArgs.Empty);
        }