diff options
author | Daniil Cherednik <dan.cherednik@gmail.com> | 2021-08-28 22:16:39 +0300 |
---|---|---|
committer | Daniil Cherednik <dan.cherednik@gmail.com> | 2021-08-28 22:16:39 +0300 |
commit | feb23a6ccb5c756b6497c24c4849cdda07cb35f1 (patch) | |
tree | 39c3cd3a368bb3158a6af9f5d195690a7758333f /src/compressed_io.h | |
parent | 62ced878b526d49e5ef6ad42ca2eb7efc874867a (diff) | |
download | atracdenc-feb23a6ccb5c756b6497c24c4849cdda07cb35f1.tar.gz |
[refactoring] Split CompressedIO interface for Read and Write part
Diffstat (limited to 'src/compressed_io.h')
-rw-r--r-- | src/compressed_io.h | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/compressed_io.h b/src/compressed_io.h index 090ddf4..511860e 100644 --- a/src/compressed_io.h +++ b/src/compressed_io.h @@ -41,12 +41,22 @@ public: size_t Size() const { return Sz; } char* Get() { return Data; } }; - virtual void WriteFrame(std::vector<char> data) = 0; - virtual std::unique_ptr<TFrame> ReadFrame() = 0; virtual std::string GetName() const = 0; virtual uint8_t GetChannelNum() const = 0; - virtual uint64_t GetLengthInSamples() const = 0; virtual ~ICompressedIO() {} }; -typedef std::unique_ptr<ICompressedIO> TCompressedIOPtr; +class ICompressedInput : public ICompressedIO { +public: + virtual std::unique_ptr<TFrame> ReadFrame() = 0; + virtual uint64_t GetLengthInSamples() const = 0; +}; + +class ICompressedOutput : public ICompressedIO { +public: + virtual void WriteFrame(std::vector<char> data) = 0; +}; + +typedef std::unique_ptr<ICompressedInput> TCompressedInputPtr; +typedef std::unique_ptr<ICompressedOutput> TCompressedOutputPtr; + |