aboutsummaryrefslogtreecommitdiffstats
path: root/src/compressed_io.h
blob: 9999f4390db9855c9602569baf4902cf95c80d69 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#pragma once
#include <vector>
#include <array>
#include <string>

template<int FRAME_SZ>
class ICompressedIO {
public:
    typedef std::array<char, FRAME_SZ> TFrame;
    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() {}
};