private void ActivateStationProgrammingMode(SongMetadata songMetadata, StationStream currentStream, StationProgram currentProgram) { StationRadioProgramStarted?.Invoke(this, new NepAppStationProgramStartedEventArgs() { RadioProgram = currentProgram, Metadata = songMetadata, Station = currentStream?.ParentStation }); CurrentProgram = currentProgram; SetCurrentMetadataToUnknownInternal(currentProgram.Name); }
private async void CheckForStationBlockRightNow() { await blockProgrammingLock.WaitAsync(); if (CurrentStation.Programs.Any(FilterStationBlockPrograms)) { var currentBlock = CurrentStation.Programs.First(FilterStationBlockPrograms); if (CurrentProgram == currentBlock) { return; //prevent duplicate events. } CurrentProgram = currentBlock; StationRadioProgramStarted?.Invoke(this, new NepAppStationProgramStartedEventArgs() { RadioProgram = currentBlock, Metadata = CurrentSong, Station = CurrentStation.Name }); } blockProgrammingLock.Release(); }