示例#1
0
        private void ButtonNextOrPrevClickedWhenStop(UpdateOrdinal updateOrdinal)
        {
            var idx = mDataGridPlayList.SelectedIndex;

            idx = updateOrdinal(idx);
            if (idx < 0)
            {
                idx = 0;
            }
            else if (mDataGridPlayList.Items.Count <= idx)
            {
                idx = 0;
            }
            mDataGridPlayList.SelectedIndex = idx;
            mDataGridPlayList.ScrollIntoView(mDataGridPlayList.SelectedItem);
        }
示例#2
0
        private void ButtonNextOrPrevClickedWhenPlaying(UpdateOrdinal updateOrdinal)
        {
            int albumAudioFileCount = mContentList.GetSelectedAlbum().AudioFileCount;

            int idx = mPlaybackController.GetPcmDataId(WasapiCS.PcmDataUsageType.NowPlaying);

            if (idx < 0)
            {
                // fixme:
                // 曲を再生中ではなく、再生準備中の場合など。
                // wavDataId = wasapi.GetPcmDataId(WasapiCS.PcmDataUsageType.PauseResumeToPlay);
                //nextTask = NextTaskType.PlayPauseSpecifiedGroup;
                return;
            }
            else
            {
                // 再生リストに登録されている曲数が1曲で、しかも
                // その曲を再生中に、次の曲または前の曲ボタンが押された場合、曲を頭出しする。
                if (1 == albumAudioFileCount)
                {
                    mPlaybackController.SetPosFrame(0);
                    return;
                }
            }

            int nextIdx = updateOrdinal(idx);

            if (nextIdx < 0)
            {
                nextIdx = 0;
            }
            if (albumAudioFileCount <= nextIdx)
            {
                nextIdx = 0;
            }

            if (nextIdx == idx)
            {
                // 1曲目再生中に前の曲を押した場合頭出しする。
                mPlaybackController.SetPosFrame(0);
                return;
            }

            PlayAudioFile(nextIdx);
        }
示例#3
0
        private void ButtonNextOrPrevClicked(UpdateOrdinal updateOrdinal)
        {
            switch (mPlaybackController.GetState())
            {
            case PlaybackController.State.Paused:
            case PlaybackController.State.Playing:
                ButtonNextOrPrevClickedWhenPlaying(updateOrdinal);
                break;

            case PlaybackController.State.Stopped:
                ButtonNextOrPrevClickedWhenStop(updateOrdinal);
                break;

            case PlaybackController.State.Stopping:
                // fixme:
                break;
            }
        }