예제 #1
0
        /// <summary>
        /// Handles PlaybackTrackChanged for our SSMEs
        /// </summary>
        private void SSME_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
        {
            var ssme =
                sender as SmoothStreamingMediaElement;

            Debug.Assert(ssme != null);

            if (ssme != null)
            {
                // work around a bug in the SSME where it raises events on a non-UI thread
                // TODO: this code can be removed once that bug is fixed
                if (!ssme.Dispatcher.CheckAccess())
                {
                    ssme.Dispatcher.BeginInvoke(() => SSME_PlaybackTrackChanged(sender, e));
                    return;
                }

                if (e.StreamType == MediaStreamType.Video)
                {
                    SSMEStateInfo ssmeStateInfo = GetSSMEStateInfoBySSME(ssme);

                    ulong lastPlaybackBitrate = e.NewTrack != null ? e.NewTrack.Bitrate : 0;
                    ssmeStateInfo.LastPlaybackTrackBitrate = lastPlaybackBitrate;
                }
            }
        }
        private void OnCurrentTrackChanged(object sender, TrackChangedEventArgs e)
        {
            if (e.PreviousTrack != null)
            {
                _likeCurrentTrack    = false;
                _dislikeCurrentTrack = false;
                CurrentTrackRating   = null;

                RaisePropertyChanged("LikeCurrentTrack", "DislikeCurrentTrack");
            }

            if (e.CurrentTrack == null)
            {
                HasTrack = false;
            }
            else
            {
                if (_loveHateTrackStream != null && Radio.CurrentTrackStream != _loveHateTrackStream)
                {
                    Radio.Play(_loveHateTrackStream);
                }

                HasTrack = true;

                GetSessionInfo(_loveHateTrackStream);
            }
        }
예제 #3
0
파일: Channel.cs 프로젝트: jaypatrick/dica
 /// <summary>
 ///   Event to refresh the main page's playlist
 /// </summary>
 /// <param name="sender"> sender </param>
 /// <param name="e"> EventArgs </param>
 protected internal virtual void OnChannelRefreshed(object sender, TrackChangedEventArgs <ITrack> e)
 {
     if (_channelRefreshed != null)
     {
         _channelRefreshed(this, e);
     }
 }
예제 #4
0
파일: Channel.cs 프로젝트: jaypatrick/dica
 /// <summary>
 /// </summary>
 /// <param name="sender"> sender </param>
 /// <param name="e"> EventArgs </param>
 protected internal virtual void OnTrackChanged(object sender, TrackChangedEventArgs <ITrack> e)
 {
     if (_trackChanged != null)
     {
         _trackChanged(this, e);
     }
 }
예제 #5
0
 /// <summary>
 /// Triggers <see cref="ChangedEvent"/> as long
 /// as it isn't null.
 /// </summary>
 /// <param name="args">The args to pass to the handlers.</param>
 private void ValueChanged(TrackChangedEventArgs args)
 {
     if (ChangedEvent != null)
     {
         ChangedEvent(this, args);
     }
 }
예제 #6
0
        private async void PlayerService_TrackChanged(IPlayerService sender, TrackChangedEventArgs e)
        {
            _currentTrackId = e.TrackID;
            if (Tracks == null)
            {
                return;
            }

            if (_currentTrackId >= 0)
            {
                await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    if (CurrentTrack != null)
                    {
                        CurrentTrack.IsCurrent = false;
                    }

                    CurrentTrack           = Tracks[_currentTrackId];
                    CurrentTrack.IsCurrent = true;

                    _position = TimeSpan.Zero;
                    OnPropertyChanged(nameof(Position));

                    Duration = TimeSpan.FromSeconds(1);

                    TrackChanged?.Invoke(this, CurrentTrack);
                    ShowLyricsCommand.RaiseCanExecuteChanged();
                    DownloadTrackCommand.RaiseCanExecuteChanged();
                });

                LoadArtistImage(CurrentTrack.Track);
                LoadTrackImage(CurrentTrack.Track);
            }
        }
