diff options
Diffstat (limited to 'src/drivers/include/fatfs_audio_input.hpp')
| -rw-r--r-- | src/drivers/include/fatfs_audio_input.hpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/drivers/include/fatfs_audio_input.hpp b/src/drivers/include/fatfs_audio_input.hpp new file mode 100644 index 00000000..3753c136 --- /dev/null +++ b/src/drivers/include/fatfs_audio_input.hpp @@ -0,0 +1,40 @@ +#pragma once + +namespace drivers { + + class FatfsAudioInput { + public: + FatfsAudioInput(std::shared_ptr<SdStorage> storage); + ~FatfsAudioInput(); + + enum Status { + /* + * Successfully read data into the output buffer, and there is still + * data remaining in the file. + */ + OKAY, + + /* + * The ringbuffer was full. No data was read. + */ + RINGBUF_FULL, + + /* + * Some data may have been read into the output buffer, but the file is + * now empty. + */ + FILE_EMPTY, + }; + auto Process() -> Status; + + auto GetOutputBuffer() -> RingbufHandle_t; + + private: + std::shared_ptr<SdStorage> storage_; + RingbufHandle_t output_; + + std::string path_; + + }; + +} // namespace drivers |
