示例#1
0
            /// <summary>
            /// コマンド入力履歴へのコマンド追加
            /// </summary>
            /// <param name="_eInst">楽器の種類</param>
            /// <param name="_ePad">入力コマンド(同時押しはOR演算で列挙すること)</param>
            public void Add(EInstrumentPart _eInst, EPadFlag _ePad)
            {
                STCommandTime _stct = new STCommandTime {
                    eInst = _eInst,
                    ePad  = _ePad,
                    time  = CDTXMania.Timer.nCurrentTime
                };

                if (stct.Count >= buffersize)
                {
                    stct.RemoveAt(0);
                }
                stct.Add(_stct);
//Debug.WriteLine( "CMDHIS: 楽器=" + _stct.eInst + ", CMD=" + _stct.ePad + ", time=" + _stct.time );
            }
        public int tUpdateAndDraw()  // t進行描画
        {
            if (!base.bNotActivated && this.bIsActivePopupMenu)
            {
                n本体X = 460; //XG選曲画面の中心点はX=646 Y=358
                n本体Y = 150;


                if (this.bキー入力待ち)
                {
                    #region [ CONFIG画面 ]
                    if (CDTXMania.Pad.bPressed(EInstrumentPart.GUITAR, EPad.Help))
                    {   // [SHIFT] + [F1] CONFIG
                        CDTXMania.Skin.soundCancel.tPlay();
                        tCancel();
                        this.bGotoDetailConfig = true;
                    }
                    #endregion
                    #region [ キー入力: キャンセル ]
                    else if (CDTXMania.InputManager.Keyboard.bKeyPressed((int)SlimDXKey.Escape) ||
                             CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.LC) ||
                             CDTXMania.Pad.bPressedGB(EPad.Pick))
                    {   // キャンセル
                        CDTXMania.Skin.soundCancel.tPlay();
                        tCancel();
                        this.bIsActivePopupMenu = false;
                    }
                    #endregion
                    #region [ BD二回: キャンセル ]
                    else if (CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.BD))
                    {   // キャンセル
                        this.CommandHistory.Add(EInstrumentPart.DRUMS, EPadFlag.BD);
                        EPadFlag[] comChangeScrollSpeed = new EPadFlag[] { EPadFlag.BD, EPadFlag.BD };
                        if (this.CommandHistory.CheckCommand(comChangeScrollSpeed, EInstrumentPart.DRUMS))
                        {
                            CDTXMania.Skin.soundChange.tPlay();
                            tBDContinuity();
                            this.bIsActivePopupMenu = false;
                        }
                    }
                    #endregion
                    #region [ Px2 Guitar: 簡易CONFIG ]
                    if (CDTXMania.Pad.bPressed(EInstrumentPart.GUITAR, EPad.P))
                    {   // [BD]x2 スクロール速度変更
                        CommandHistory.Add(EInstrumentPart.GUITAR, EPadFlag.P);
                        EPadFlag[] comChangeScrollSpeed = new EPadFlag[] { EPadFlag.P, EPadFlag.P };
                        if (CommandHistory.CheckCommand(comChangeScrollSpeed, EInstrumentPart.GUITAR))
                        {
                            CDTXMania.Skin.soundChange.tPlay();
                            tBDContinuity();
                            this.bIsActivePopupMenu = false;
                        }
                    }
                    #endregion
                    #region [ Px2 Bass: 簡易CONFIG ]
                    if (CDTXMania.Pad.bPressed(EInstrumentPart.BASS, EPad.P))
                    {   // [BD]x2 スクロール速度変更
                        CommandHistory.Add(EInstrumentPart.BASS, EPadFlag.P);
                        EPadFlag[] comChangeScrollSpeed = new EPadFlag[] { EPadFlag.P, EPadFlag.P };
                        if (CommandHistory.CheckCommand(comChangeScrollSpeed, EInstrumentPart.BASS))
                        {
                            CDTXMania.Skin.soundChange.tPlay();
                            tBDContinuity();
                            this.bIsActivePopupMenu = false;
                        }
                    }
                    #endregion

                    #region [ キー入力: 決定 ]
                    // EInstrumentPart eInst = EInstrumentPart.UNKNOWN;
                    ESortAction eAction = ESortAction.END;
                    if (CDTXMania.Pad.bPressed(EInstrumentPart.GUITAR, EPad.Decide))
                    {
                        eInst   = EInstrumentPart.GUITAR;
                        eAction = ESortAction.Decide;
                    }
                    else if (CDTXMania.Pad.bPressed(EInstrumentPart.BASS, EPad.Decide))
                    {
                        eInst   = EInstrumentPart.BASS;
                        eAction = ESortAction.Decide;
                    }
                    else if (
                        CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.Decide) ||   // #24756 2011.4.1 yyagi: Add condition "Drum-Decide" to enable CY in Sort Menu.
                        CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.RD) ||
                        (CDTXMania.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && CDTXMania.InputManager.Keyboard.bKeyPressed((int)SlimDXKey.Return)))
                    {
                        eInst   = EInstrumentPart.DRUMS;
                        eAction = ESortAction.Decide;
                    }
                    if (eAction == ESortAction.Decide)  // 決定
                    {
                        this.tEnter押下();
                    }
                    #endregion
                    #region [ キー入力: 前に移動 ]
                    this.ctキー反復用.Up.tRepeatKey(CDTXMania.InputManager.Keyboard.bKeyPressing((int)SlimDXKey.UpArrow), new CCounter.DGキー処理(this.t前に移動));
                    this.ctキー反復用.R.tRepeatKey(CDTXMania.Pad.b押されているGB(EPad.R), new CCounter.DGキー処理(this.t前に移動));
                    //Change to HT
                    if (CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.HT))
                    {
                        this.t前に移動();
                    }
                    #endregion
                    #region [ キー入力: 次に移動 ]
                    this.ctキー反復用.Down.tRepeatKey(CDTXMania.InputManager.Keyboard.bKeyPressing((int)SlimDXKey.DownArrow), new CCounter.DGキー処理(this.t次に移動));
                    this.ctキー反復用.B.tRepeatKey(CDTXMania.Pad.b押されているGB(EPad.G), new CCounter.DGキー処理(this.t次に移動));
                    //Change to LT
                    if (CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.LT))
                    {
                        this.t次に移動();
                    }
                    #endregion
                }
                #region [ ポップアップメニュー 背景描画 ]
                if (this.txPopupMenuBackground != null)
                {
                    this.txPopupMenuBackground.tDraw2D(CDTXMania.app.Device, n本体X, n本体Y);
                }
                #endregion
                #region [ ソートメニュータイトル描画 ]
                int x = n本体X + 96, y = n本体Y + 4;
                font.t文字列描画(x, y, strMenuTitle, false, 1.0f);
                #endregion
                #region [ カーソル描画 ]
                if (this.txCursor != null)
                {
                    int height = 32;
                    int curX   = n本体X + 12;
                    int curY   = n本体Y + 6 + (height * (this.n現在の選択行 + 1));
                    this.txCursor.tDraw2D(CDTXMania.app.Device, curX, curY, new Rectangle(0, 0, 16, 32));
                    curX += 0x10;
                    Rectangle rectangle = new Rectangle(8, 0, 0x10, 0x20);
                    for (int j = 0; j < 19; j++)
                    {
                        this.txCursor.tDraw2D(CDTXMania.app.Device, curX, curY, rectangle);
                        curX += 16;
                    }
                    this.txCursor.tDraw2D(CDTXMania.app.Device, curX, curY, new Rectangle(0x10, 0, 16, 32));
                }
                #endregion
                #region [ ソート候補文字列描画 ]
                for (int i = 0; i < lciMenuItems.Count; i++)
                {
                    bool bItemBold = (i == nItemSelecting && !bShowAllItems) ? true : false;
                    font.t文字列描画(n本体X + 18, n本体Y + 40 + i * 32, lciMenuItems[i].strItemName, bItemBold, 1.0f);

                    bool bValueBold = (bItemBold || (i == nItemSelecting && bIsSelectingIntItem)) ? true : false;
                    if (bItemBold || bShowAllItems)
                    {
                        string s;
                        switch (lciMenuItems[i].strItemName)
                        {
                        case "PlaySpeed":
                        {
                            double d = (double)((int)lciMenuItems[i].obj現在値() / 20.0);
                            s = "x" + d.ToString("0.000");
                        }
                        break;

                        case "ScrollSpeed":
                        {
                            double d = (double)((((int)lciMenuItems[i].obj現在値()) + 1) / 2.0);
                            s = "x" + d.ToString("0.0");
                        }
                        break;

                        default:
                            s = lciMenuItems[i].obj現在値().ToString();
                            break;
                        }
                        font.t文字列描画(n本体X + 200, n本体Y + 40 + i * 32, s, bValueBold, 1.0f);
                    }
                }
                #endregion
                t進行描画sub();
            }
            return(0);
        }
