Exemple #1
0
        private void NotifyList(ArrayList list, IResource resource, IPropertyChangeSet changeSet, bool deleting)
        {
            bool needCompact = false;
            int  startCount  = list.Count;

            for (int index = 0; index < startCount; index++)
            {
                IUpdateListener listener = null;
                lock ( list )
                {
                    WeakReference weakRef = (WeakReference)list [index];
                    if (!weakRef.IsAlive || weakRef.Target == null)
                    {
                        needCompact = true;
                        continue;
                    }
                    listener = (IUpdateListener)weakRef.Target;
                }
                if (deleting)
                {
                    listener.ResourceDeleting(resource);
                }
                else
                {
                    listener.ResourceSaved(resource, changeSet);
                }
            }
            if (needCompact && _reentryLevel == 1)
            {
                CompactList(list);
            }
        }
        public CpDeviceUpdateList(NetworkAdapter aAdapter, Preferences aPreferences, IUpdateListener aUpdateListener, CpDeviceReprogramListRepeater aRepeater, FirmwareCache aCache, VersionInfoReader aVersionInfoReader, ChangedHandler aAdded, ChangedHandler aRemoved)
        {
            iLock                 = new object();
            iDisposed             = false;
            iVersionInfoAvailable = false;

            iAdded   = aAdded;
            iRemoved = aRemoved;

            iPreferences = aPreferences;
            iPreferences.EventFirmwareBetaChanged += HandleFirmwareBetaChanged;

            iUpdateListener = aUpdateListener;
            iCache          = aCache;
            iVersionReader  = aVersionInfoReader;
            iVersionReader.EventVersionInfoAvailable += VersionInfoAvailable;

            iPendingList = new List <CpDeviceReprogrammable>();
            //iDeviceList = new CpDeviceReprogramList(Added, Removed);
            iRepeater          = aRepeater;
            iRepeater.Added   += Added;
            iRepeater.Removed += Removed;
            iDeviceUpdateList  = new List <CpDeviceUpdate>();

            SetAdapter(aAdapter);
        }
Exemple #3
0
 /// <summary>
 /// 检查更新
 /// </summary>
 /// <param name="url"></param>
 /// <param name="customData"></param>
 /// <param name="listener"></param>
 public void CheckUpdate(string url, JObject customData, IUpdateListener listener)
 {
     this.CheckUpdateUrl = url;
     this.CustomData     = customData;
     this.Listener       = listener;
     CheckUpdate();
 }
Exemple #4
0
 /// <summary>
 /// 检查更新
 /// </summary>
 /// <param name="url"></param>
 /// <param name="customData"></param>
 /// <param name="listener"></param>
 public void CheckUpdate(int versionCode, string url, Dictionary <object, object> customData, IUpdateListener listener)
 {
     this.VersionCode    = versionCode;
     this.CheckUpdateUrl = url;
     this.CustomData     = customData;
     this.Listener       = listener;
     CheckUpdate();
 }
Exemple #5
0
        public AdvancedPage(IInvoker aInvoker, NetworkAdapter aAdapter, IUpdateListener aUpdateListener, CpDeviceReprogramListRepeater aRepeater, VersionInfoReader aVersionReader, string aId, string aViewId)
            : base(aId, aViewId)
        {
            iLock    = new object();
            iInvoker = aInvoker;

            iDeviceListAdvanced = new List <CpDeviceAdvanced>();
            iAdvancedList       = new CpDeviceAdvancedList(aAdapter, aUpdateListener, aRepeater, aVersionReader, Added, Removed);
        }
