Changeset 138

Show
Ignore:
Timestamp:
03/06/07 21:18:40 (1 year ago)
Author:
kbarnes3
Message:

Added an event when a server is removed from ZeroConf?

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • dmp/trunk/Bridge/Bridge.cs

    r137 r138  
    1515        public class Bridge 
    1616        { 
    17                 public event EventHandler<ServerAddedEventArgs > ServerAdded; 
     17                /// <summary> 
     18                /// Fires when a new server is connected 
     19                /// </summary> 
     20                public event EventHandler<ServerStatusEventArgs > ServerAdded; 
     21 
     22                /// <summary> 
     23                /// Fires when a server is disconnected 
     24                /// </summary> 
     25                public event EventHandler<ServerStatusEventArgs> ServerRemoved; 
    1826 
    1927                /// <summary> 
     
    5563        /// to connect to new servers. 
    5664        /// </summary> 
    57         public void performServiceLocation() 
     65        public void startZeroConf() 
    5866        { 
    5967            if (!this.myServiceLocatorStarted) 
     
    6169                this.myServiceLocatorStarted = true; 
    6270                this.myServiceLocator.Start(); 
    63             } 
    64              
    65             DataTable dbServers = db.getServersInCollection(); 
    66             System.Threading.Thread.Sleep(2000); 
    67             Dictionary<String, Service> whatDAAPFound = this.getZeroconfServerList(); 
    68             foreach (DataRow row in dbServers.Rows) 
    69             { 
    70                 string serverName = (string)row["name"]; 
    71                 Console.WriteLine("Trying to connect to " + serverName); 
    72                 if (whatDAAPFound.ContainsKey(serverName)) 
    73                 { 
    74                     Service newServer = whatDAAPFound[serverName]; 
    75                     this.AddServerConnection(newServer); 
    76                 } 
    77                 else 
    78                 { 
    79                     Console.WriteLine("Couldn't find " + serverName); 
    80                 } 
    8171            } 
    8272        } 
     
    272262 
    273263                /// <summary> 
    274                 /// Runs when ZeroConf finds a new server 
     264                /// Runs when ZeroConf finds a new server.  Adds the server if it's been seen before 
    275265                /// </summary> 
    276266                /// <param name="o"></param> 
     
    283273                                if (addResult > -1) { 
    284274                                         
    285                                         this.ServerAdded(this, new ServerAddedEventArgs(newServer.Name, true)); 
     275                                        this.ServerAdded(this, new ServerStatusEventArgs(newServer.Name, true)); 
    286276                                } 
    287277                        } 
    288278                        else { 
    289                                 this.ServerAdded(this, new ServerAddedEventArgs(newServer.Name, false)); 
    290                         } 
    291                 } 
     279                                this.ServerAdded(this, new ServerStatusEventArgs(newServer.Name, false)); 
     280                        } 
     281                } 
     282 
     283                /// <summary> 
     284                /// Runs when ZeroConf notices a server is gone. 
     285                /// </summary> 
     286                /// <param name="o"></param> 
     287                /// <param name="args"></param> 
     288                private void ZeroConfServerLost(object o, DAAP.ServiceArgs args) { 
     289                        Service oldServer = args.Service; 
     290                        if (this.serverNameToIdList.ContainsKey(oldServer.Name)) { 
     291                                // It was connected, drop it 
     292                                int libraryId = this.serverNameToIdList[oldServer.Name]; 
     293                                if (this.clientList.ContainsKey(libraryId)) { 
     294                                        this.clientList.Remove(libraryId); 
     295                                } 
     296                                this.serverNameToIdList.Remove(oldServer.Name); 
     297                                this.ServerRemoved(this, new ServerStatusEventArgs(oldServer.Name, true)); 
     298                        } 
     299                        else { 
     300                                this.ServerRemoved(this, new ServerStatusEventArgs(oldServer.Name, false)); 
     301                        } 
     302                } 
     303 
    292304        } 
    293305 
  • dmp/trunk/Bridge/ServerStatusEventArgs.cs

    r136 r138  
    77        /// The arguments for a ServerAddedEvent 
    88        /// </summary> 
    9         public class ServerAddedEventArgs : EventArgs { 
     9        public class ServerStatusEventArgs : EventArgs { 
    1010                /// <summary> 
    1111                /// The name of the server 
     
    2323                /// <param name="theName">The name of the new server</param> 
    2424                /// <param name="isConnected">True if the server is connected, false otherwise</param> 
    25                 public ServerAddedEventArgs(String theName, bool isConnected) { 
     25                public ServerStatusEventArgs(String theName, bool isConnected) { 
    2626                        this.myServerName = theName; 
    2727                        this.myServerIsConnected = isConnected; 
    2828                } 
    2929 
     30                /// <summary> 
     31                /// True if the server is connected, false otherwise 
     32                /// </summary> 
    3033                public bool ServerIsConnected { 
    3134                        get { 
     
    3437                } 
    3538 
     39                /// <summary> 
     40                /// The name of the server 
     41                /// </summary> 
    3642                public string ServerName { 
    3743                        get { 
  • dmp/trunk/client/wpfclient/main_window.xaml.cs

    r132 r138  
    4040            myBridge.myServiceLocator.Found += serverFound; 
    4141            myBridge.myServiceLocator.Removed += serverRemoved; 
    42             myBridge.performServiceLocation(); 
     42            myBridge.startZeroConf(); 
    4343             
    4444            songView.VertScrollBar = vertScroll;