예제 #7
0
 private static void Current_TrackChanged(MediaController sender, TrackChangedEventArgs args)
 {
     if (UDPServer.Current.ClientList?.Count > 0)
     {
         SendTrackChanged(args.NewTrack);
     }
 }
예제 #8
0
 void CSCoreEngine_TrackChanged(object sender, TrackChangedEventArgs e)
 {
     if (TrackChanged != null)
     {
         TrackChanged(sender, e);
     }
 }
예제 #9
0
 private void OnTrackChanged(object sender, TrackChangedEventArgs e)
 {
     if (_trackChanged != null)
     {
         // TrackChangedEventArgs trackArgs = new TrackChangedEventArgs(this.channelName, uri, this.trackTitle);
         _trackChanged(this, e);
     }
 }
예제 #10
0
 void SmoothMediaElementPlaybackTrackChanged(object sender, TrackChangedEventArgs e)
 {
     var width = e.NewTrack.Attributes["MaxWidth"];
       if(Int64.Parse(width) >= 1280)
     OnHDActivated(new HDEventArgs(true));
       else
     OnHDActivated(new HDEventArgs(false));
 }
예제 #11
0
        private void OnCurrentTrackChanged(TrackChangedEventArgs e)
        {
            var handler = CurrentTrackChanged;

            if (handler != null)
            {
                handler(this, e);
            }
        }
예제 #12
0
 private void SmoothPlayer_VideoHighestPlayableTrackChanged(object sender, TrackChangedEventArgs e)
 {
     this.ologData = new CustomLogData()
     {
         Message  = "Video Highest PlayableTrackChanged.",
         Severity = SeverityEnum.Information,
         Source   = "Player"
     };
     this.eventLogViewer.PrintLog(this.ologData);
 }
예제 #13
0
 void CSCoreEngine_TrackChanged(object sender, TrackChangedEventArgs e)
 {
     if (_openedTrackWithStandardBackward)
     {
         _openedTrackWithStandardBackward = false; return;
     }
     if (Lasttracks.Count == 0 || Lasttracks.Last().Track != e.NewTrack)
     {
         Lasttracks.Add(new TrackPlaylistPair(e.NewTrack, CurrentPlaylist));
     }
 }
예제 #14
0
 void ssme_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
 {
     if (e.NewTrack.Stream.Type == System.Windows.Media.MediaStreamType.Video)
     {
         CurrentBitrate = (uint)e.NewTrack.Bitrate;
         if (CurrentBitrateChanged != null)
         {
             CurrentBitrateChanged(this, new CurrentBitrateChangedEventArgs());
         }
     }
 }
 void ssme_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
 {
     if (e.NewTrack.Stream.Type == System.Windows.Media.MediaStreamType.Video)
     {
         CurrentBitrate = (uint)e.NewTrack.Bitrate;
         if (CurrentBitrateChanged != null)
         {
             CurrentBitrateChanged(this, new CurrentBitrateChangedEventArgs());
         }
     }
 }
예제 #16
0
 private void SmoothPlayer_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
 {
     this.bitRateGraph.CurrentBitrate       = e.NewTrack.Bitrate;
     this.framerateControl.CurrentFramerate = this.SmoothPlayer.RenderedFramesPerSecond;
     this.ologData = new CustomLogData()
     {
         Message  = string.Concat("Playback bitrate changed to ", this.bitRateGraph.CurrentBitrate),
         Severity = SeverityEnum.Information,
         Source   = "Player"
     };
     this.eventLogViewer.PrintLog(this.ologData);
 }
 void element_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
 {
     SourceEventArgs args; 
     for (int i = 0; i < this.tracks.Count; i++)
     {
         if (this.tracks[i].Bitrate == e.NewTrack.Bitrate)
         {
             args = new SourceEventArgs(i);
             SourceChanged(this, args);
             break;
         }
     }      
 }
