Exemplo n.º 1
0
        public void Update(SongInfoChanged newInfo)
        {
            var data = CurrentPlayData;

            if (data is null)
            {
                return;
            }
            if (newInfo.Title != null)
            {
                data.ResourceData.ResourceTitle = newInfo.Title;
            }
            // further properties...
            OnResourceUpdated?.Invoke(this, data);
        }
Exemplo n.º 2
0
 public void Update(SongInfoChanged newInfo)
 {
     lock (Lock) {
         Log.Info("Song info (title) updated");
         var data = CurrentPlayData;
         if (data is null)
         {
             return;
         }
         if (newInfo.Title != null)
         {
             data.ResourceData = data.ResourceData.WithTitle(newInfo.Title);
         }
         // further properties...
         OnResourceUpdated?.Invoke(this, data);
     }
 }
Exemplo n.º 3
0
            private static SongInfoChanged ParseIcyMeta(string metaString)
            {
                var songInfo = new SongInfoChanged();
                var match    = IcyMetadataMacher.Match(metaString);

                if (match.Success)
                {
                    for (int i = 0; i < match.Groups[1].Captures.Count; i++)
                    {
                        switch (match.Groups[2].Captures[i].Value.ToUpperInvariant())
                        {
                        case "STREAMTITLE":
                            songInfo.Title = match.Groups[3].Captures[i].Value;
                            break;
                        }
                    }
                }
                return(songInfo);
            }
Exemplo n.º 4
0
        public async Task Update(SongInfoChanged newInfo)
        {
            var data = CurrentPlayData;

            if (data is null)
            {
                return;
            }
            if (newInfo.Title != null)
            {
                data.ResourceData.ResourceTitle = newInfo.Title;
            }
            // further properties...
            try
            {
                await OnResourceUpdated.InvokeAsync(this, data);
            }
            catch (AudioBotException ex)
            {
                Log.Warn(ex, "Error in OnResourceUpdated event.");
            }
        }
Exemplo n.º 5
0
 private void TriggerSongUpdated(object o, SongInfoChanged e) => OnSongUpdated?.Invoke(this, e);
Exemplo n.º 6
0
 private void TriggerSongUpdated(object?o, SongInfoChanged e) => scheduler.InvokeAsync(() => OnSongUpdated.InvokeAsync(this, e));