Library for Skeleton of SD card player. SD カードプレーヤのための骨組みとして使うためのライブラリ.このライブラリを登録した際のプログラム:「F746_SD_Player_Demo」
Dependencies: SDFileSystem_Warning_Fixed
Dependents: F746_SD_Player_Demo F746_SD_VarableFilter F746_SD_GraphicEqualizer F746_MySoundMachine ... more
Diff: SD_PlayerSkeleton.cpp
- Revision:
- 1:c7968701f7b3
- Parent:
- 0:d310bb78455d
- Child:
- 2:511479736d6e
--- a/SD_PlayerSkeleton.cpp Mon Aug 15 04:38:45 2016 +0000 +++ b/SD_PlayerSkeleton.cpp Mon Aug 15 06:06:52 2016 +0000 @@ -1,28 +1,30 @@ //-------------------------------------------------------------- // SD プレーヤー用抽象基底クラス // -// 2016/07/17, Copyright (c) 2016 MIKAMI, Naoki +// 2016/08/15, Copyright (c) 2016 MIKAMI, Naoki //-------------------------------------------------------------- #include "SD_PlayerSkeleton.hpp" namespace Mikami { - SD_PlayerSkeleton::SD_PlayerSkeleton(string str, int fs) + SD_PlayerSkeleton::SD_PlayerSkeleton(string str, int fs, bool reset) : FRAME_SIZE_(2048), sn_(FRAME_SIZE_), mySai_(SaiIO::OUTPUT, FRAME_SIZE_, fs), sdReader_(FRAME_SIZE_), title_(214, 4, str, Label::CENTER, Font16), - selector_(4, 22, 7, 37, sdReader_), + selector_(0, 22, 7, 37, sdReader_), menu_(BG_LEFT_, 2, BG_WIDTH_, BG_HEIGHT_, 5, (string[]){"OPEN", "PLAY", "PAUSE", "RESUME", "STOP"}, - 0, 2, 1) + 0, 2, 1), + resetActive_(reset) { if (!selector_.CreateTable()) BlinkLabel errLabel(240, 100, "SD CARD ERROR", Label::CENTER); menu_.InactivateAll(); menu_.Activate(0); + if (resetActive_) reset_ = new ResetButton(); } void SD_PlayerSkeleton::Execute() @@ -39,7 +41,7 @@ { whileFirst = false; while (!menu_.Touched(0)) // OPEN がタッチされるまで待つ - Modefy(); + CheckCtrl(); SelectFile(); } else @@ -47,13 +49,13 @@ menu_.Activate(1); // PLAY 有効 int touch10; while (!menu_.GetTouchedNumber(touch10)) - Modefy(); + CheckCtrl(); if (touch10 == 0) SelectFile(); } loopCount = SD_Open(); while (!menu_.Touched(1)) // PLAY がタッチされるまで待つ - Modefy(); + CheckCtrl(); } else loopCount = SD_Open(); @@ -62,6 +64,7 @@ title_.Draw(); Display(); // アプリ固有の表示処理 + if (resetActive_) reset_->Draw(); menu_.Inactivate(0); // OPEN 無効 menu_.Activate(2); // PAUSE 有効 @@ -88,7 +91,7 @@ // PLAY か RESUME か STOP がタッチされるまで待つ int touch134 = -1; while (!menu_.GetTouchedNumber(touch134)) - Modefy(); + CheckCtrl(); switch (touch134) { case 1: playOk = true; // 最初から PLAY @@ -104,7 +107,7 @@ } if (playOk || stopOk) break; - Modefy(); + CheckCtrl(); // 1フレーム分の信号処理の実行 SignalProcessing(); } @@ -138,4 +141,11 @@ wait_ms(200); } while (!menu_.Touched(1)); // PLAY がタッチされるまで繰り返す } + + // パネル操作のチェック + void SD_PlayerSkeleton::CheckCtrl() + { + if (resetActive_) reset_->Do(); + Modefy(); + } }