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; } }); }
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(); }