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

Committer:
MikamiUitOpen
Date:
Mon Mar 20 02:34:49 2017 +0000
Revision:
14:284093250bab
Parent:
8:59d3f9c81c4f
Child:
15:4ac0f4715454
15

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:d310bb78455d 1 //--------------------------------------------------------------
MikamiUitOpen 0:d310bb78455d 2 // SD プレーヤー用抽象基底クラス(ヘッダ)
MikamiUitOpen 0:d310bb78455d 3 //
MikamiUitOpen 14:284093250bab 4 // 2017/03/20, Copyright (c) 2016 MIKAMI, Naoki
MikamiUitOpen 0:d310bb78455d 5 //--------------------------------------------------------------
MikamiUitOpen 0:d310bb78455d 6
MikamiUitOpen 0:d310bb78455d 7 #ifndef F746_SD_PLAYER_SKELETON_HPP
MikamiUitOpen 0:d310bb78455d 8 #define F746_SD_PLAYER_SKELETON_HPP
MikamiUitOpen 0:d310bb78455d 9
MikamiUitOpen 0:d310bb78455d 10 #include "SAI_InOut.hpp"
MikamiUitOpen 1:c7968701f7b3 11 #include "F746_GUI.hpp"
MikamiUitOpen 0:d310bb78455d 12 #include "FileSelectorWav.hpp"
MikamiUitOpen 0:d310bb78455d 13 #include "SD_WavReader.hpp"
MikamiUitOpen 0:d310bb78455d 14
MikamiUitOpen 0:d310bb78455d 15 using namespace Mikami;
MikamiUitOpen 0:d310bb78455d 16
MikamiUitOpen 0:d310bb78455d 17 namespace Mikami
MikamiUitOpen 0:d310bb78455d 18 {
MikamiUitOpen 0:d310bb78455d 19 class SD_PlayerSkeleton
MikamiUitOpen 0:d310bb78455d 20 {
MikamiUitOpen 0:d310bb78455d 21 public:
MikamiUitOpen 5:7c8f0fc9dfb6 22 // リセット・ボタンを使う場合は resetButton を true とする
MikamiUitOpen 5:7c8f0fc9dfb6 23 SD_PlayerSkeleton(string str, int fs, bool resetButton = false);
MikamiUitOpen 1:c7968701f7b3 24 virtual ~SD_PlayerSkeleton() { if (reset_ != NULL) delete reset_; }
MikamiUitOpen 6:6fe2b62f259d 25 // SD プレーヤーの処理の実行
MikamiUitOpen 0:d310bb78455d 26 void Execute();
MikamiUitOpen 0:d310bb78455d 27
MikamiUitOpen 0:d310bb78455d 28 protected:
MikamiUitOpen 0:d310bb78455d 29 // ボタン用の定数
MikamiUitOpen 0:d310bb78455d 30 static const uint16_t BG_LEFT_ = 414;
MikamiUitOpen 0:d310bb78455d 31 static const uint16_t BG_WIDTH_ = 66;
MikamiUitOpen 0:d310bb78455d 32 static const uint16_t BG_HEIGHT_ = 36;
MikamiUitOpen 0:d310bb78455d 33
MikamiUitOpen 0:d310bb78455d 34 const int32_t FRAME_SIZE_; // フレームバッファのサイズ
MikamiUitOpen 0:d310bb78455d 35 Array<int16_t> sn_; // フレームバッファ
MikamiUitOpen 0:d310bb78455d 36
MikamiUitOpen 0:d310bb78455d 37 SaiIO mySai_;
MikamiUitOpen 0:d310bb78455d 38 SD_WavReader sdReader_; // SD カード読み込み用オブジェクト
MikamiUitOpen 0:d310bb78455d 39
MikamiUitOpen 6:6fe2b62f259d 40 // 選択されたファイル名を取得
MikamiUitOpen 0:d310bb78455d 41 string GetFileName() { return fileName_; }
MikamiUitOpen 6:6fe2b62f259d 42 // 選択されたファイル名から拡張子を除いたものを取得
MikamiUitOpen 4:d730d024ac32 43 string GetFileNameNoExt();
MikamiUitOpen 0:d310bb78455d 44
MikamiUitOpen 0:d310bb78455d 45 private:
MikamiUitOpen 0:d310bb78455d 46 string fileName_; // 選択されたファイル名
MikamiUitOpen 0:d310bb78455d 47 Label title_; // 上部に表示されるタイトル
MikamiUitOpen 0:d310bb78455d 48 FileSelector selector_;
MikamiUitOpen 0:d310bb78455d 49 ButtonGroup menu_;
MikamiUitOpen 5:7c8f0fc9dfb6 50 ResetButton *reset_; // リセットボタン用オブジェクトのポインタ
MikamiUitOpen 0:d310bb78455d 51
MikamiUitOpen 0:d310bb78455d 52 // SD カードのファイルのオープン
MikamiUitOpen 0:d310bb78455d 53 int32_t SD_Open();
MikamiUitOpen 0:d310bb78455d 54 // ファイルの選択
MikamiUitOpen 0:d310bb78455d 55 void SelectFile();
MikamiUitOpen 5:7c8f0fc9dfb6 56 // パネルが操作された場合の処理
MikamiUitOpen 6:6fe2b62f259d 57 void DoIfHandled();
MikamiUitOpen 6:6fe2b62f259d 58
MikamiUitOpen 14:284093250bab 59 // メニューの指定したボタンがタッチされるまで DoIfHandled() を実行しながら待つ
MikamiUitOpen 6:6fe2b62f259d 60 void WaitTouched(int num)
MikamiUitOpen 6:6fe2b62f259d 61 { while (!menu_.Touched(num)) DoIfHandled(); }
MikamiUitOpen 14:284093250bab 62 // メニューのいずれかのボタンがタッチされるまで DoIfHandled() を実行しながら待つ
MikamiUitOpen 6:6fe2b62f259d 63 int WaitTouched();
MikamiUitOpen 0:d310bb78455d 64
MikamiUitOpen 2:511479736d6e 65 // コピー・コンストラクタとオブジェクトの代入演算子は使用禁止
MikamiUitOpen 2:511479736d6e 66 SD_PlayerSkeleton(const SD_PlayerSkeleton&);
MikamiUitOpen 2:511479736d6e 67 SD_PlayerSkeleton& operator=(const SD_PlayerSkeleton&);
MikamiUitOpen 2:511479736d6e 68
MikamiUitOpen 0:d310bb78455d 69 //-------------------------------------
MikamiUitOpen 0:d310bb78455d 70 // 以下は仮想関数
MikamiUitOpen 0:d310bb78455d 71 //-------------------------------------
MikamiUitOpen 5:7c8f0fc9dfb6 72 // 1フレーム分の信号処理
MikamiUitOpen 0:d310bb78455d 73 virtual void SignalProcessing() = 0;
MikamiUitOpen 5:7c8f0fc9dfb6 74 // 信号処理のパラメータ変更など
MikamiUitOpen 0:d310bb78455d 75 virtual void Modefy() {}
MikamiUitOpen 7:930d50953ec2 76 // 曲の再生時の表示
MikamiUitOpen 0:d310bb78455d 77 virtual void Display() {}
MikamiUitOpen 6:6fe2b62f259d 78 // 信号処理で必要になるクリア処理
MikamiUitOpen 0:d310bb78455d 79 virtual void Clear() {}
MikamiUitOpen 0:d310bb78455d 80 };
MikamiUitOpen 0:d310bb78455d 81 }
MikamiUitOpen 0:d310bb78455d 82 #endif // F746_SD_PLAYER_SKELETON_HPP