Exemple #6
0
 private void RemoveUpdateListenerFromList(ArrayList list, IUpdateListener listener)
 {
     for (int i = list.Count - 1; i >= 0; i--)
     {
         WeakReference weakRef = (WeakReference)list [i];
         if (weakRef.IsAlive && weakRef.Target == listener)
         {
             weakRef.Target = null;
         }
     }
 }
        public CpDeviceFacDef(CpDeviceReprogrammable aDevice, IPAddress aAdapterAddress, IUpdateListener aUpdateListener)
        {
            iLock           = new object();
            iAdapterAddress = aAdapterAddress;

            iDevice          = aDevice;
            iDevice.Changed += HandleChanged;

            iUpdateListener = aUpdateListener;

            iUglyname = string.Format("linn-{0}", aDevice.MacAddress.Replace(":", "").Substring(6, 6));
        }
        public CpDeviceFacDefList(NetworkAdapter aAdapter, IUpdateListener aUpdateListener, CpDeviceReprogramListRepeater aRepeater, ChangedHandler aAdded, ChangedHandler aRemoved)
        {
            iLock     = new object();
            iDisposed = false;

            iAdded   = aAdded;
            iRemoved = aRemoved;

            iUpdateListener = aUpdateListener;

            //iDeviceList = new CpDeviceReprogramList(Added, Removed);
            iRepeater         = aRepeater;
            iDeviceFacDefList = new List <CpDeviceFacDef>();

            SetAdapter(aAdapter);
        }
        public CpDeviceAdvanced(CpDeviceReprogrammable aDevice, string aVariant, IPAddress aAdapterAddress, IUpdateListener aUpdateListener)
        {
            iLock     = new object();
            iDisposed = false;

            iDevice                  = aDevice;
            iDevice.Changed         += HandleChanged;
            iDevice.ProgressChanged += HandleProgressChanged;
            iDevice.MessageChanged  += HandleMessageChanged;

            iVariant = aVariant;

            iAdapterAddress = aAdapterAddress;
            iUpdateListener = aUpdateListener;

            iUglyname = string.Format("linn-{0}", aDevice.MacAddress.Replace(":", "").Substring(6, 6));
        }
        public CpDeviceUpdate(CpDeviceReprogrammable aDevice, Firmware aFirmware, IFirmwareManager aFirmwareManager, IPAddress aAdapterAddress, IUpdateListener aUpdateListener)
        {
            iLock           = new object();
            iDisposed       = false;
            iAdapterAddress = aAdapterAddress;

            iDevice                  = aDevice;
            iDevice.Changed         += HandleChanged;
            iDevice.ProgressChanged += HandleProgressChanged;
            iDevice.MessageChanged  += HandleMessageChanged;

            iUpdateListener = aUpdateListener;

            iUglyname = string.Format("linn-{0}", aDevice.MacAddress.Replace(":", "").Substring(6, 6));

            iFirmware        = aFirmware;
            iFirmwareManager = aFirmwareManager;
        }
        public CpDeviceAdvancedList(NetworkAdapter aAdapter, IUpdateListener aUpdateListener, CpDeviceReprogramListRepeater aRepeater, VersionInfoReader aVersionReader, ChangedHandler aAdded, ChangedHandler aRemoved)
        {
            iLock     = new object();
            iDisposed = false;

            iUpdateListener = aUpdateListener;
            iVersionReader  = aVersionReader;

            iAdded   = aAdded;
            iRemoved = aRemoved;

            iDeviceListAdvanced = new List <CpDeviceAdvanced>();

            iRepeater          = aRepeater;
            iRepeater.Added   += Added;
            iRepeater.Removed += Removed;

            SetAdapter(aAdapter);
        }
Exemple #12
0
        public void RemoveUpdateListener(IUpdateListener listener, bool priority)
        {
            int knownType = listener.GetKnownType();

            if (knownType >= 0)
            {
                ArrayList list;
                lock ( _typedUpdateListeners )
                {
                    list = (ArrayList)_typedUpdateListeners [knownType];
                }

                if (list != null)
                {
                    lock ( list )
                    {
                        RemoveUpdateListenerFromList(list, listener);
                    }
                }
            }
            else if (priority)
            {
                lock ( _priorityUpdateListeners )
                {
                    RemoveUpdateListenerFromList(_untypedUpdateListeners, listener);
                }
            }
            else
            {
                lock ( _untypedUpdateListeners )
                {
                    RemoveUpdateListenerFromList(_untypedUpdateListeners, listener);
                }
            }
            lock ( _allUpdateListeners )
            {
                RemoveUpdateListenerFromList(_allUpdateListeners, listener);
            }
            CompactList(_allUpdateListeners);
        }
Exemple #13
0
        public void AddUpdateListener(IUpdateListener listener, bool priority)
        {
            int knownType = listener.GetKnownType();

            if (knownType >= 0)
            {
                ArrayList list;
                lock ( _typedUpdateListeners )
                {
                    list = (ArrayList)_typedUpdateListeners [knownType];
                    if (list == null)
                    {
                        list = new ArrayList();
                        _typedUpdateListeners [knownType] = list;
                    }
                }
                lock ( list )
                {
                    list.Add(new WeakReference(listener));
                }
            }
            else if (priority)
            {
                lock ( _priorityUpdateListeners )
                {
                    _priorityUpdateListeners.Add(new WeakReference(listener));
                }
            }
            else
            {
                lock ( _untypedUpdateListeners )
                {
                    _untypedUpdateListeners.Add(new WeakReference(listener));
                }
            }
            lock ( _allUpdateListeners )
            {
                _allUpdateListeners.Add(new WeakReference(listener));
            }
        }
