Demo program of SAI_IO class for audio signal input and output. DISCO-F746 搭載の CODEC (WM8994) を使ってオーディオ信号の入出力を行うための SAI_IO クラスの使用例.

Dependencies:   BSP_DISCO_F746NG F746_GUI F746_SAI_IO LCD_DISCO_F746NG TS_DISCO_F746NG mbed

Revision:
3:68f16dc80b68
Parent:
2:034168531ce0
Child:
4:0beea5d9a205
--- a/main.cpp	Tue May 10 12:26:51 2016 +0000
+++ b/main.cpp	Wed Jun 15 12:54:02 2016 +0000
@@ -10,7 +10,7 @@
 //  この MyBSP_AUDIO_IN_OUT_Init() は "MyBSP_AUDIO_IN_OUT_Init.hpp" で
 //  定義されている.
 //
-//  2016/05/10, Copyright (c) 2016 MIKAMI, Naoki
+//  2016/06/15, Copyright (c) 2016 MIKAMI, Naoki
 //----------------------------------------------------------------------
 
 #include "ButtonGroup.hpp"
@@ -32,6 +32,8 @@
     LCD_DISCO_F746NG *lcd = GuiBase::GetLcdPtr();
     lcd->Clear(BACK_COLOR);
 
+    Label labelTitle(240, 10, "Demo of Audio I/O", Label::CENTER, Font16);
+
     const uint16_t BG_LEFT = 370;
     const uint16_t BG_WIDTH = 110;
     const uint16_t BG_HEIGHT = 40;
@@ -40,9 +42,9 @@
     ButtonGroup inSw(BG_LEFT, 180, BG_WIDTH/2, BG_HEIGHT,
                      2, INPUT, 0, 0, 2, 1);
 
-    const string MOVE_HALT[2] = {"MOVE", "HALT"};
-    ButtonGroup moveHalt(BG_LEFT, 230, BG_WIDTH/2, BG_HEIGHT,
-                      2, MOVE_HALT, 0, 0, 2, 0);
+    const string RUN_STOP[2] = {"RUN", "STOP"};
+    ButtonGroup runStop(BG_LEFT, 230, BG_WIDTH/2, BG_HEIGHT,
+                         2, RUN_STOP, 0, 0, 2, 0);
 
     lcd->SetTextColor(LCD_COLOR_WHITE);
     lcd->SetFont(&Font16);
@@ -63,12 +65,18 @@
 
     mySai.RecordIn();
     mySai.PlayOut();
+    bool run = true;    // run
 
     while(1)
     {
         int sw = 0;
-        if (moveHalt.GetTouchedNumber(sw))
+        if (runStop.GetTouchedNumber(sw))
+        {
             on = (sw == 0) ? true : false;
+            if (on && !run) mySai.ResumeOut();
+            if (!on && run) mySai.PauseOut();
+            run = on;
+        }
 
         int swNow;
         if (inSw.GetTouchedNumber(swNow) && (swNow != inSelect))