aboutsummaryrefslogtreecommitdiffstats
path: root/src/aea.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/aea.h
parent62ced878b526d49e5ef6ad42ca2eb7efc874867a (diff)
downloadatracdenc-feb23a6ccb5c756b6497c24c4849cdda07cb35f1.tar.gz
[refactoring] Split CompressedIO interface for Read and Write part
Diffstat (limited to 'src/aea.h')
-rw-r--r--src/aea.h29
1 files changed, 3 insertions, 26 deletions
diff --git a/src/aea.h b/src/aea.h
index 2fb216d..50edc9f 100644
--- a/src/aea.h
+++ b/src/aea.h
@@ -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);