예제 #1
0
        /// <summary>
        /// 音量取得
        /// </summary>
        private void getVolume()
        {
            CurrentPlayback = spotifyApi.GetCurrentPlayback(Properties.Settings.Default.Spotify_Markets);

            if (CurrentPlayback == null)
            {
                return;
            }

            trackBarVolume.Value = CurrentPlayback.device.volume_percent;

            setMuteButtonStyle();
        }
예제 #2
0
        private static int GetPlayingIndex(CurrentPlayback currentPlaybackState, List <Track> landingTracks)
        {
            var playingTrackIndex = -1;

            for (int i = 0; i < landingTracks.Count; i++)
            {
                if (landingTracks[i].Id == currentPlaybackState.Id)
                {
                    playingTrackIndex = i;
                    break;
                }
            }
            return(playingTrackIndex);
        }
예제 #3
0
        private void ToggleIsPlaying(object sender, RoutedEventArgs e)
        {
            if (IsPlaying)
            {
                CurrentPlayback?.Pause();
            }
            else
            {
                CurrentPlayback?.Play();
            }

            if (CurrentPlayback != null)
            {
                IsPlaying = !IsPlaying;
            }
        }
예제 #4
0
 private async Task UpdatePlaybackState(CurrentPlayback currentPlaybackState)
 {
     if (!currentPlaybackState.Is_Playing)
     {
         if (DefaultDeviceId != null)
         {
             await UpdateDevice(new DevicesPostDto
             {
                 Device_Id = DefaultDeviceId,
                 Play      = true
             });
         }
     }
     if (currentPlaybackState.Shuffle_State)
     {
         await ToggleShuffle(false);
     }
 }
        public static CurrentStateResponseDto ToDto(this CurrentPlayback playback, Track nextSong)
        {
            var report = new CurrentStateResponseDto
            {
                Device        = playback.Device,
                Id            = playback.Id,
                Is_Playing    = playback.Is_Playing,
                Item          = playback.Item,
                Name          = playback.Name,
                Progress_ms   = playback.Progress_ms,
                Repeat_State  = playback.Repeat_State,
                Shuffle_State = playback.Shuffle_State,
                TimeStamp     = playback.TimeStamp,
                NextSong      = nextSong
            };

            return(report);
        }
예제 #6
0
        /// <summary>
        /// spotify再生情報取得
        /// </summary>
        /// <param name="wait">取得開始までの待機時間(ms)</param>
        private async void setCurrentPlayback(Int32 wait)
        {
            try
            {
                if (wait != 0)
                {
                    await Task.Delay(wait);
                }

                //再生情報を取得
                PrevPlayback    = CurrentPlayback;
                CurrentPlayback = spotifyApi.GetCurrentPlayback(Properties.Settings.Default.Spotify_Markets);

                if (CurrentPlayback == null)
                {
                    initPlayInfo();
                    tpsSpotifyApiStatus.Text      = "Error.";
                    tpsSpotifyApiStatus.ForeColor = Color.Red;

                    return;
                }

                tpsSpotifyApiStatus.Text      = "Connected.";
                tpsSpotifyApiStatus.ForeColor = Color.Black;

                if (PrevPlayback == null || PrevPlayback.item.album.id != CurrentPlayback.item.album.id)
                {
                    if (pbArtwork.BackgroundImage != null)
                    {
                        pbArtwork.BackgroundImage.Dispose();
                    }
                    pbArtwork.BackgroundImage = GetImage(CurrentPlayback.item.album.images[1].url);
                }

                if (lblAlubum.Text != CurrentPlayback.item.album.name)
                {
                    lblAlubum.Text = CurrentPlayback.item.album.name;
                }

                if (lblAlbumArtist.Text != CurrentPlayback.item.album.artists[0].name)
                {
                    lblAlbumArtist.Text = CurrentPlayback.item.album.artists[0].name;
                }

                if (lblReleaseDate.Text != CurrentPlayback.item.album.release_date)
                {
                    lblReleaseDate.Text = CurrentPlayback.item.album.release_date;
                }

                lblTrackCount.Text = "";

                if (lblExplicit.Visible != CurrentPlayback.item.@explicit)
                {
                    lblExplicit.Visible = CurrentPlayback.item.@explicit;
                }

                if (lblTrackName.Text != CurrentPlayback.item.name)
                {
                    lblTrackName.Text = CurrentPlayback.item.name;
                }

                if (lblTrackArtist.Text != CurrentPlayback.item.artists[0].name)
                {
                    lblTrackArtist.Text = CurrentPlayback.item.artists[0].name;
                }

                seekBarPlayPos.Minimum = 0;
                seekBarPlayPos.Maximum = CurrentPlayback.item.duration_ms;
                seekBarPlayPos.Value   = CurrentPlayback.progress_ms;

                lblTrackTime.Text = msToTime(seekBarPlayPos.Maximum);
                lblPlayPos.Text   = msToTime(seekBarPlayPos.Value);

                timer1.Enabled = CurrentPlayback.is_playing;

                setPlayButtonStyle(timer1.Enabled);

                //if (timer1.Enabled)
                //{
                //	timer1.Start();
                //}
                //else
                //{
                //	timer1.Stop();
                //}

                //リピート設定
                setRepeatButtonStyle(CurrentPlayback.repeat_state);

                //シャッフル設定

                //ボリューム設定
                trackBarVolume.Value = CurrentPlayback.device.volume_percent;
                setMuteButtonStyle();

                //再生デバイス
                setAvailableDevices(0);

                //title
                if (Properties.Settings.Default.ShowTitlebarInfo)
                {
                    Text = string.Format("{0} / {1} with {2}", lblTrackName.Text, lblTrackArtist.Text, Properties.Settings.Default.AppName);
                }

                //自動toot
                if (Properties.Settings.Default.Mastodon_Toot_TrackChangedAutoPost)
                {
                    TootNowPlaying(false);
                }
            }
            catch
            {
            }
        }