//*********************************************************************************************************************************************************************************************************** /// <summary> /// Cleanup all recorders that are stopped. Leave the last recorder in the list. /// </summary> private void CleanupRecordersList() { List <Recorder> recordersCleanedup = Recorders.Where(r => r.RecordState != RecordStates.STOPPED || Recorders.IndexOf(r) == (Recorders.Count - 1)).ToList(); Recorders.Clear(); foreach (Recorder item in recordersCleanedup) { Recorders.Add(item); } }
//*********************************************************************************************************************************************************************************************************** private void StartRecord() { PlayerApp.ListenForEvents = false; bool isPlaying = PlayerApp.CurrentPlaybackStatus.IsPlaying; OnPropertyChanged("AreRecorderSettingsChanged"); CurrentRecorder?.StopRecord(); if (!isPlaying || !IsRecorderArmed) //Only start a new record if music is playing and the recorder is armed { PlayerApp.ListenForEvents = true; return; } //if (Recorders.Count > 0 && Recorders.Select(r => r.TrackInfo.TrackID).Contains(PlayerApp.CurrentTrack.TrackID)) //{ // PlayerApp.ListenForEvents = true; // return; //} Recorder tmpRecorder = new SpotifyRecorderImplementierung((RecorderSettings)RecSettings.Clone(), PlayerApp.CurrentTrack, _logHandle); tmpRecorder.OnRecorderPostStepsFinished += TmpRecorder_OnRecorderPostStepsFinished; Recorders.Add(tmpRecorder); if (PlayerApp.CurrentTrack != null && !PlayerApp.CurrentPlaybackStatus.IsAd) { tmpRecorder?.StartRecord(); } CleanupRecordersList(); PlayerApp.ListenForEvents = true; }