irda-app-file-parser.hpp 770 B

1234567891011121314151617181920212223242526
  1. #pragma once
  2. #include <file_reader/file_reader.h>
  3. #include <irda.h>
  4. #include "irda-app-remote-manager.hpp"
  5. class IrdaAppFileParser : public FileReader {
  6. public:
  7. typedef struct {
  8. char name[32];
  9. IrdaAppSignal signal;
  10. } IrdaFileSignal;
  11. IrdaAppFileParser() {
  12. /* Assume we can save max 512 samples */
  13. set_max_line_length(max_line_length);
  14. }
  15. std::unique_ptr<IrdaAppFileParser::IrdaFileSignal> read_signal(File* file);
  16. bool store_signal(File* file, const IrdaAppSignal& signal, const char* name);
  17. private:
  18. static const uint32_t max_line_length;
  19. std::unique_ptr<IrdaFileSignal> parse_signal(const std::string& str) const;
  20. std::unique_ptr<IrdaFileSignal> parse_signal_raw(const std::string& str) const;
  21. };