mixerstatus.h

来自「miXo is a buzz machine (www.buzzmachines」· C头文件 代码 · 共 73 行

H
73
字号
// MixerStatus.h: interface for the CMixerStatus class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MIXERSTATUS_H__A326F3C0_4191_11D5_8DCF_BCDA7B7DD53C__INCLUDED_)
#define AFX_MIXERSTATUS_H__A326F3C0_4191_11D5_8DCF_BCDA7B7DD53C__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "MixerKeyTable.h"
#include "MixerSet.h"
#include "MixerPreset.h"
#include "MachineInterface.h"
#include "Dsplib.h"
#include "WrapList.h"
class CMixerStatus;
typedef bool (CMixerStatus::*TInputProcessor)(float *,const int,float);
class CMICallbacks;
using namespace std;
class CMixerStatus  
{
	CMixerSet m_cSet;
	CMixerPreset m_cPreset;
	CMixerKeyTable m_cKeyTable;
	CWrapList m_cWrapList;
	int m_iCurTrack;
	int m_iChanges;
	bool m_bUpdate;
	bool m_bBufferClear;
	CMICallbacks *m_pCB;
	enum { efBufferSize=MAX_BUFFER_LENGTH*4 };
	float m_fBuf[efBufferSize];
	unsigned m_uBufLen;
//	bool CMixerStatus::*m_pfnctnInputProcessor();
protected:
	CMixerTrack::TEMode m_eMode;
public:
	void SetSampleDataAccuracy(int i);
	CMixerStatus();
	virtual ~CMixerStatus();
	void Save(CMachineDataOutput * const po);
	void Init(CMachineDataInput * const pi);
	void AddTrack(const char*,bool);
	void DeleteTrack(const char *);
	void RenameTrack(const char*,const char *);
	void SetTrackInputChannels(const char *,bool);
	CMixerSet *GetSet() { return &m_cSet;}
	CMixerPreset *GetPreset() { return &m_cPreset; }
	CMixerKeyTable *GetKeyTable() { return &m_cKeyTable; }
//	bool NormalProcessInput(float *,const int,float);
	bool ProcessInput(float *fp,const int i,float f) ;//{ return (*m_pfnctnInputProcessor)(fp,i,f); }
	bool HandleInput(int,int,int);
	void SetUpdateFlag() { m_bUpdate=true; }
	bool IsUpdateFlagSet() { if(m_bUpdate) {m_bUpdate=false; return true;} else return false;}
	void SetCallbacks(CMICallbacks *pCB) { m_pCB=pCB; }
	int GetCurrentTrack() const { return m_iCurTrack; }
	float *GetBuf()  { return &m_fBuf[0]; }
	void ClearBuf() { DSP_Zero(m_fBuf,efBufferSize); m_uBufLen=0;}
	void CopyBuf(float *pout,int n);
	void CopyBufNClear(float *pout,int n) { CopyBuf(pout,n);ClearBuf(); }
	string GetNameOfMixerPreset(unsigned u) const { return m_cPreset.GetNameOf(u); }
	unsigned GetNumOfMixerPresets() const { return m_cPreset.GetSize(); }
	void AutoAddMixerPreset() { m_cPreset.AutoAdd(m_cSet); m_cSet.SetName("Main"); }
	void AddNamedMixerPreset(string s) { m_cSet.SetName(s); m_cPreset.Add(m_cSet); m_cSet.SetName("Main");}
	void LoadMixerPreset(string);
	CMixerTrack::TEMode GetMode() const { return m_eMode; }
	void SetMode(CMixerTrack::TEMode);
	CWrapList &GetWrapList() { return m_cWrapList; }
};

#endif // !defined(AFX_MIXERSTATUS_H__A326F3C0_4191_11D5_8DCF_BCDA7B7DD53C__INCLUDED_)

⌨️ 快捷键说明

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