revised version of F746_SD_GraphicEqualizer
Dependencies: BSP_DISCO_F746NG F746_GUI F746_SAI_IO FrequencyResponseDrawer LCD_DISCO_F746NG SDFileSystem_Warning_Fixed TS_DISCO_F746NG mbed
Fork of F746_SD_GraphicEqualizer by
Diff: main.cpp
- Revision:
- 7:be29ba9c83b2
- Parent:
- 5:a5a4f9d7b26c
- Child:
- 9:0d5bd1539291
--- a/main.cpp Sat May 07 08:15:00 2016 +0000
+++ b/main.cpp Mon May 09 08:53:23 2016 +0000
@@ -5,7 +5,7 @@
// 上記以外の形式は扱わない
// 出力:モノラル
//
-// 2016/05/07, Copyright (c) 2016 MIKAMI, Naoki
+// 2016/05/09, Copyright (c) 2016 MIKAMI, Naoki
//--------------------------------------------------------------
#include "MyFunctions.hpp"
@@ -30,7 +30,7 @@
// ボタン用の定数
const uint16_t BG_LEFT = 414;
const uint16_t BG_WIDTH = 66;
- const uint16_t BG_HEIGHT = 40;
+ const uint16_t BG_HEIGHT = 36;
// ButtonGroup: "OPEN", "PLAY", "PAUSE", "RESUME", "STOP"
const string MENU[5] = {"OPEN", "PLAY", "PAUSE", "RESUME", "STOP"};
@@ -40,8 +40,10 @@
menu.Activate(0);
for (int n=1; n<5; n++) menu.Inactivate(n);
+ Button flat(BG_LEFT, 197, BG_WIDTH, BG_HEIGHT, "FLAT");
+
const string ON_OFF[2] = {"ON", "OFF"};
- ButtonGroup onOff(BG_LEFT, 230, BG_WIDTH/2, BG_HEIGHT,
+ ButtonGroup onOff(BG_LEFT, 235, BG_WIDTH/2, BG_HEIGHT,
2, ON_OFF, 0, 0, 2, 0);
// フィルタの設計と周波数特性描画用
@@ -56,7 +58,7 @@
// 周波数特性変更用スライダ
SeekbarGroup myBars(drawerObj.GetX0(), 178, 82, STAGES,
- drawerObj.GetSpaceX(), -9.6f, 9.6f, 0,
+ drawerObj.GetSpaceX(), -8.0f, 8.0f, 0,
SeekBar::Vertical);
// フィルタの準備
@@ -81,7 +83,7 @@
{
whileFirst = false;
while (!menu.Touched(0)) // OPEN がタッチされるまで待つ
- ModifyFilter(drawerObj, myBars, hn, onOff, on);
+ ModifyFilter(drawerObj, myBars, hn, flat, onOff, on);
SelectFile(menu, selector, myLabel1, fileName);
}
else
@@ -89,14 +91,14 @@
menu.Activate(1); // PLAY 有効
int touch10;
while (!menu.GetTouchedNumber(touch10))
- ModifyFilter(drawerObj, myBars, hn, onOff, on);
+ ModifyFilter(drawerObj, myBars, hn, flat, onOff, on);
if (touch10 == 0)
SelectFile(menu, selector, myLabel1, fileName);
}
loopCount = SD_Open(sdReader, fileName, frameSize);
while (!menu.Touched(1)) // PLAY がタッチされるまで待つ
- ModifyFilter(drawerObj, myBars, hn, onOff, on);
+ ModifyFilter(drawerObj, myBars, hn, flat, onOff, on);
}
else
loopCount = SD_Open(sdReader, fileName, frameSize);
@@ -114,6 +116,7 @@
// IIR フィルタの内部の遅延器のクリア
for (int k=0; k<STAGES; k++) hn[k].Clear();
+ mySai.PlayOut(); // Play 開始
for (int k=0; k<loopCount; k++)
{
@@ -129,7 +132,7 @@
// PLAY か RESUME か STOP がタッチされるまで待つ
int touch134 = -1;
while (!menu.GetTouchedNumber(touch134))
- ModifyFilter(drawerObj, myBars, hn, onOff, on);
+ ModifyFilter(drawerObj, myBars, hn, flat, onOff, on);
switch (touch134)
{
case 1: playOk = true; // 最初から PLAY
@@ -145,9 +148,9 @@
}
if (playOk || stopOk) break;
- ModifyFilter(drawerObj, myBars, hn, onOff, on);
+ ModifyFilter(drawerObj, myBars, hn, flat, onOff, on);
// 1フレーム分の信号処理 (イコライザ) の実行
- ProcessSignal(sdReader, mySai, sn, hn, STAGES, on);
+ SignalProcessing(sdReader, mySai, sn, hn, STAGES, on);
}
mySai.Stop();
menu.Activate(0); // OPEN 有効
