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
SD_PlayerSkeleton.hpp@7:930d50953ec2, 2016-11-15 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Tue Nov 15 13:28:02 2016 +0000
- Revision:
- 7:930d50953ec2
- Parent:
- 6:6fe2b62f259d
- Child:
- 8:59d3f9c81c4f
8
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:d310bb78455d | 1 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:d310bb78455d | 2 | // SD プレーヤー用抽象基底クラス(ヘッダ) |
MikamiUitOpen | 0:d310bb78455d | 3 | // |
MikamiUitOpen | 7:930d50953ec2 | 4 | // 2016/11/15, 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 | 6:6fe2b62f259d | 59 | // メニュ-のボタンがタッチされるまで DoIfHandled() を実行しながら待つ |
MikamiUitOpen | 6:6fe2b62f259d | 60 | void WaitTouched(int num) |
MikamiUitOpen | 6:6fe2b62f259d | 61 | { while (!menu_.Touched(num)) DoIfHandled(); } |
MikamiUitOpen | 6:6fe2b62f259d | 62 | int WaitTouched(); |
MikamiUitOpen | 0:d310bb78455d | 63 | |
MikamiUitOpen | 2:511479736d6e | 64 | // コピー・コンストラクタとオブジェクトの代入演算子は使用禁止 |
MikamiUitOpen | 2:511479736d6e | 65 | SD_PlayerSkeleton(const SD_PlayerSkeleton&); |
MikamiUitOpen | 2:511479736d6e | 66 | SD_PlayerSkeleton& operator=(const SD_PlayerSkeleton&); |
MikamiUitOpen | 2:511479736d6e | 67 | |
MikamiUitOpen | 0:d310bb78455d | 68 | //------------------------------------- |
MikamiUitOpen | 0:d310bb78455d | 69 | // 以下は仮想関数 |
MikamiUitOpen | 0:d310bb78455d | 70 | //------------------------------------- |
MikamiUitOpen | 5:7c8f0fc9dfb6 | 71 | // 1フレーム分の信号処理 |
MikamiUitOpen | 0:d310bb78455d | 72 | virtual void SignalProcessing() = 0; |
MikamiUitOpen | 5:7c8f0fc9dfb6 | 73 | // 信号処理のパラメータ変更など |
MikamiUitOpen | 0:d310bb78455d | 74 | virtual void Modefy() {} |
MikamiUitOpen | 7:930d50953ec2 | 75 | // 曲の再生時の表示 |
MikamiUitOpen | 0:d310bb78455d | 76 | virtual void Display() {} |
MikamiUitOpen | 6:6fe2b62f259d | 77 | // 信号処理で必要になるクリア処理 |
MikamiUitOpen | 0:d310bb78455d | 78 | virtual void Clear() {} |
MikamiUitOpen | 0:d310bb78455d | 79 | }; |
MikamiUitOpen | 0:d310bb78455d | 80 | } |
MikamiUitOpen | 0:d310bb78455d | 81 | #endif // F746_SD_PLAYER_SKELETON_HPP |