aboutsummaryrefslogtreecommitdiff
path: root/src/lib/hd24sndfile.h
blob: bd31145fcf355cbbf606da4fc48d4cf7fa1426cc (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
31
32
33
34
35
36
37
#ifndef __hd24sndfile_h__
#define __hd24sndfile_h__
class SoundFileWrapper;
#include <config.h>
#include <fstream>
using std::ofstream;
#include <sharedlibs.h>
#include <sndfile.h>

class hd24sndfile
{
private:

	SF_INFO* sfinfo;
	int _handletype;
	SoundFileWrapper* soundfile; /* runtime loading wrapper for libsndfile */
	int sf_format;
public:
	SNDFILE* sndfilehandle;
	ofstream *outfilehandle;

	hd24sndfile(int p_format,SoundFileWrapper* p_soundfile);
	~hd24sndfile();
	int handletype();
	void* handle();
	void handle(SNDFILE* newhandle);
	void handle(ofstream* newhandle);
	void handle(void* newhandle,int htype);
	void open(const char* filename,int filemode,SF_INFO* infoblock,
			SoundFileWrapper* _soundfile);
	void open(const char* filename,int filemode,SF_INFO* infoblock);
	void writerawbuf(unsigned char* buf,__uint32 subblockbytes);
	void close();
	void write_float(float* buf,__uint32 frames);
};

#endif