Exemple #14
0
        public XappController(IInvoker aInvoker, IHelper aHelper, INetworkManager aNetworkManager, Preferences aPreferences, PageBase aPageSettings, IUpdateListener aUpdateListener)
        {
            iNetworkManager = aNetworkManager;
            iNetworkManager.AdapterListChanged += HandleAdapterListChanged;

            iFramework = new Framework <TrackerSession>(OpenHome.Xen.Environment.AppPath + "/presentation");
            iFramework.AddCss("css/global.css");

            iRepeater = new CpDeviceReprogramListRepeater();

            iCache = new FirmwareCache(aHelper.DataPath.FullName);

            VersionInfoReader.EUpdateType updateTypes = VersionInfoReader.EUpdateType.Stable;
            if (aPreferences.FirmwareBeta)
            {
                updateTypes |= VersionInfoReader.EUpdateType.Beta;
            }
            iVersionReader = new VersionInfoReader(VersionInfoReader.kDefaultUpdatesUrl, 1000 * 60 * 60 * 12, aHelper.DataPath.FullName, updateTypes, iCache);

            XappView mainView = new XappView("main", OpenHome.Xen.Environment.AppPath + "/presentation");

            iMainPage = new MainPage(aInvoker, iNetworkManager.AdapterList.Adapter, aPreferences, aUpdateListener, iRepeater, "main", mainView.Id);
            iFramework.AddPage(iMainPage);
            iFramework.AddView(mainView);

            XappView updateView = new XappView("update", OpenHome.Xen.Environment.AppPath + "/presentation");

            iUpdatePage = new UpdatePage(aInvoker, iNetworkManager.AdapterList.Adapter, aPreferences, aUpdateListener, iRepeater, iCache, iVersionReader, "update", updateView.Id);
            iUpdatePage.NumUpdateableChanged += HandleNumUpdateableChanged;
            iFramework.AddPage(iUpdatePage);
            iFramework.AddView(updateView);

            XappView settingsView = new XappView(aPageSettings.Id, OpenHome.Xen.Environment.AppPath + "/presentation");

            iSettingsPage = aPageSettings;
            iFramework.AddPage(iSettingsPage);
            iFramework.AddView(settingsView);

            XappView diagnosticsView = new XappView("diagnostics", OpenHome.Xen.Environment.AppPath + "/presentation");

            iDiagnosticsPage = new DiagnosticsPage(aInvoker, aHelper, aPreferences, "diagnostics", diagnosticsView.Id);
            iDiagnosticsPage.NumDiagnosticsChanged += HandleNumDiagnosticsChanged;
            iFramework.AddPage(iDiagnosticsPage);
            iFramework.AddView(diagnosticsView);

            XappView advancedView = new XappView("advanced", OpenHome.Xen.Environment.AppPath + "/presentation");

            iAdvancedPage = new AdvancedPage(aInvoker, iNetworkManager.AdapterList.Adapter, aUpdateListener, iRepeater, iVersionReader, "advanced", advancedView.Id);
            iFramework.AddPage(iAdvancedPage);
            iFramework.AddView(advancedView);


            XappView aboutView = new XappView("about", OpenHome.Xen.Environment.AppPath + "/presentation");

            iAboutPage = new AboutPage(aInvoker, aHelper, "about", aboutView.Id);
            iFramework.AddPage(iAboutPage);
            iFramework.AddView(aboutView);

            iWebServer = new WebServer(iFramework);

            iVersionReader.Start();
        }
Exemple #15
0
 public void RemoveUpdaterListener(IUpdateListener listener)
 {
     updaterList.Remove(listener);
 }
Exemple #16
0
 public void AddUpdaterListener(IUpdateListener listener)
 {
     updaterList.Add(listener);
 }
Exemple #17
0
 public static void Unregister(IUpdateListener listener)
 {
     m_dirty = m_listeners.Remove(listener);
 }
Exemple #18
0
 public void AddUpdateListener(IUpdateListener obj)
 {
     updateList.Add(obj);
 }
Exemple #19
0
        public MainPage(IInvoker aInvoker, NetworkAdapter aAdapter, Preferences aPreferences, IUpdateListener aUpdateListener, CpDeviceReprogramListRepeater aRepeater, string aId, string aViewId)
            : base(aId, aViewId)
        {
            iInvoker = aInvoker;

            iPreferences = aPreferences;

            iLock = new object();
            iDeviceListRecognised = new List <CpDeviceRecognised>();

            List <IRecogniser> recognisers = new List <IRecogniser>();

            recognisers.Add(new RecogniserLinn());
            recognisers.Add(new RecogniserSonos());
            recognisers.Add(new RecogniserMediaServer());
            iRecogniserList = new CpDeviceRecogniserList(recognisers, Added, Removed);
        }
Exemple #20
0
        public UpdatePage(IInvoker aInvoker, NetworkAdapter aAdapter, Preferences aPreferences, IUpdateListener aUpdateListener, CpDeviceReprogramListRepeater aRepeater, FirmwareCache aCache, VersionInfoReader aVersionReader, string aId, string aViewId)
            : base(aId, aViewId)
        {
            iInvoker = aInvoker;

            iLock = new object();
            iDeviceListUpdateable = new List <CpDeviceUpdate>();

            iReprogramList = new CpDeviceUpdateList(aAdapter, aPreferences, aUpdateListener, aRepeater, aCache, aVersionReader, Added, Removed);
        }
Exemple #21
0
 public static void Register(IUpdateListener listener)
 {
     m_dirty = m_listeners.Add(listener);
 }