public MainViewModel()
        {
            TraceLogs                 = new ObservableCollection <TraceLog>();
            Logs                      = new ObservableCollection <Log>();
            ChartViewModel            = new SuperChartViewModel();
            ChartViewModel.Charts     = new ObservableCollection <ChartViewModel>();
            ChartViewModel.ChartLines = new List <ChartLineViewModel>();

            AddCharts(ChartViewModel.Charts);

            SavedSources = new ObservableCollection <string>();
            foreach (string source in SavedSourcesDataClient.Load().Distinct())
            {
                SavedSources.Add(source);
            }

            SavedPlayers = new ObservableCollection <string>();
            foreach (string player in SavedPlayersDataClient.Load().Distinct())
            {
                SavedPlayers.Add(player);
            }

            connectExternalCommand = new DelegateCommand <string>(ConnectExternal);
            playInternalCommand    = new DelegateCommand <string>(SetStreamingSource);
            saveTraceCommand       = new DelegateCommand(SaveTrace);
            saveLogsCommand        = new DelegateCommand(SaveLogs);

            LoggingService.Current.LogReceived += embeddedLogger_LogReceived;

            Instruction = "Enter a stream URL above or connect to an external player.";
        }
        private void ConnectExternal(string channelName)
        {
            if (!SavedPlayers.Contains(channelName) && !string.IsNullOrEmpty(channelName))
            {
                SavedPlayers.Add(channelName);
                SavedPlayersDataClient.Save(SavedPlayers);
            }

            OpenChannel(channelName);

            Instruction = "Connecting to external player...";
            StopVideo();
        }