예제 #18
0
        void SmoothMediaElementPlaybackTrackChanged(object sender, TrackChangedEventArgs e)
        {
            var width = e.NewTrack.Attributes["MaxWidth"];

            if (Int64.Parse(width) >= 1280)
            {
                OnHDActivated(new HDEventArgs(true));
            }
            else
            {
                OnHDActivated(new HDEventArgs(false));
            }
        }
        void element_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
        {
            SourceEventArgs args;

            for (int i = 0; i < this.tracks.Count; i++)
            {
                if (this.tracks[i].Bitrate == e.NewTrack.Bitrate)
                {
                    args = new SourceEventArgs(i);
                    SourceChanged(this, args);
                    break;
                }
            }
        }
예제 #20
0
        void SSME_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
        {
            CurrentBitrate = e.NewTrack.Bitrate;
            MaxBitrate     = e.HighestPlayableTrack.Bitrate;
            var size = e.NewTrack.GetSize();

            CurrentWidth  = (uint)size.Width;
            CurrentHeight = (uint)size.Height;

            if (StateChanged != null)
            {
                StateChanged(this, EventArgs.Empty);
            }
        }
예제 #21
0
 private void OnTrackChanged(object sender, TrackChangedEventArgs e)
 {
     if (lilyPondString.Length > 1)
     {
         Save(true);
         HandleLastNote();
         noteWindow.EmptyAll();
         lilyPondString.Append("}\n");
     }
     else
     {
         lilyPondString = new StringBuilder();
     }
     lilyPondString.Append("\\new Staff { ");
 }
 void mediaElement_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
 {
     if (e.NewTrack != null)
     {
         if (e.StreamType == MediaStreamType.Video && PlaybackBitrate != e.NewTrack.Bitrate)
         {
             SmoothStreamingEvent ssEvent = new SmoothStreamingEvent();
             ssEvent.Value     = e.NewTrack.Bitrate;
             ssEvent.Data1     = PlaybackBitrate.ToString(CultureInfo.InvariantCulture);
             ssEvent.EventType = EventType.BitrateChanged;
             Enqueue(ssEvent);
             // remember value
             PlaybackBitrate = e.NewTrack.Bitrate;
         }
     }
 }
예제 #23
0
 private void RadioOnCurrentTrackChanged(object sender, TrackChangedEventArgs e)
 {
     if (e.CurrentTrack != null)
     {
         _dispatcher.BeginInvoke(new Action(() =>
         {
             _togglePlayPauseButton.Enabled = true;
             _nextTrackButton.Enabled       = true;
         }));
     }
     else
     {
         _dispatcher.BeginInvoke(new Action(() =>
         {
             _togglePlayPauseButton.Enabled = false;
             _nextTrackButton.Enabled       = false;
         }));
     }
 }
예제 #24
0
        private void ControllerTrackChangedEvent(object sender, TrackChangedEventArgs e)
        {
            if (lblTrackName.InvokeRequired)
            {
                lblTrackName.Invoke(new Action <object, TrackChangedEventArgs>(ControllerTrackChangedEvent), sender, e);
                return;
            }

            chkPlay.Checked   = true;
            picPicture.Image  = null;
            lblTrackName.Text = e.Track.Name;
            lblLength.Text    = Controller.Length.ToString(TimeFormat);
            lblArtist.Text    = e.Track.Artist;
            if (e.Track.AudioFile.Tag.Pictures.Length > 0)
            {
                var ms = new MemoryStream(e.Track.AudioFile.Tag.Pictures[0].Data.Data);
                picPicture.Image = Image.FromStream(ms);
            }
        }
        private void RadioOnCurrentTrackChanged(object sender, TrackChangedEventArgs e)
        {
            if (e.CurrentTrack == null)
            {
                HasTrack = false;
            }

            if (e.CurrentTrack != null && e.PreviousTrack != null && e.CurrentTrack.Artist == e.PreviousTrack.Artist)
            {
                return;
            }

            if (e.CurrentTrack != null)
            {
                HasTrack = true;
                QueryForBackdrop(e.CurrentTrack.Artist);
            }

            RefreshCommands();
        }
        private void RadioOnCurrentTrackChanged(object sender, TrackChangedEventArgs e)
        {
            // If the new tracks artist is the same as the previous one we do nothing
            if ((e.PreviousTrack != null && e.CurrentTrack != null) && e.PreviousTrack.Artist == e.CurrentTrack.Artist)
            {
                return;
            }

            if (e.CurrentTrack != null)
            {
                _tileData.Title = "Now playing " + e.CurrentTrack.Artist;
                SetTileBackground(e.CurrentTrack.Artist);
            }
            else
            {
                _tileData.Title           = "Now playing";
                _tileData.Effect          = null;
                _tileData.Content         = null;
                _tileData.BackgroundImage = null;
            }
        }
 void MediaPlugin_VideoHighestPlayableTrackChanged(object sender, TrackChangedEventArgs e)
 {
     UpdateBitrateGraph();
 }
 private void RadioOnCurrentTrackChanged(object sender, TrackChangedEventArgs e)
 {
 }
