private void SourceStream_Stopped(object sender, StreamStoppedEventArgs args) { WriteLock(() => { if (!Object.ReferenceEquals(sender, sourceStream)) { return; } foreach (var os in outputStreams) { os.Stop(); } outputStreams = new List <IOutputStream>(); uptimeTimer.Stop(); }); OnClosed(args.StopReason); }
public void OnChannelClosed(object sender, StreamStoppedEventArgs args) { var channel = (Channel)sender; switch (args.StopReason) { case StopReason.OffAir: { var msg = new NotificationMessage( channel.ChannelInfo.Name, "チャンネルが終了しました", NotificationMessageType.Info); NotifyMessage(msg); } break; case StopReason.NoHost: case StopReason.ConnectionError: { var msg = new NotificationMessage( channel.ChannelInfo.Name, "チャンネルに接続できませんでした", NotificationMessageType.Error); NotifyMessage(msg); } break; } }
protected virtual void OnSourceConnectionStopped(object sender, StreamStoppedEventArgs args) { EventQueue.Enqueue(new ConnectionStoppedEvent(sender as ISourceConnection, args.StopReason)); }