コード例 #1
0
        /// <summary>
        /// Sonos Suchen (Start Scan)
        /// </summary>
        private static Boolean InitialSonos()
        {
            try
            {
                // ReSharper disable once InconsistentlySynchronizedField
                Sonos = new SonosDiscovery();
                lock (Sonos)
                {
                    Sonos.StartScan();
                    Boolean  ok       = false;
                    DateTime startnow = DateTime.Now;
                    while (!ok)
                    {
                        //Timer, falls das suchen länger als 360 Sekunden dauet abbrechen
                        int tdelta = (DateTime.Now - startnow).Seconds;
                        if (Sonos.Players.Count > 0 || tdelta > 360)
                        {
                            ok = true;
                        }
                    }

                    Sonos.TopologyChanged += Sonos_TopologyChanged;
                }
                return(true);
            }
            catch (Exception x)
            {
                ServerErrorsAdd("SonosHelper:InitialSonos", x);
                return(false);
            }
        }
コード例 #2
0
        public override async Task <bool> Start()
        {
            var ip = String.Empty;

            if (_useFixedIp.HasValue && _useFixedIp.Value)
            {
                ip = _ip;
            }
            else
            {
                var scan = await SonosDiscovery.DiscoverSonos();

                if (scan.Count == 0)
                {
                    DriverContext.Logger.LogError($"Could not find any sonos device..");
                    return(false);
                }

                var device = scan.FirstOrDefault(a => a.Uuid == _id);

                if (device == null)
                {
                    DriverContext.Logger.LogError($"Could not find sonos device with id {_id}..");
                    return(false);
                }

                ip = device.Location.Host;
            }

            _controller = _sonosControllerFactory.Create(ip);
            return(await base.Start());
        }
コード例 #3
0
ファイル: MainWindow.xaml.cs プロジェクト: talun2075/SonosAPI
 public MainWindow()
 {
     InitializeComponent();
     _sonos = new SonosDiscovery();
     _sonos.StartScan();
     _sonos.TopologyChanged += _sonos_TopologyChanged;
 }
コード例 #4
0
ファイル: SonosDriver.cs プロジェクト: vsssunder/automatica
        public override async Task <IList <NodeInstance> > Scan()
        {
            var ret     = new List <NodeInstance>();
            var devices = await SonosDiscovery.DiscoverSonos();

            foreach (var device in devices)
            {
                if (_existingDevices.ContainsKey(device.Uuid))
                {
                    continue;
                }

                var node = DriverContext.NodeTemplateFactory.CreateNodeInstance(SonosDriverFactory.SonosDeviceGuid);
                node.Name = device.Uuid;

                var id = node.GetProperty(SonosDriverFactory.IdAddressPropertyKey);
                id.Value = device.Uuid;

                var ip = node.GetProperty(SonosDriverFactory.IpAddressPropertyKey);
                ip.Value = device.Location.Host;

                ret.Add(node);
            }

            return(ret);
        }
コード例 #5
0
 protected override void OnStartup(StartupEventArgs e)
 {
     log = Logger.GetLogger(GetType());
     AppDomain.CurrentDomain.UnhandledException += HandleException;
     DispatcherUnhandledException += HandleDispatcherException;
     base.OnStartup(e);
     discovery = new SonosDiscovery();
     discovery.TopologyChanged += TopologyChanged;
     server = new HttpServer();
 }
コード例 #6
0
        static async Task Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            var discover = await SonosDiscovery.DiscoverSonos();

            var controller = new SonosControllerFactory().Create("192.168.8.105");

            var data = await controller.GetMediaInfoAsync();
        }
コード例 #7
0
ファイル: SonosHandler.cs プロジェクト: Bold-Taco/SILO
 public SonosHandler()
 {
     d = new SonosDiscovery();
     d.StartScan();
     Thread.Sleep(5000);
 }