예제 #29
0
 private void OnTrackChanged(object sender, TrackChangedEventArgs e)
 {
     if (_trackChanged != null)
     {
         // TrackChangedEventArgs trackArgs = new TrackChangedEventArgs(this.channelName, uri, this.trackTitle);
         _trackChanged(this, e);
     }
 }
예제 #30
0
 private void MusicManager_TrackChanged(object sender, TrackChangedEventArgs e)
 {
     Application.Current.Dispatcher.BeginInvoke(
         new Action(() => UserData.UserData.History.AddEntry(e.Track, e.TimePlayed)));
 }
예제 #31
0
파일: Track.cs 프로젝트: jaypatrick/dica
 /// <summary>
 /// 
 /// </summary>
 /// <param name="sender">sender</param>
 /// <param name="e">EventArgs</param>
 protected internal virtual void OnTrackChanged(object sender, TrackChangedEventArgs<IChannel> e)
 {
     if (_trackChanged != null)
     {
         _trackChanged(this, e);
     }
 }
 void mediaElement_DownloadTrackChanged(object sender, TrackChangedEventArgs e)
 {
     if (e.StreamType == MediaStreamType.Video)
         DownloadBitrate = e.Track.Bitrate;
 }
예제 #33
0
 void CSCoreEngine_TrackChanged(object sender, TrackChangedEventArgs e)
 {
     TrackChanged?.Invoke(sender, e);
 }
예제 #34
0
 protected void RaiseTrackChangedEvent(TrackChangedEventArgs e)
 {
     OnRaiseEvent(e, TrackChangedEvent);
 }
 void SmoothPlayer_TrackChanged(object sender, TrackChangedEventArgs e)
 {
     BitRate.Text = Math.Round(Convert.ToDecimal((e.NewTrack.Bitrate * .001))).ToString() + "kbs";
 }
예제 #36
0
 private void SmoothPlayer_VideoHighestPlayableTrackChanged(object sender, TrackChangedEventArgs e)
 {
     this.ologData = new CustomLogData()
     {
         Message = "Video Highest PlayableTrackChanged.",
         Severity = SeverityEnum.Information,
         Source = "Player"
     };
     this.eventLogViewer.PrintLog(this.ologData);
 }
예제 #37
0
 private void SmoothPlayer_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
 {
     this.bitRateGraph.CurrentBitrate = e.NewTrack.Bitrate;
     this.framerateControl.CurrentFramerate = this.SmoothPlayer.RenderedFramesPerSecond;
     this.ologData = new CustomLogData()
     {
         Message = string.Concat("Playback bitrate changed to ", this.bitRateGraph.CurrentBitrate),
         Severity = SeverityEnum.Information,
         Source = "Player"
     };
     this.eventLogViewer.PrintLog(this.ologData);
 }
        void SSME_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
        {
            CurrentBitrate = e.NewTrack.Bitrate;
            MaxBitrate = e.HighestPlayableTrack.Bitrate;
            var size = e.NewTrack.GetSize();
            CurrentWidth = (uint)size.Width;
            CurrentHeight = (uint)size.Height;

            if (StateChanged != null) StateChanged(this, EventArgs.Empty);
        }
