summaryrefslogtreecommitdiffstats
path: root/src/uscxml/plugins/invoker/audio/PCMConverter.h
blob: 6036af27927c4b90b9dd95c1677bf6edc080bb15 (plain)
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
#ifndef PCMCONVERTER_H_97Z8U7PA
#define PCMCONVERTER_H_97Z8U7PA

#include <string>
#include <al.h>
#include <alc.h>

namespace uscxml {

struct PCMFormat {
	ALenum alFormat;
	unsigned int sampleRate;
};

class PCMConverter {
public:
	PCMConverter(const std::string filename) {}
	virtual ~PCMConverter() {}
	virtual void seek(unsigned int pos) = 0;
	virtual int read(char* buffer, unsigned int size) = 0;
	
	virtual void setOutFormat(const PCMFormat& format) = 0;
	virtual PCMFormat getInFormat() = 0;
protected:
	PCMConverter() {}
};

}

#endif /* end of include guard: PCMCONVERTER_H_97Z8U7PA */