SPKT

Dependencies:   SDFileSystem_Warning_Fixed

Dependents:   DISCO-F746_WAV_PLAYER WAV

Committer:
phungductung
Date:
Fri Jun 07 05:39:43 2019 +0000
Revision:
20:84ca69a520f9
Parent:
18:6631cd0fbbcd
12

Who changed what in which revision?

UserRevisionLine numberNew contents of line
phungductung 18:6631cd0fbbcd 1
MikamiUitOpen 0:d310bb78455d 2 //--------------------------------------------------------------
MikamiUitOpen 0:d310bb78455d 3
MikamiUitOpen 0:d310bb78455d 4 #ifndef FILE_SELECTOR_HPP
MikamiUitOpen 0:d310bb78455d 5 #define FILE_SELECTOR_HPP
MikamiUitOpen 0:d310bb78455d 6
MikamiUitOpen 0:d310bb78455d 7 #include "F746_GUI.hpp"
MikamiUitOpen 0:d310bb78455d 8 #include "SD_WavReader.hpp"
phungductung 18:6631cd0fbbcd 9 #include <algorithm> // Được sử dụng bởi sort()
MikamiUitOpen 0:d310bb78455d 10 #include <string>
MikamiUitOpen 0:d310bb78455d 11
MikamiUitOpen 0:d310bb78455d 12 namespace Mikami
MikamiUitOpen 0:d310bb78455d 13 {
MikamiUitOpen 0:d310bb78455d 14 class FileSelector
MikamiUitOpen 0:d310bb78455d 15 {
MikamiUitOpen 0:d310bb78455d 16 public:
MikamiUitOpen 0:d310bb78455d 17 FileSelector(uint8_t x0, uint8_t y0, int maxFiles,
MikamiUitOpen 2:511479736d6e 18 int maxNameLength, SD_WavReader &reader);
MikamiUitOpen 0:d310bb78455d 19
MikamiUitOpen 2:511479736d6e 20 virtual ~FileSelector();
MikamiUitOpen 0:d310bb78455d 21
phungductung 18:6631cd0fbbcd 22 // Lập danh sách các tập tin. Trả về false nếu tệp WAV không tồn tại
MikamiUitOpen 0:d310bb78455d 23 bool CreateTable();
phungductung 18:6631cd0fbbcd 24 // chọn tập tin
MikamiUitOpen 0:d310bb78455d 25 bool Select(string &fileName);
MikamiUitOpen 0:d310bb78455d 26
phungductung 18:6631cd0fbbcd 27 // Hiển thị danh sách các tập tin
MikamiUitOpen 0:d310bb78455d 28 void DisplayFileList(bool sortEnable = true);
MikamiUitOpen 0:d310bb78455d 29
phungductung 18:6631cd0fbbcd 30 // xóa danh sách các tập tin
MikamiUitOpen 0:d310bb78455d 31 void Erase(uint16_t x, uint16_t y, uint16_t width, uint16_t height,
MikamiUitOpen 0:d310bb78455d 32 uint32_t color = GuiBase::ENUM_BACK);
MikamiUitOpen 0:d310bb78455d 33
MikamiUitOpen 0:d310bb78455d 34 private:
phungductung 18:6631cd0fbbcd 35 static const int MAX_LIST_PAGE_ = 6; // Số lượng tệp tối đa được hiển thị trên một trang
MikamiUitOpen 2:511479736d6e 36 static const uint8_t W_H_ = 24;
MikamiUitOpen 2:511479736d6e 37 static const uint8_t V_L_ = 36;
MikamiUitOpen 2:511479736d6e 38 static const uint32_t BASE_COLOR_ = 0xFF80FFA0;
MikamiUitOpen 2:511479736d6e 39 static const uint32_t TOUCHED_COLOR_ = 0xFF80FFFF;
MikamiUitOpen 2:511479736d6e 40 const uint8_t X_, Y_;
MikamiUitOpen 0:d310bb78455d 41 const int MAX_FILES_;
MikamiUitOpen 0:d310bb78455d 42 const int MAX_NAME_LENGTH_;
MikamiUitOpen 0:d310bb78455d 43
MikamiUitOpen 0:d310bb78455d 44 Array<string> fileNames_;
MikamiUitOpen 2:511479736d6e 45 Array<Label *> fileNameLabels_;
MikamiUitOpen 0:d310bb78455d 46 ButtonGroup *rect_;
MikamiUitOpen 2:511479736d6e 47 ButtonGroup next_;
MikamiUitOpen 2:511479736d6e 48 Label pageLabel_;
MikamiUitOpen 12:f73e11831c1c 49 LCD_DISCO_F746NG &lcd_;
MikamiUitOpen 0:d310bb78455d 50 SD_WavReader &sdReader_;
phungductung 18:6631cd0fbbcd 51 int page_; // Trang hiện tại, trang đầu tiên là 1
phungductung 18:6631cd0fbbcd 52 int nOld_; // Chỉ mục của tệp đã chọn trước đó trong trang
phungductung 18:6631cd0fbbcd 53 int kOld_; // Chỉ mục của tệp đã chọn trước đó
MikamiUitOpen 2:511479736d6e 54 int maxPage_;
MikamiUitOpen 2:511479736d6e 55 int fileCount_;
MikamiUitOpen 0:d310bb78455d 56
phungductung 18:6631cd0fbbcd 57 // Lấy tên tệp với phần mở rộng bị xóa
MikamiUitOpen 0:d310bb78455d 58 string GetFileNameNoExt(int n);
MikamiUitOpen 0:d310bb78455d 59
phungductung 18:6631cd0fbbcd 60 // Không sử dụng các hàm tạo sao chép và toán tử gán đối tượng
MikamiUitOpen 0:d310bb78455d 61 FileSelector(const FileSelector&);
MikamiUitOpen 0:d310bb78455d 62 FileSelector& operator=(const FileSelector&);
MikamiUitOpen 0:d310bb78455d 63 };
MikamiUitOpen 0:d310bb78455d 64 }
MikamiUitOpen 0:d310bb78455d 65 #endif // FILE_SELECTOR_HPP
MikamiUitOpen 17:abfd6af9a236 66