예제 #39
0
 void cscore_TrackChanged(object sender, TrackChangedEventArgs e)
 {
     TrackChanged(e.NewTrack);
 }
 void MediaPlugin_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
 {
     UpdateBitrateGraph();
 }
 private void CoreSmoothStreamingMediaElement_DownloadTrackChanged(object sender, TrackChangedEventArgs e)
 {
     if (e.StreamType == MediaStreamType.Video)
     {
         // store the current bitrate
         DownloadBitrate = e.Track.Bitrate;
     }
 }
예제 #42
0
 void CSCoreEngine_TrackChanged(object sender, TrackChangedEventArgs e)
 {
     WriteLine("event track");
 }
        private void CoreSmoothStreamingMediaElement_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
        {
            if (e.StreamType == MediaStreamType.Video && PlaybackBitrate != e.Track.Bitrate)
            {
                // store value
                PlaybackBitrate = e.Track.Bitrate;

                // raise event
                if (PlaybackBitrateChanged != null)
                {
                    PlaybackBitrateChanged(this, new RoutedEventArgs());
                }
            }
        }
 void mediaElement_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
 {
     if (e.StreamType == MediaStreamType.Video)
         PlaybackBitrate = e.Track.Bitrate;
 }
 private void MediaElement_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
 {
     if (e.StreamType == MediaStreamType.Video)
     {
         VideoPlaybackTrackChanged.IfNotNull(i => i(this, e.NewTrack != null ? new MediaTrack(e.NewTrack) : null));
         VideoPlaybackBitrateChanged.IfNotNull(i => i(this, e.NewTrack != null ? (long)e.NewTrack.Bitrate : 0));
     }
 }
 void mediaElement_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
 {
     if (e.NewTrack != null)
     {
         if (e.StreamType == MediaStreamType.Video && PlaybackBitrate != e.NewTrack.Bitrate)
         {
             SmoothStreamingEvent ssEvent = new SmoothStreamingEvent();
             ssEvent.Value = e.NewTrack.Bitrate;
             ssEvent.Data1 = PlaybackBitrate.ToString(CultureInfo.InvariantCulture);
             ssEvent.EventType = EventType.BitrateChanged;
             Enqueue(ssEvent);
             // remember value
             PlaybackBitrate = e.NewTrack.Bitrate;
         }
     }
 }
 private void MediaElement_DownloadTrackChanged(object sender, TrackChangedEventArgs e)
 {
     if (e.StreamType == MediaStreamType.Video)
     {
         VideoDownloadTrackChanged.IfNotNull(i => i(this, new MediaTrack(e.NewTrack)));
     }
 }
        /// <summary>
        /// Handles PlaybackTrackChanged for our SSMEs
        /// </summary>
        private void SSME_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
        {
            var ssme =
                sender as SmoothStreamingMediaElement;
            Debug.Assert(ssme != null);

            if (ssme != null)
            {
                // work around a bug in the SSME where it raises events on a non-UI thread
                // TODO: this code can be removed once that bug is fixed
                if (!ssme.Dispatcher.CheckAccess())
                {
                    ssme.Dispatcher.BeginInvoke(() => SSME_PlaybackTrackChanged(sender, e));
                    return;
                }

                if (e.StreamType == MediaStreamType.Video)
                {
                    SSMEStateInfo ssmeStateInfo = GetSSMEStateInfoBySSME(ssme);

                    ulong lastPlaybackBitrate = e.NewTrack != null ? e.NewTrack.Bitrate : 0;
                    ssmeStateInfo.LastPlaybackTrackBitrate = lastPlaybackBitrate;
                }
            }
        }
예제 #49
0
 void video_PlaybackTrackChanged(object sender, TrackChangedEventArgs e)
 {
     currentBitrate.Text = "(" + e.NewTrack.Bitrate.ToString() + " bps)";
 }