コード例 #1
0
ファイル: Stack.cs プロジェクト: daviddw/oss-public
        public void StartStack()
        {
            iScheduler.Schedule(() =>
            {
                if (!iRunningStack && iInitialised)
                {
                    EventHandler <EventArgs> eventStarted = iEventStackStarted;
                    if (eventStarted != null)
                    {
                        eventStarted(this, EventArgs.Empty);
                    }
                    iStackWatchdog.Change(kStackWatchdogTimeout, Timeout.Infinite);
                    UserLog.WriteLine("START STACK");
                    iWifiManager = (WifiManager)GetSystemService(Context.WifiService);
                    Assert.Check(iWifiManager != null, "iWifiManager != null");
                    iWifiLock = iWifiManager.CreateWifiLock("myWifiLock");
                    iWifiLock.Acquire();
                    iMulticastLock = iWifiManager.CreateMulticastLock("myMcastlock");
                    iMulticastLock.Acquire();

                    iWifiListener = new WifiListener(this, iHelperKinsky);
                    iWifiListener.Refresh(this.ApplicationContext);


                    iHelperKinsky.Stack.Start();
                    iRescanTimer.Change(kRescanWaitIntervalMilliseconds, kRescanRepeatIntervalMilliseconds);
                    UserLog.WriteLine("STACK STARTED");
                    iStackWatchdog.Change(Timeout.Infinite, Timeout.Infinite);
                    iRunningStack = true;
                }
            });
        }
コード例 #2
0
ファイル: Stack.cs プロジェクト: daviddw/oss-public
        private void StartStack()
        {
            iUserLogListener = new AndroidUserLogListener();
            UserLog.AddListener(iUserLogListener);
            iTraceListener = new AndroidTraceListener();
            Trace.AddListener(iTraceListener);
            iWifiManager = (WifiManager)GetSystemService(Context.WifiService);
            if (iWifiManager != null)
            {
                iWifiLock = iWifiManager.CreateWifiLock("myWifiLock");
                iWifiLock.Acquire();
                iMulticastLock = iWifiManager.CreateMulticastLock("myMcastlock");
                iMulticastLock.Acquire();
            }

            iHelper = new Helper(new string[0] {
            });
            OptionPageCrashDumper optionCrashDumper = new OptionPageCrashDumper("Crash Logs");

            iHelper.AddOptionPage(optionCrashDumper);
            iWifiListener = new WifiListener(this, iHelper);
            iWifiListener.Refresh(this.ApplicationContext);

            iHelper.ProcessOptionsFileAndCommandLine();
            iHelper.Stack.SetStack(this);
            iCrashLogDumper = new CrashDumper(this.ApplicationContext, Resource.Drawable.Icon, iHelper, optionCrashDumper);
            iHelper.AddCrashLogDumper(iCrashLogDumper);
            iEventServer    = new EventServerUpnp();
            iListenerNotify = new SsdpListenerMulticast();

            iHouse = new House(iListenerNotify, iEventServer, new ModelFactory());
            iHouse.EventRoomAdded   += RoomAdded;
            iHouse.EventRoomRemoved += RoomRemoved;

            iLibrary = new Library(iListenerNotify);
            iLibrary.EventMediaServerAdded   += LibraryAdded;
            iLibrary.EventMediaServerRemoved += LibraryRemoved;

            iRescanTimer          = new System.Timers.Timer(kRescanTimeoutMilliseconds);
            iRescanTimer.Elapsed += (d, e) =>
            {
                if (iHelper.Stack.Status.State == EStackState.eOk)
                {
                    try
                    {
                        if (iHouse != null)
                        {
                            iHouse.Rescan();
                        }

                        if (iLibrary != null)
                        {
                            iLibrary.Rescan();
                        }
                    }
                    catch (Exception ex)
                    {
                        UserLog.WriteLine("Error caught on rescan: " + ex);
                    }
                }
            };

            iHelper.Stack.Start();
        }