aboutsummaryrefslogtreecommitdiffstats
path: root/src/compressed_io.h
diff options
context:
space:
mode:
authorDaniil Cherednik <dan.cherednik@gmail.com>2021-08-28 22:16:39 +0300
committerDaniil Cherednik <dan.cherednik@gmail.com>2021-08-28 22:16:39 +0300
commitfeb23a6ccb5c756b6497c24c4849cdda07cb35f1 (patch)
tree39c3cd3a368bb3158a6af9f5d195690a7758333f /src/compressed_io.h
parent62ced878b526d49e5ef6ad42ca2eb7efc874867a (diff)
downloadatracdenc-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.h18
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;
+