示例#3
0
        public override int OnUpdateAndDraw()
        {
            if (!base.bNotActivated)
            {
                #region [ 初めての進行描画 ]
                //---------------------
                if (base.bJustStartedUpdate)
                {
                    this.ct登場時アニメ用共通 = new CCounter(0, 100, 3, CDTXMania.Timer);
                    if (CDTXMania.rPreviousStage == CDTXMania.stageResult)
                    {
                        this.actFIfrom結果画面.tフェードイン開始();
                        base.ePhaseID = CStage.EPhase.選曲_結果画面からのフェードイン;
                    }
                    else
                    {
                        this.actFIFO.tフェードイン開始();
                        base.ePhaseID = CStage.EPhase.Common_FadeIn;
                    }
                    this.tSelectedSongChanged();
                    base.bJustStartedUpdate = false;
                }
                //---------------------
                #endregion

                this.ct登場時アニメ用共通.tUpdate();

                if (this.txBackground != null)
                {
                    this.txBackground.tDraw2D(CDTXMania.app.Device, 0, 0);
                }

                this.actPreimagePanel.OnUpdateAndDraw();
                //	this.bIsEnumeratingSongs = !this.actPreimageパネル.bIsPlayingPremovie;				// #27060 2011.3.2 yyagi: #PREMOVIE再生中は曲検索を中断する

                this.actStatusPanel.OnUpdateAndDraw();
                this.actArtistComment.OnUpdateAndDraw();
                this.actSongList.OnUpdateAndDraw();
                this.actPerHistoryPanel.OnUpdateAndDraw();
                int y = 0;
                if (this.ct登場時アニメ用共通.b進行中)
                {
                    double db登場割合  = ((double)this.ct登場時アニメ用共通.nCurrentValue) / 100.0;                          // 100が最終値
                    double dbY表示割合 = Math.Sin(Math.PI / 2 * db登場割合);
                    y = ((int)(this.txTopPanel.szImageSize.Height * dbY表示割合)) - this.txTopPanel.szImageSize.Height;
                }
                if (this.txTopPanel != null)
                {
                    this.txTopPanel.tDraw2D(CDTXMania.app.Device, 0, y);
                }

                this.actInformation.OnUpdateAndDraw();
                if (this.txBottomPanel != null)
                {
                    this.txBottomPanel.tDraw2D(CDTXMania.app.Device, 0, 720 - this.txBottomPanel.szImageSize.Height);
                }

                this.actPresound.OnUpdateAndDraw();
//				this.actオプションパネル.OnUpdateAndDraw();
                this.actShowCurrentPosition.OnUpdateAndDraw();                                                                          // #27648 2011.3.28 yyagi

                switch (base.ePhaseID)
                {
                case CStage.EPhase.Common_FadeIn:
                    if (this.actFIFO.OnUpdateAndDraw() != 0)
                    {
                        base.ePhaseID = CStage.EPhase.Common_DefaultState;
                    }
                    break;

                case CStage.EPhase.Common_FadeOut:
                    if (this.actFIFO.OnUpdateAndDraw() == 0)
                    {
                        break;
                    }
                    return((int)this.eReturnValueWhenFadeOutCompleted);

                case CStage.EPhase.選曲_結果画面からのフェードイン:
                    if (this.actFIfrom結果画面.OnUpdateAndDraw() != 0)
                    {
                        base.ePhaseID = CStage.EPhase.Common_DefaultState;
                    }
                    break;

                case CStage.EPhase.選曲_NowLoading画面へのフェードアウト:
//						if( this.actFOtoNowLoading.OnUpdateAndDraw() == 0 )
//						{
//							break;
//						}
                    return((int)this.eReturnValueWhenFadeOutCompleted);
                }
                if (!this.bBGMPlayed && (base.ePhaseID == CStage.EPhase.Common_DefaultState))
                {
                    CDTXMania.Skin.bgm選曲画面.n音量_次に鳴るサウンド = 100;
                    CDTXMania.Skin.bgm選曲画面.tPlay();
                    this.bBGMPlayed = true;
                }


//Debug.WriteLine( "パンくず=" + this.r現在選択中の曲.strBreadcrumbs );


                // キー入力
                if (base.ePhaseID == CStage.EPhase.Common_DefaultState &&
                    CDTXMania.actPluginOccupyingInput == null)
                {
                    #region [ 簡易CONFIGでMore、またはShift+F1: 詳細CONFIG呼び出し ]
                    if (actQuickConfig.bGotoDetailConfig)
                    {                           // 詳細CONFIG呼び出し
                        actQuickConfig.tDeativatePopupMenu();
                        this.actPresound.tサウンド停止();
                        this.eReturnValueWhenFadeOutCompleted = EReturnValue.CallConfig;                                // #24525 2011.3.16 yyagi: [SHIFT]-[F1]でCONFIG呼び出し
                        this.actFIFO.tStartFadeOut();
                        base.ePhaseID = CStage.EPhase.Common_FadeOut;
                        CDTXMania.Skin.soundCancel.tPlay();
                        return(0);
                    }
                    #endregion
                    if (!this.actSortSongs.bIsActivePopupMenu && !this.actQuickConfig.bIsActivePopupMenu && !CDTXMania.app.bテキスト入力中)
                    {
                        #region [ ESC ]
                        if (CDTXMania.InputManager.Keyboard.bKeyPressed((int)SlimDXKey.Escape) || ((CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.LC) || CDTXMania.Pad.bPressedGB(EPad.Pick)) && ((this.actSongList.rSelectedSong != null) && (this.actSongList.rSelectedSong.r親ノード == null))))
                        {       // [ESC]
                            CDTXMania.Skin.soundCancel.tPlay();
                            this.eReturnValueWhenFadeOutCompleted = EReturnValue.ReturnToTitle;
                            this.actFIFO.tStartFadeOut();
                            base.ePhaseID = CStage.EPhase.Common_FadeOut;
                            return(0);
                        }
                        #endregion
                        #region [ CONFIG画面 ]
                        if (CDTXMania.Pad.bPressed(EInstrumentPart.GUITAR, EPad.Help))
                        {                                                                    // [SHIFT] + [F1] CONFIG
                            this.actPresound.tサウンド停止();
                            this.eReturnValueWhenFadeOutCompleted = EReturnValue.CallConfig; // #24525 2011.3.16 yyagi: [SHIFT]-[F1]でCONFIG呼び出し
                            this.actFIFO.tStartFadeOut();
                            base.ePhaseID = CStage.EPhase.Common_FadeOut;
                            CDTXMania.Skin.soundCancel.tPlay();
                            return(0);
                        }
                        #endregion
                        #region [ Shift-F2: 未使用 ]
                        // #24525 2011.3.16 yyagi: [SHIFT]+[F2]は廃止(将来発生するかもしれない別用途のためにキープ)

                        /*
                         * if ((CDTXMania.InputManager.Keyboard.bKeyPressing((int)SlimDXKey.RightShift) || CDTXMania.InputManager.Keyboard.bKeyPressing((int)SlimDXKey.LeftShift)) &&
                         * CDTXMania.InputManager.Keyboard.bKeyPressed((int)SlimDXKey.F2))
                         * {	// [SHIFT] + [F2] CONFIGURATION
                         * this.actPresound.tサウンド停止();
                         * this.eReturnValueAfterFadeOut = EReturnValue.オプション呼び出し;
                         * this.actFIFO.tStartFadeOut();
                         * base.ePhaseID = CStage.EPhase.Common_FadeOut;
                         * CDTXMania.Skin.soundCancel.tPlay();
                         * return 0;
                         * }
                         */
                        #endregion
                        if (this.actSongList.rSelectedSong != null)
                        {
                            #region [ Decide ]
                            if ((CDTXMania.Pad.bPressedDGB(EPad.Decide) || CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.CY) || CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.RD)) ||
                                (CDTXMania.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && CDTXMania.InputManager.Keyboard.bKeyPressed((int)SlimDXKey.Return)))
                            {
                                if (this.actSongList.rSelectedSong != null)
                                {
                                    switch (this.actSongList.rSelectedSong.eNodeType)
                                    {
                                    case CSongListNode.ENodeType.SCORE:
                                        CDTXMania.Skin.soundDecide.tPlay();
                                        this.tSelectSong();
                                        break;

                                    case CSongListNode.ENodeType.SCORE_MIDI:
                                        CDTXMania.Skin.soundDecide.tPlay();
                                        this.tSelectSong();
                                        break;

                                    case CSongListNode.ENodeType.BOX:
                                    {
                                        CDTXMania.Skin.soundDecide.tPlay();
                                        bool bNeedChangeSkin = this.actSongList.tGoIntoBOX();
                                        if (bNeedChangeSkin)
                                        {
                                            this.eReturnValueWhenFadeOutCompleted = EReturnValue.ChangeSking;
                                            base.ePhaseID = EPhase.選曲_NowLoading画面へのフェードアウト;
                                        }
                                    }
                                    break;

                                    case CSongListNode.ENodeType.BACKBOX:
                                    {
                                        CDTXMania.Skin.soundCancel.tPlay();
                                        bool bNeedChangeSkin = this.actSongList.tExitBOX();
                                        if (bNeedChangeSkin)
                                        {
                                            this.eReturnValueWhenFadeOutCompleted = EReturnValue.ChangeSking;
                                            base.ePhaseID = EPhase.選曲_NowLoading画面へのフェードアウト;
                                        }
                                    }
                                    break;

                                    case CSongListNode.ENodeType.RANDOM:
                                        CDTXMania.Skin.soundDecide.tPlay();
                                        this.tSelectSongRandomly();
                                        break;
                                    }
                                }
                            }
                            #endregion
                            #region [ Up ]
                            this.ctKeyRepeat.Up.tRepeatKey(CDTXMania.InputManager.Keyboard.bKeyPressing((int)SlimDXKey.UpArrow), new CCounter.DGキー処理(this.tMoveCursorUp));
                            this.ctKeyRepeat.R.tRepeatKey(CDTXMania.Pad.b押されているGB(EPad.R), new CCounter.DGキー処理(this.tMoveCursorUp));
                            //SD changed to HT to follow Gitadora style
                            if (CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.HT))
                            {
                                this.tMoveCursorUp();
                            }
                            #endregion
                            #region [ Down ]
                            this.ctKeyRepeat.Down.tRepeatKey(CDTXMania.InputManager.Keyboard.bKeyPressing((int)SlimDXKey.DownArrow), new CCounter.DGキー処理(this.tMoveCursorDown));
                            this.ctKeyRepeat.B.tRepeatKey(CDTXMania.Pad.b押されているGB(EPad.G), new CCounter.DGキー処理(this.tMoveCursorDown));
                            //FT changed to LT to follow Gitadora style
                            if (CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.LT))
                            {
                                this.tMoveCursorDown();
                            }
                            #endregion
                            #region [ Upstairs ]
                            if (((this.actSongList.rSelectedSong != null) && (this.actSongList.rSelectedSong.r親ノード != null)) && (CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.LC) || CDTXMania.Pad.bPressedGB(EPad.Pick)))
                            {
                                this.actPresound.tサウンド停止();
                                CDTXMania.Skin.soundCancel.tPlay();
                                this.actSongList.tExitBOX();
                                this.tSelectedSongChanged();
                            }
                            #endregion
                            #region [ BDx2: 簡易CONFIG ]
                            if (CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.BD))
                            {   // [BD]x2 スクロール速度変更
                                CommandHistory.Add(EInstrumentPart.DRUMS, EPadFlag.BD);
                                EPadFlag[] comChangeScrollSpeed = new EPadFlag[] { EPadFlag.BD, EPadFlag.BD };
                                if (CommandHistory.CheckCommand(comChangeScrollSpeed, EInstrumentPart.DRUMS))
                                {
                                    // Debug.WriteLine( "ドラムススクロール速度変更" );
                                    // CDTXMania.ConfigIni.nScrollSpeed.Drums = ( CDTXMania.ConfigIni.nScrollSpeed.Drums + 1 ) % 0x10;
                                    CDTXMania.Skin.soundChange.tPlay();
                                    this.actQuickConfig.tActivatePopupMenu(EInstrumentPart.DRUMS);
                                }
                            }
                            #endregion
                            #region [ HHx2: 難易度変更 ]
                            if (CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.HH) || CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.HHO))
                            {   // [HH]x2 難易度変更
                                CommandHistory.Add(EInstrumentPart.DRUMS, EPadFlag.HH);
                                EPadFlag[] comChangeDifficulty = new EPadFlag[] { EPadFlag.HH, EPadFlag.HH };
                                if (CommandHistory.CheckCommand(comChangeDifficulty, EInstrumentPart.DRUMS))
                                {
                                    Debug.WriteLine("ドラムス難易度変更");
                                    this.actSongList.t難易度レベルをひとつ進める();
                                    //CDTXMania.Skin.sound変更音.tPlay();
                                }
                            }
                            #endregion
                            #region [ Bx2 Guitar: 難易度変更 ]
                            if (CDTXMania.Pad.bPressed(EInstrumentPart.GUITAR, EPad.B)) // #24177 2011.1.17 yyagi || -> &&
                            {                                                           // [B]x2 ギター難易度変更
                                CommandHistory.Add(EInstrumentPart.GUITAR, EPadFlag.B);
                                EPadFlag[] comChangeDifficultyG = new EPadFlag[] { EPadFlag.B, EPadFlag.B };
                                if (CommandHistory.CheckCommand(comChangeDifficultyG, EInstrumentPart.GUITAR))
                                {
                                    Debug.WriteLine("ギター難易度変更");
                                    this.actSongList.t難易度レベルをひとつ進める();
                                    //CDTXMania.Skin.sound変更音.tPlay();
                                }
                            }
                            #endregion
                            #region [ Bx2 Bass: 難易度変更 ]
                            if (CDTXMania.Pad.bPressed(EInstrumentPart.BASS, EPad.B)) // #24177 2011.1.17 yyagi || -> &&
                            {                                                         // [B]x2 ベース難易度変更
                                CommandHistory.Add(EInstrumentPart.BASS, EPadFlag.B);
                                EPadFlag[] comChangeDifficultyB = new EPadFlag[] { EPadFlag.B, EPadFlag.B };
                                if (CommandHistory.CheckCommand(comChangeDifficultyB, EInstrumentPart.BASS))
                                {
                                    Debug.WriteLine("ベース難易度変更");
                                    this.actSongList.t難易度レベルをひとつ進める();
                                    //CDTXMania.Skin.sound変更音.tPlay();
                                }
                            }
                            #endregion
                            #region [ Yx2 Guitar: ギターとベースを入れ替え ]
                            if (CDTXMania.Pad.bPressed(EInstrumentPart.GUITAR, EPad.Y))
                            {   // Pick, Y, Y, Pick で、ギターとベースを入れ替え
                                CommandHistory.Add(EInstrumentPart.GUITAR, EPadFlag.Y);
                                EPadFlag[] comSwapGtBs1 = new EPadFlag[] { EPadFlag.Y, EPadFlag.Y };
                                if (CommandHistory.CheckCommand(comSwapGtBs1, EInstrumentPart.GUITAR))
                                {
                                    Debug.WriteLine("ギターとベースの入れ替え1");
                                    CDTXMania.Skin.soundChange.tPlay();
                                    // ギターとベースのキーを入れ替え
                                    //CDTXMania.ConfigIni.SwapGuitarBassKeyAssign();
                                    CDTXMania.ConfigIni.bIsSwappedGuitarBass = !CDTXMania.ConfigIni.bIsSwappedGuitarBass;
                                }
                            }
                            #endregion
                            #region [ Yx2 Bass: ギターとベースを入れ替え ]
                            if (CDTXMania.Pad.bPressed(EInstrumentPart.BASS, EPad.Y))
                            {   // ベース[Pick]: コマンドとしてEnqueue
                                CommandHistory.Add(EInstrumentPart.BASS, EPadFlag.Y);
                                // Pick, Y, Y, Pick で、ギターとベースを入れ替え
                                EPadFlag[] comSwapGtBs1 = new EPadFlag[] { EPadFlag.Y, EPadFlag.Y };
                                if (CommandHistory.CheckCommand(comSwapGtBs1, EInstrumentPart.BASS))
                                {
                                    Debug.WriteLine("ギターとベースの入れ替え2");
                                    CDTXMania.Skin.soundChange.tPlay();
                                    // ギターとベースのキーを入れ替え
                                    //CDTXMania.ConfigIni.SwapGuitarBassKeyAssign();
                                    CDTXMania.ConfigIni.bIsSwappedGuitarBass = !CDTXMania.ConfigIni.bIsSwappedGuitarBass;
                                }
                            }
                            #endregion
                            #region [ Px2 Guitar: 簡易CONFIG ]
                            if (CDTXMania.Pad.bPressed(EInstrumentPart.GUITAR, EPad.P))
                            {   // [BD]x2 スクロール速度変更
                                CommandHistory.Add(EInstrumentPart.GUITAR, EPadFlag.P);
                                EPadFlag[] comChangeScrollSpeed = new EPadFlag[] { EPadFlag.P, EPadFlag.P };
                                if (CommandHistory.CheckCommand(comChangeScrollSpeed, EInstrumentPart.GUITAR))
                                {
                                    // Debug.WriteLine( "ドラムススクロール速度変更" );
                                    // CDTXMania.ConfigIni.nScrollSpeed.Drums = ( CDTXMania.ConfigIni.nScrollSpeed.Drums + 1 ) % 0x10;
                                    CDTXMania.Skin.soundChange.tPlay();
                                    this.actQuickConfig.tActivatePopupMenu(EInstrumentPart.GUITAR);
                                }
                            }
                            #endregion
                            #region [ Px2 Bass: 簡易CONFIG ]
                            if (CDTXMania.Pad.bPressed(EInstrumentPart.BASS, EPad.P))
                            {   // [BD]x2 スクロール速度変更
                                CommandHistory.Add(EInstrumentPart.BASS, EPadFlag.P);
                                EPadFlag[] comChangeScrollSpeed = new EPadFlag[] { EPadFlag.P, EPadFlag.P };
                                if (CommandHistory.CheckCommand(comChangeScrollSpeed, EInstrumentPart.BASS))
                                {
                                    // Debug.WriteLine( "ドラムススクロール速度変更" );
                                    // CDTXMania.ConfigIni.nScrollSpeed.Drums = ( CDTXMania.ConfigIni.nScrollSpeed.Drums + 1 ) % 0x10;
                                    CDTXMania.Skin.soundChange.tPlay();
                                    this.actQuickConfig.tActivatePopupMenu(EInstrumentPart.BASS);
                                }
                            }
                            #endregion
                            #region [ Y P Guitar: ソート画面 ]
                            if (CDTXMania.Pad.bPressing(EInstrumentPart.GUITAR, EPad.Y) && CDTXMania.Pad.bPressed(EInstrumentPart.GUITAR, EPad.P))
                            {   // ギター[Pick]: コマンドとしてEnqueue
                                CDTXMania.Skin.soundChange.tPlay();
                                this.actSortSongs.tActivatePopupMenu(EInstrumentPart.GUITAR, ref this.actSongList);
                            }
                            #endregion
                            #region [ Y P Bass: ソート画面 ]
                            if (CDTXMania.Pad.bPressing(EInstrumentPart.BASS, EPad.Y) && CDTXMania.Pad.bPressed(EInstrumentPart.BASS, EPad.P))
                            {   // ベース[Pick]: コマンドとしてEnqueue
                                CDTXMania.Skin.soundChange.tPlay();
                                this.actSortSongs.tActivatePopupMenu(EInstrumentPart.BASS, ref this.actSongList);
                            }
                            #endregion
                            #region [ FTx2 Drums: ソート画面 ]
                            if (CDTXMania.Pad.bPressed(EInstrumentPart.DRUMS, EPad.FT))
                            {   // [HT]x2 ソート画面        2013.12.31.kairera0467
                                //Change to FT x 2 to follow Gitadora style
                                //
                                CommandHistory.Add(EInstrumentPart.DRUMS, EPadFlag.FT);
                                EPadFlag[] comSort = new EPadFlag[] { EPadFlag.FT, EPadFlag.FT };
                                if (CommandHistory.CheckCommand(comSort, EInstrumentPart.DRUMS))
                                {
                                    CDTXMania.Skin.soundChange.tPlay();
                                    this.actSortSongs.tActivatePopupMenu(EInstrumentPart.DRUMS, ref this.actSongList);
                                }
                            }
                            #endregion
                        }
                        //if( CDTXMania.InputManager.Keyboard.bKeyPressed((int)SlimDXKey.F6) )
                        //{
                        //    if (CDTXMania.EnumSongs.IsEnumerating)
                        //    {
                        //        // Debug.WriteLine( "バックグラウンドでEnumeratingSongs中だったので、一旦中断します。" );
                        //        CDTXMania.EnumSongs.Abort();
                        //        CDTXMania.actEnumSongs.OnDeactivate();
                        //    }

                        //    CDTXMania.EnumSongs.StartEnumFromDisk();
                        //    //CDTXMania.EnumSongs.ChangeEnumeratePriority(ThreadPriority.Normal);
                        //    CDTXMania.actEnumSongs.bコマンドでの曲データ取得 = true;
                        //    CDTXMania.actEnumSongs.OnActivate();
                        //}
                    }

                    #region [Test text field]
                    if (!CDTXMania.app.bテキスト入力中 && CDTXMania.InputManager.Keyboard.bKeyPressed((int)SlimDXKey.Backspace))
                    {
                        CDTXMania.Skin.soundDecide.tPlay();
                        this.actTextBox.t表示();
                        this.actTextBox.t入力を開始();
                    }
                    #endregion

                    this.actSortSongs.tUpdateAndDraw();
                    this.actQuickConfig.tUpdateAndDraw();
                    this.actTextBox.OnUpdateAndDraw();
                    if (actTextBox.b入力が終了した)
                    {
                        strSearchString = actTextBox.str確定文字列を返す();
                        string searchOutcome = "";
                        if (strSearchString != "" && strSearchString != CSongSearch.ExitSwitch)
                        {
                            searchOutcome = "Search Input: " + strSearchString;
                            Trace.TraceInformation("Search Input: " + strSearchString);
                            if (CDTXMania.SongManager.listSongBeforeSearch == null)
                            {
                                CDTXMania.SongManager.listSongBeforeSearch = CDTXMania.SongManager.listSongRoot;
                            }

                            List <CSongListNode> searchOutputList = CSongSearch.tSearchForSongs(CDTXMania.SongManager.listSongBeforeSearch, strSearchString);
                            if (searchOutputList.Count == 0)
                            {
                                Trace.TraceInformation("No songs found!");
                                //To print a outcome message
                                searchOutcome += "\r\nNo songs found";
                            }
                            else
                            {
                                CDTXMania.SongManager.listSongRoot = searchOutputList;

                                //
                                this.actSongList.SearchUpdate();
                                //this.actSongList.Refresh(CDTXMania.SongManager, true);
                            }

                            this.tUpdateSearchNotification(searchOutcome);
                            CDTXMania.Skin.soundDecide.tPlay();
                        }
                        else if (strSearchString == CSongSearch.ExitSwitch)
                        {
                            if (CDTXMania.SongManager.listSongBeforeSearch != null)
                            {
                                CDTXMania.SongManager.listSongRoot         = CDTXMania.SongManager.listSongBeforeSearch;
                                CDTXMania.SongManager.listSongBeforeSearch = null;
                                this.actSongList.SearchUpdate();
                                this.tUpdateSearchNotification("Exit Search Mode");
                                CDTXMania.Skin.soundDecide.tPlay();
                            }
                            else
                            {
                                //Play cancel sound if input has no effect
                                CDTXMania.Skin.soundCancel.tPlay();
                            }
                        }
                        else
                        {
                            //Play cancel sound if input has no effect
                            CDTXMania.Skin.soundCancel.tPlay();
                        }

                        actTextBox.t非表示();
                    }

                    if (this.txSearchInputNotification != null)
                    {
                        this.txSearchInputNotification.tDraw2D(CDTXMania.app.Device, 10, 160);
                    }
                }
            }
            return(0);
        }