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:
Thu Mar 23 02:58:48 2017 +0000
Revision:
17:abfd6af9a236
Parent:
12:f73e11831c1c
18

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:d310bb78455d 1 //--------------------------------------------------------------
MikamiUitOpen 0:d310bb78455d 2 // FileSelector class ---- Header ----
MikamiUitOpen 0:d310bb78455d 3 // SD カード内のファイル名の一覧を表示し,ファイルを選択する
MikamiUitOpen 0:d310bb78455d 4 //
MikamiUitOpen 17:abfd6af9a236 5 // 2017/03/23, Copyright (c) 2017 MIKAMI, Naoki
MikamiUitOpen 0:d310bb78455d 6 //--------------------------------------------------------------
MikamiUitOpen 0:d310bb78455d 7
MikamiUitOpen 0:d310bb78455d 8 #ifndef FILE_SELECTOR_HPP
MikamiUitOpen 0:d310bb78455d 9 #define FILE_SELECTOR_HPP
MikamiUitOpen 0:d310bb78455d 10
MikamiUitOpen 0:d310bb78455d 11 #include "F746_GUI.hpp"
MikamiUitOpen 0:d310bb78455d 12 #include "SD_WavReader.hpp"
MikamiUitOpen 0:d310bb78455d 13 #include <algorithm> // sort() で使用
MikamiUitOpen 0:d310bb78455d 14 #include <string>
MikamiUitOpen 0:d310bb78455d 15
MikamiUitOpen 0:d310bb78455d 16 namespace Mikami
MikamiUitOpen 0:d310bb78455d 17 {
MikamiUitOpen 0:d310bb78455d 18 class FileSelector
MikamiUitOpen 0:d310bb78455d 19 {
MikamiUitOpen 0:d310bb78455d 20 public:
MikamiUitOpen 0:d310bb78455d 21 FileSelector(uint8_t x0, uint8_t y0, int maxFiles,
MikamiUitOpen 2:511479736d6e 22 int maxNameLength, SD_WavReader &reader);
MikamiUitOpen 0:d310bb78455d 23
MikamiUitOpen 2:511479736d6e 24 virtual ~FileSelector();
MikamiUitOpen 0:d310bb78455d 25
MikamiUitOpen 17:abfd6af9a236 26 // ファイルの一覧表を作る.WAV ファイルが存在しない場合は false を返す
MikamiUitOpen 0:d310bb78455d 27 bool CreateTable();
MikamiUitOpen 0:d310bb78455d 28
MikamiUitOpen 0:d310bb78455d 29 // ファイルを選択する
MikamiUitOpen 0:d310bb78455d 30 bool Select(string &fileName);
MikamiUitOpen 0:d310bb78455d 31
MikamiUitOpen 0:d310bb78455d 32 // ファイルの一覧の表示
MikamiUitOpen 0:d310bb78455d 33 void DisplayFileList(bool sortEnable = true);
MikamiUitOpen 0:d310bb78455d 34
MikamiUitOpen 0:d310bb78455d 35 // ファイルの一覧の消去
MikamiUitOpen 0:d310bb78455d 36 void Erase(uint16_t x, uint16_t y, uint16_t width, uint16_t height,
MikamiUitOpen 0:d310bb78455d 37 uint32_t color = GuiBase::ENUM_BACK);
MikamiUitOpen 0:d310bb78455d 38
MikamiUitOpen 0:d310bb78455d 39 private:
MikamiUitOpen 3:dd3b8a21417b 40 static const int MAX_LIST_PAGE_ = 6; // 1ページに表示するファイル数の最大値
MikamiUitOpen 2:511479736d6e 41 static const uint8_t W_H_ = 24;
MikamiUitOpen 2:511479736d6e 42 static const uint8_t V_L_ = 36;
MikamiUitOpen 2:511479736d6e 43 static const uint32_t BASE_COLOR_ = 0xFF80FFA0;
MikamiUitOpen 2:511479736d6e 44 static const uint32_t TOUCHED_COLOR_ = 0xFF80FFFF;
MikamiUitOpen 2:511479736d6e 45 const uint8_t X_, Y_;
MikamiUitOpen 0:d310bb78455d 46 const int MAX_FILES_;
MikamiUitOpen 0:d310bb78455d 47 const int MAX_NAME_LENGTH_;
MikamiUitOpen 0:d310bb78455d 48
MikamiUitOpen 0:d310bb78455d 49 Array<string> fileNames_;
MikamiUitOpen 2:511479736d6e 50 Array<Label *> fileNameLabels_;
MikamiUitOpen 0:d310bb78455d 51 ButtonGroup *rect_;
MikamiUitOpen 2:511479736d6e 52 ButtonGroup next_;
MikamiUitOpen 2:511479736d6e 53 Label pageLabel_;
MikamiUitOpen 12:f73e11831c1c 54 LCD_DISCO_F746NG &lcd_;
MikamiUitOpen 0:d310bb78455d 55 SD_WavReader &sdReader_;
MikamiUitOpen 2:511479736d6e 56 int page_; // 現在のページ,最初のページは 1
MikamiUitOpen 17:abfd6af9a236 57 int nOld_; // ページ内で以前選択したファイルのインデックス
MikamiUitOpen 17:abfd6af9a236 58 int kOld_; // 以前選択したファイルのインデックス
MikamiUitOpen 2:511479736d6e 59 int maxPage_;
MikamiUitOpen 2:511479736d6e 60 int fileCount_;
MikamiUitOpen 0:d310bb78455d 61
MikamiUitOpen 11:c33c711a5712 62 // 拡張子を削除したファイル名を取得
MikamiUitOpen 0:d310bb78455d 63 string GetFileNameNoExt(int n);
MikamiUitOpen 0:d310bb78455d 64
MikamiUitOpen 2:511479736d6e 65 // コピー・コンストラクタとオブジェクトの代入演算子は使用禁止
MikamiUitOpen 0:d310bb78455d 66 FileSelector(const FileSelector&);
MikamiUitOpen 0:d310bb78455d 67 FileSelector& operator=(const FileSelector&);
MikamiUitOpen 0:d310bb78455d 68 };
MikamiUitOpen 0:d310bb78455d 69 }
MikamiUitOpen 0:d310bb78455d 70 #endif // FILE_SELECTOR_HPP
MikamiUitOpen 17:abfd6af9a236 71