blob: d8cfb11f8e705c58b50fb4e222c7432f413a80a3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#pragma once
#include <vector>
#include <array>
#include <string>
class ICompressedIO {
public:
class TFrame {
uint64_t Sz;
char* Data;
TFrame(const TFrame& src) = delete;
TFrame() = delete;
public:
TFrame(uint64_t sz)
: Sz(sz)
{
Data = new char[Sz];
}
~TFrame() {
delete[] Data;
}
uint64_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 int GetChannelNum() const = 0;
virtual long long GetLengthInSamples() const = 0;
virtual ~ICompressedIO() {}
};
|