void server__ConnectionStateChanged(object sender, Casparcg.Core.Network.ConnectionEventArgs e) { try { if (ConnectionStatusChanged != null) { ConnectionStatusChanged(this, e); } } catch { } if (e.Connected) { Connection.SendString("VERSION"); //Ask server for channels Connection.SendString("INFO"); //For compability with legacy users try { if (Connected != null) { Connection.SendString("TLS"); Connected(this, new Casparcg.Core.Network.NetworkEventArgs(e.Hostname, e.Port)); } } catch { } } else { lock (this) { try { if (!bIsDisconnecting && Settings.AutoConnect) { Connection.ConnectionStateChanged -= server__ConnectionStateChanged; ReconnectionHelper = new Casparcg.Core.Network.ReconnectionHelper(Connection, Settings.ReconnectInterval); ReconnectionHelper.Reconnected += ReconnectionHelper_Reconnected; ReconnectionHelper.Start(); } } catch { } bIsDisconnecting = false; } //For compability with legacy users try { if (Disconnected != null) { Disconnected(this, new Casparcg.Core.Network.NetworkEventArgs(e.Hostname, e.Port)); } } catch { } } }
void ReconnectionHelper_Reconnected(object sender, Casparcg.Core.Network.ConnectionEventArgs e) { lock (this) { ReconnectionHelper.Close(); ReconnectionHelper = null; Connection.ConnectionStateChanged += server__ConnectionStateChanged; } server__ConnectionStateChanged(Connection, e); }