From: <ste...@us...> - 2011-02-15 15:19:25
|
Revision: 4111 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=4111&view=rev Author: steve44src Date: 2011-02-15 15:19:19 +0000 (Tue, 15 Feb 2011) Log Message: ----------- - just one more Modified Paths: -------------- trunk/plugins/MP4IPSymcon/MP4IPSymcon/IPSWindow.cs trunk/plugins/MP4IPSymcon/MP4IPSymcon/IPSWindowManager.cs trunk/plugins/MP4IPSymcon/MP4IPSymcon/Main.cs trunk/plugins/MP4IPSymcon/MP4IPSymcon/MsgListener.cs Modified: trunk/plugins/MP4IPSymcon/MP4IPSymcon/IPSWindow.cs =================================================================== --- trunk/plugins/MP4IPSymcon/MP4IPSymcon/IPSWindow.cs 2011-02-15 14:50:36 UTC (rev 4110) +++ trunk/plugins/MP4IPSymcon/MP4IPSymcon/IPSWindow.cs 2011-02-15 15:19:19 UTC (rev 4111) @@ -28,18 +28,16 @@ protected int winId = 0; protected string skin; - protected Main instance; public IPSWindow() { this.winId = 5090; this.skin = "ipsymcon.xml"; } - public IPSWindow(Main instance, int id, string skin) + public IPSWindow(int id, string skin) { this.winId = id; this.skin = skin; - this.instance = instance; } public override int GetID @@ -84,14 +82,14 @@ bool scannedPage = false; protected void unregisterEventHandler() { - instance.listener.unregister(this); + IPSWindowManager.getIPSWindowManager().getMsgListener().unregister(this); } // scan loaded controls and register IPS Handler with it protected void registerEventHandler() { if( scannedPage ) { - instance.listener.register(this); + IPSWindowManager.getIPSWindowManager().getMsgListener().register(this); return; } Log.Debug( "scanning controls"); @@ -122,7 +120,7 @@ { if( !IPSWindowManager.getIPSWindowManager().hasWindow(oid) ) { Log.Debug("Creating new IPS Window ({0},'{1}')", oid, fmt); - IPSWindow ipswin = new IPSWindow(instance, oid, fmt); + IPSWindow ipswin = new IPSWindow( oid, fmt); GUIWindow window = (GUIWindow)ipswin; GUIWindowManager.Add(ref window); if( ipswin.Init() ) { @@ -193,7 +191,7 @@ } }//for scannedPage = true; - instance.listener.register(this); + IPSWindowManager.getIPSWindowManager().getMsgListener().register(this); } protected override void OnClicked(int controlId, GUIControl control, Modified: trunk/plugins/MP4IPSymcon/MP4IPSymcon/IPSWindowManager.cs =================================================================== --- trunk/plugins/MP4IPSymcon/MP4IPSymcon/IPSWindowManager.cs 2011-02-15 14:50:36 UTC (rev 4110) +++ trunk/plugins/MP4IPSymcon/MP4IPSymcon/IPSWindowManager.cs 2011-02-15 15:19:19 UTC (rev 4111) @@ -8,6 +8,7 @@ */ using System; using System.Collections.Generic; +using System.Threading; namespace MP4IPSymcon { @@ -43,5 +44,32 @@ return ipsWindows.ContainsKey(id); } + private MsgListener listener; + Thread listenerThread; + + public MsgListener getMsgListener() { + return listener; + } + + public void stopEventListener() { + if (listener != null) + { + listener.Stop(); + listenerThread.Abort(); + } + } + + public void startEventListener() + { + // lazy start listener + if( listener == null ) { + listener = new MsgListener(); + listenerThread = new Thread(listener.Run); + listenerThread.Name = "MP4IPSymcon::MsgListener"; + listenerThread.Start(); + } + } + + } } Modified: trunk/plugins/MP4IPSymcon/MP4IPSymcon/Main.cs =================================================================== --- trunk/plugins/MP4IPSymcon/MP4IPSymcon/Main.cs 2011-02-15 14:50:36 UTC (rev 4110) +++ trunk/plugins/MP4IPSymcon/MP4IPSymcon/Main.cs 2011-02-15 15:19:19 UTC (rev 4111) @@ -86,7 +86,7 @@ public override bool Init() { - Log.Debug("Main starting, version {0}", Assembly.GetExecutingAssembly().GetName().Version); + Log.Debug("Main Init(), version {0}", Assembly.GetExecutingAssembly().GetName().Version); Log.Debug("Loading config ... "); string host = "localhost"; using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings("MediaPortal.xml")) @@ -97,38 +97,19 @@ Services.createInstance(host); IPSWindowManager.getIPSWindowManager().registerWindow(this.GetID, this ); - - startEventListener(); + IPSWindowManager.getIPSWindowManager().startEventListener(); + IPSWindowManager.getIPSWindowManager().getMsgListener().register(this); - this.instance = this; - bool r = base.Init(); return r; } public override void DeInit() { - if (listener != null) - { - //listener.Stop(); - //listenerThread.Abort(); - } + Log.Debug("Main DeInit()"); base.DeInit(); } - public MsgListener listener; - Thread listenerThread; - private void startEventListener() - { - // lazy start listener - if( listener == null ) { - listener = new MsgListener(this); - listenerThread = new Thread(listener.Run); - listenerThread.Name = "MP4IPSymcon::MsgListener"; - listenerThread.Start(); - } - } - } } Modified: trunk/plugins/MP4IPSymcon/MP4IPSymcon/MsgListener.cs =================================================================== --- trunk/plugins/MP4IPSymcon/MP4IPSymcon/MsgListener.cs 2011-02-15 14:50:36 UTC (rev 4110) +++ trunk/plugins/MP4IPSymcon/MP4IPSymcon/MsgListener.cs 2011-02-15 15:19:19 UTC (rev 4111) @@ -16,9 +16,8 @@ private volatile bool go = true; private int nonDispatchable = 0; - public MsgListener(IPSWindow inst) + public MsgListener() { - this.inst = inst; } public void Stop() @@ -75,6 +74,7 @@ if (msg.Message == UPDATE_VAR) { List<Observer> observers = inst.getObservers(msg.SenderID); + Log.Debug("dispatching UPDATE_VAR to win {0}", inst.GetID ); if( observers != null ) { foreach (Observer o in observers) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |