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.";
        }
        public void SetStreamingSource(string source)
        {
            Logs.Clear();
            TraceLogs.Clear();
            ResetChartViewModel();

            SmoothStreamingSource = source;
            IsPlayerEmbedded      = true;

            if (!SavedSources.Contains(source))
            {
                SavedSources.Add(source);
                SavedSourcesDataClient.Save(SavedSources);
            }
        }