file_reader.h 866 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include <string>
  3. #include <memory>
  4. #include "sd-card-api.h"
  5. #include "filesystem-api.h"
  6. class FileReader {
  7. private:
  8. char file_buf[48];
  9. size_t file_buf_cnt = 0;
  10. size_t max_line_length = 0;
  11. SdCard_Api* sd_ex_api;
  12. FS_Api* fs_api;
  13. public:
  14. FileReader() {
  15. sd_ex_api = static_cast<SdCard_Api*>(furi_record_open("sdcard-ex"));
  16. fs_api = static_cast<FS_Api*>(furi_record_open("sdcard"));
  17. reset();
  18. }
  19. ~FileReader() {
  20. furi_record_close("sdcard");
  21. furi_record_close("sdcard-ex");
  22. }
  23. std::string getline(File* file);
  24. void reset(void) {
  25. file_buf_cnt = 0;
  26. }
  27. SdCard_Api& get_sd_api() {
  28. return *sd_ex_api;
  29. }
  30. FS_Api& get_fs_api() {
  31. return *fs_api;
  32. }
  33. void set_max_line_length(size_t value) {
  34. max_line_length = value;
  35. }
  36. };