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 Aug 15 04:38:45 2016 +0000
Revision:
0:d310bb78455d
Child:
2:511479736d6e
1

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 0:d310bb78455d 5 // 2016/07/27, Copyright (c) 2016 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 0:d310bb78455d 22 int maxNameLength, SD_WavReader &reader)
MikamiUitOpen 0:d310bb78455d 23 : X_(x0), Y_(y0), W_H_(24), V_L_(36),
MikamiUitOpen 0:d310bb78455d 24 MAX_FILES_(maxFiles), MAX_NAME_LENGTH_(maxNameLength),
MikamiUitOpen 0:d310bb78455d 25 BASE_COLOR_(0xFF80FFA0), TOUCHED_COLOR_(0xFF80FFFF),
MikamiUitOpen 0:d310bb78455d 26 fileNames_(maxFiles),
MikamiUitOpen 0:d310bb78455d 27 rect_(NULL), lcd_(GuiBase::GetLcdPtr()),
MikamiUitOpen 0:d310bb78455d 28 sdReader_(reader), prevFileCount_(0), prev_(-1) {}
MikamiUitOpen 0:d310bb78455d 29
MikamiUitOpen 0:d310bb78455d 30 virtual ~FileSelector()
MikamiUitOpen 0:d310bb78455d 31 { delete rect_; }
MikamiUitOpen 0:d310bb78455d 32
MikamiUitOpen 0:d310bb78455d 33 bool CreateTable();
MikamiUitOpen 0:d310bb78455d 34
MikamiUitOpen 0:d310bb78455d 35 // ファイルを選択する
MikamiUitOpen 0:d310bb78455d 36 bool Select(string &fileName);
MikamiUitOpen 0:d310bb78455d 37
MikamiUitOpen 0:d310bb78455d 38 // ファイルの一覧の表示
MikamiUitOpen 0:d310bb78455d 39 void DisplayFileList(bool sortEnable = true);
MikamiUitOpen 0:d310bb78455d 40
MikamiUitOpen 0:d310bb78455d 41 // ファイルの一覧の消去
MikamiUitOpen 0:d310bb78455d 42 void Erase(uint16_t x, uint16_t y, uint16_t width, uint16_t height,
MikamiUitOpen 0:d310bb78455d 43 uint32_t color = GuiBase::ENUM_BACK);
MikamiUitOpen 0:d310bb78455d 44
MikamiUitOpen 0:d310bb78455d 45 private:
MikamiUitOpen 0:d310bb78455d 46 const uint8_t X_, Y_, W_H_, V_L_;
MikamiUitOpen 0:d310bb78455d 47 const int MAX_FILES_;
MikamiUitOpen 0:d310bb78455d 48 const int MAX_NAME_LENGTH_;
MikamiUitOpen 0:d310bb78455d 49 const uint32_t BASE_COLOR_;
MikamiUitOpen 0:d310bb78455d 50 const uint32_t TOUCHED_COLOR_;
MikamiUitOpen 0:d310bb78455d 51
MikamiUitOpen 0:d310bb78455d 52 Array<string> fileNames_;
MikamiUitOpen 0:d310bb78455d 53 ButtonGroup *rect_;
MikamiUitOpen 0:d310bb78455d 54 Array<Label *> fileNameLabels_;
MikamiUitOpen 0:d310bb78455d 55 LCD_DISCO_F746NG *lcd_;
MikamiUitOpen 0:d310bb78455d 56 SD_WavReader &sdReader_;
MikamiUitOpen 0:d310bb78455d 57 int fileCount_, prevFileCount_;
MikamiUitOpen 0:d310bb78455d 58 int prev_;
MikamiUitOpen 0:d310bb78455d 59
MikamiUitOpen 0:d310bb78455d 60 // Label を生成
MikamiUitOpen 0:d310bb78455d 61 void CreateLabels();
MikamiUitOpen 0:d310bb78455d 62
MikamiUitOpen 0:d310bb78455d 63 // 拡張子を削除した文字列を取得
MikamiUitOpen 0:d310bb78455d 64 string GetFileNameNoExt(int n);
MikamiUitOpen 0:d310bb78455d 65
MikamiUitOpen 0:d310bb78455d 66 // disallow copy constructor and assignment operator
MikamiUitOpen 0:d310bb78455d 67 FileSelector(const FileSelector&);
MikamiUitOpen 0:d310bb78455d 68 FileSelector& operator=(const FileSelector&);
MikamiUitOpen 0:d310bb78455d 69 };
MikamiUitOpen 0:d310bb78455d 70 }
MikamiUitOpen 0:d310bb78455d 71 #endif // FILE_SELECTOR_HPP