コード例 #1
0
        public void OutputTrackModel(Track track, bool graphicalOutput = true, bool screenReaderOutput = true)
        {
            // need to decide if we want any unique logic here
            // for now, we just wrap it in a T.B.I as it suits
            var item = new TrackBufferItem(track);

            this.OutputTrackItem(item, graphicalOutput, screenReaderOutput);
        }
コード例 #2
0
 public void OutputTrackItem(TrackBufferItem item, bool graphicalOutput = true, bool screenReaderOutput = true)
 {
     if (UseGraphicalOutput && graphicalOutput)
     {
         var artistString = String.Format("{0} {1}", StringStore.By, item.GetArtistNames());
         OutputMessageGraphically(item.Model.Name, artistString);
     }
     if (UseScreenReader && screenReaderOutput)
     {
         OutputMessageToScreenReader(item.ToString());
     }
 }
コード例 #3
0
 private void HandleChangeOfTrack()
 {
     if (playbackManager.PlayingTrack == null)
     {
         _trayIcon.Text = "Blindspot";
     }
     else
     {
         var trackItem = new TrackBufferItem(playbackManager.PlayingTrack);
         _trayIcon.Text = String.Format("Blindspot - {0}", trackItem.ToTruncatedString());
     }
 }
コード例 #4
0
        public override void Execute(object sender, HandledEventArgs e)
        {
            var playQueue = buffers[0];

            ClearCurrentlyPlayingTrack();

            if (playbackManager.HasPreviousTracks)
            {
                var nextTrack     = playbackManager.GetPreviousTrack();
                var nextTrackItem = new TrackBufferItem(nextTrack);
                playQueue.Insert(0, nextTrackItem);
                PlayNewTrackBufferItem(nextTrackItem);
                playQueue.CurrentItemIndex = 0;
            }
        }
コード例 #5
0
        private void PlayTrackBufferItem(TrackBufferItem item)
        {
            var response = Session.LoadPlayer(item.Model.TrackPtr);

            if (response.IsError && !settings.SkipUnplayableTracks)
            {
                output.OutputMessage(StringStore.UnableToPlayTrack + response.Message, false);
                return;
            }
            if (response.IsError && settings.SkipUnplayableTracks)
            {
                HandleEndOfCurrentTrack();
                return; // don't carry on with this, as it got handled in a recursive call
            }
            Session.Play();
            playbackManager.PlayingTrack    = item.Model;
            playbackManager.fullyDownloaded = false;
            playbackManager.Play();
            output.OutputTrackModel(playbackManager.PlayingTrack,
                                    settings.OutputTrackChangesGraphically, settings.OutputTrackChangesWithSpeech);
        }
コード例 #6
0
        private void PlayNewTrackBufferItem(TrackBufferItem item)
        {
            var response = Session.LoadPlayer(item.Model.TrackPtr);

            if (response.IsError && !UserSettings.Instance.SkipUnplayableTracks)
            {
                _output.OutputMessage(StringStore.UnableToPlayTrack + response.Message, false);
                return;
            }
            if (response.IsError && UserSettings.Instance.SkipUnplayableTracks)
            {
                playbackManager.AddCurrentTrackToPreviousTracks();
                playbackManager.PlayingTrack = null;
                buffers[0].RemoveAt(0);
                PlayNextQueuedTrack();
                return;                 // don't carry on with this, as it got handled in a recursive call
            }
            Session.Play();
            playbackManager.PlayingTrack    = item.Model;
            playbackManager.fullyDownloaded = false;
            playbackManager.Play();
        }
コード例 #7
0
        private void PlayNewTrackBufferItem(TrackBufferItem item)
        {
            var output   = OutputManager.Instance;
            var settings = UserSettings.Instance;
            var response = Session.LoadPlayer(item.Model.TrackPtr);

            if (response.IsError && !settings.SkipUnplayableTracks)
            {
                output.OutputMessage(StringStore.UnableToPlayTrack + response.Message, false);
                return;
            }
            if (response.IsError && settings.SkipUnplayableTracks)
            {
                // move to next track again
                Execute(this, new HandledEventArgs());
                return;
            }
            Session.Play();
            playbackManager.PlayingTrack    = item.Model;
            playbackManager.fullyDownloaded = false;
            playbackManager.Play();
            output.OutputTrackModel(playbackManager.PlayingTrack,
                                    settings.OutputTrackChangesGraphically, settings.OutputTrackChangesWithSpeech);
        }