SPKT
Dependencies: SDFileSystem_Warning_Fixed
Dependents: DISCO-F746_WAV_PLAYER WAV
FileSelectorWav.hpp@20:84ca69a520f9, 2019-06-07 (annotated)
- Committer:
- phungductung
- Date:
- Fri Jun 07 05:39:43 2019 +0000
- Revision:
- 20:84ca69a520f9
- Parent:
- 18:6631cd0fbbcd
12
Who changed what in which revision?
User | Revision | Line number | New 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 |