Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SDFileSystem_Warning_Fixed
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();
+ }
}