Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 private void InvokeOnResourceChanged(QueueItem queueItem, AudioResource resource)
 {
     if (!ReferenceEquals(queueItem.AudioResource, resource))
     {
         OnAudioResourceUpdated?.Invoke(this,
                                        new AudioResourceUpdatedEventArgs(queueItem, resource));
     }
 }
Ejemplo n.º 3
0
 protected void InvokeOnAudioResourceUpdated(object sender, AudioResourceUpdatedEventArgs e)
 {
     OnAudioResourceUpdated?.Invoke(sender, e);
 }