private R <SongAnalyzerResult, LocalStr> AnalyzeBackground(QueueItem queueItem, CancellationToken cancelled) { var timer = new Stopwatch(); timer.Start(); var res = new SongAnalyzerTask(queueItem, resourceResolver, player.FfmpegProducer).Run(cancelled); if (!res.Ok) { return(res.Error); } var result = res.Value; if (queueItem.MetaData.ContainingPlaylistId != null && !ReferenceEquals(queueItem.AudioResource, result.Resource.BaseData)) { Log.Info("AudioResource was changed by loader, saving containing playlist"); OnAudioResourceUpdated?.Invoke(this, new AudioResourceUpdatedEventArgs(queueItem, result.Resource.BaseData)); } result.Resource.Meta = queueItem.MetaData; return(result); }
private void InvokeOnResourceChanged(QueueItem queueItem, AudioResource resource) { if (!ReferenceEquals(queueItem.AudioResource, resource)) { OnAudioResourceUpdated?.Invoke(this, new AudioResourceUpdatedEventArgs(queueItem, resource)); } }
protected void InvokeOnAudioResourceUpdated(object sender, AudioResourceUpdatedEventArgs e) { OnAudioResourceUpdated?.Invoke(sender, e); }