⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 twinamp2.h

📁 从FFMPEG转换而来的H264解码程序,VC下编译..
💻 H
字号:
#ifndef _TWINAMP2_H_
#define _TWINAMP2_H_

struct winampDSPModule;
class Twinamp2dsp;
class Tdll;
struct winampDSPHeader;

class Twinamp2dspDll
{
private:
 unsigned int refcount;
 Tdll *dll;
 winampDSPHeader *hdr;
 winampDSPHeader* (*winampDSPGetHeaderType)(void);
public:
 Twinamp2dspDll(const ffstring &flnm);
 bool isMultichannelAllowed(const char_t *compList) const;
 ~Twinamp2dspDll();
 void addref(void);
 void release(void);
 ffstring descr;
 ffstring dllFileName;
 typedef std::vector<Twinamp2dsp*> Tfilters;
 Tfilters filters;
};

class Twinamp2dsp
{
private:
 int inited;
 Twinamp2dspDll *dll;
 winampDSPModule *mod;
 HANDLE hThread;
 static unsigned int __stdcall threadProc(void *self0);
 volatile HWND h;
 static LRESULT CALLBACK wndProc(HWND hwnd, UINT msg, WPARAM wprm, LPARAM lprm);
public:
 Twinamp2dsp(Twinamp2dspDll *Idll,winampDSPModule *Imod);
 ~Twinamp2dsp();
 void addref(void);
 void release(void);
 ffstring descr;
 int init(void);
 void config(HWND parent);
 size_t process(int16_t *samples,size_t numsamples,int bps,int nch,int srate);
 void done(void);
 bool isMultichannelAllowed(const char_t *compList) const {return dll?dll->isMultichannelAllowed(compList):false;}
};

struct Twinamp2settings;
class Twinamp2
{
public:
 Twinamp2(const char_t *Iwinampdir);
 ~Twinamp2();
 char_t winampdir[MAX_PATH];
 typedef std::vector<Twinamp2dspDll*> Twinamp2dspDlls;
 Twinamp2dspDlls dsps;
 Twinamp2dspDll* getFilter(const char_t *flnm);
 Twinamp2dsp* getFilter(const Twinamp2settings *cfg,int nchannels);
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -