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/aea.h | |
parent | 62ced878b526d49e5ef6ad42ca2eb7efc874867a (diff) | |
download | atracdenc-feb23a6ccb5c756b6497c24c4849cdda07cb35f1.tar.gz |
[refactoring] Split CompressedIO interface for Read and Write part
Diffstat (limited to 'src/aea.h')
-rw-r--r-- | src/aea.h | 29 |
1 files changed, 3 insertions, 26 deletions
@@ -17,15 +17,9 @@ */ #pragma once -#include <iostream> -#include <fstream> -#include <vector> -#include <array> -#include <memory> #include "compressed_io.h" - class TAeaIOError : public std::exception { const int ErrNum = 0; const char* Text; @@ -44,24 +38,7 @@ public: class TAeaFormatError { }; -typedef ICompressedIO IAtrac1IO; -class TAea : public IAtrac1IO { - static constexpr uint32_t AeaMetaSize = 2048; - struct TMeta { - FILE* AeaFile; - std::array<char, AeaMetaSize> AeaHeader; - } Meta; - static TAea::TMeta ReadMeta(const std::string& filename); - static TAea::TMeta CreateMeta(const std::string& filename, const std::string& title, uint8_t numChannel, uint32_t numFrames); - bool FirstWrite = true; -public: - TAea(const std::string& filename); - TAea(const std::string& filename, const std::string& title, uint8_t numChannel, uint32_t numFrames); - ~TAea(); - std::unique_ptr<TFrame> ReadFrame() override; - void WriteFrame(std::vector<char> data) override; - std::string GetName() const override; - uint8_t GetChannelNum() const override; - uint64_t GetLengthInSamples() const override; -}; +TCompressedInputPtr CreateAeaInput(const std::string& filename); +TCompressedOutputPtr CreateAeaOutput(const std::string& filename, const std::string& title, + uint8_t numChannel, uint32_t numFrames); |