mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-12-02 22:57:17 +01:00
48 lines
979 B
C++
48 lines
979 B
C++
#ifndef NULLSOFT_WAVENCODERH
|
|
#define NULLSOFT_WAVENCODERH
|
|
|
|
#include <mmreg.h>
|
|
#include <msacm.h>
|
|
#include "../nsv/enc_if.h"
|
|
|
|
#define WFSIZ 0x800
|
|
struct EXT_WFX
|
|
{
|
|
WAVEFORMATEX wfx;
|
|
BYTE crap[WFSIZ];
|
|
};
|
|
class WavEncoder : public AudioCoder
|
|
{
|
|
public:
|
|
WavEncoder(int srate, int nch, int bps, int res_srate = 0, int res_bps = 0, int res_nch = 0);
|
|
virtual ~WavEncoder();
|
|
|
|
virtual int Encode(int framepos, void *in, int in_avail, int *in_used, void *out, int out_avail);
|
|
void FinishAudio(HANDLE fh, WavEncoder *coder);
|
|
|
|
int GetLastError();
|
|
|
|
int m_did_header;
|
|
int m_nch, m_srate, m_bps;
|
|
int m_bytes_done;
|
|
int m_error;
|
|
int m_hlen;
|
|
int m_nsam;
|
|
|
|
|
|
EXT_WFX m_convert_wfx;
|
|
|
|
WAVEFORMATEX m_wfx_src;
|
|
HACMSTREAM hStream, hStreamResample;
|
|
|
|
ACMSTREAMHEADER ahd, ahdResample;
|
|
|
|
unsigned char *m_acm_buf, *m_acm_outbuf;
|
|
int m_bytes_inbuf, m_bytes_outbuf;
|
|
unsigned char *m_acm_resample_buf, *m_acm_resample_outbuf;
|
|
int m_bytes_inbuf_resample, m_bytes_outbuf_resample;
|
|
|
|
};
|
|
|
|
|
|
#endif |