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

📄 mixerset.h

📁 miXo is a buzz machine (www.buzzmachines.com) - a plugin for the freely available jeskola buzz track
💻 H
字号:
// MixerSet.h: interface for the CMixerSet class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MIXERSET_H__A326F3C1_4191_11D5_8DCF_BCDA7B7DD53C__INCLUDED_)
#define AFX_MIXERSET_H__A326F3C1_4191_11D5_8DCF_BCDA7B7DD53C__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "MixerTrack.h"
#include <mdk.h>
#include <string>
#include <deque>
#include "Key.h"

class CMixerKeyTable;
using namespace std;
class CMixerSet  
{
	typedef deque<CMixerTrack> TLstTracks;
	TLstTracks m_lstTracks;
	string m_strName;
	TLstTracks::iterator m_ite;
	bool m_bInternal;
public:
	void SetName(const string &str) { m_strName=str; }
	const string &GetName() const { return m_strName; }
	CMixerSet(bool b=false);
	CMixerSet(const CMixerSet &c) : m_lstTracks(c.m_lstTracks),m_strName(c.m_strName),
		m_ite(c.m_ite),m_bInternal(c.m_bInternal)	{};
	virtual ~CMixerSet();
	void Save(CMachineDataOutput * const po);
	void Init(CMachineDataInput * const pi,unsigned);
	void AddTrack(const char*,int,bool);
	void DeleteTrack(const char *);
	void RenameTrack(const char*,const char*);
	void SetTrackInputChannels(const char*,bool b);
	bool ProcessInput(int i,float *p,int n,float *pOut,float fAmp) { return m_lstTracks[i].ProcessInput(p,n,pOut,fAmp); }
	unsigned GetSize() const { return m_lstTracks.size(); }
	CMixerTrack *GetTrackByIndex(int i) { return &m_lstTracks[i]; }
	int FindUnusedKeyDef(const CMixerKeyTable*) const;
	CMixerTrack *FindFirstTrackByKeySet(int i) { m_ite=m_lstTracks.begin(); return FindNextTrackByKeySet(i); }
	CMixerTrack *FindNextTrackByKeySet(int);
	void DoCmd(cmd::TCmd,float,float,float) {}
	void FilterCmd(cmd::TCmd cmd,cmd::TCmd mode,int iKeyDefId,float f1,float f2,float f3) {
		for(TLstTracks::iterator ite=m_lstTracks.begin();ite < m_lstTracks.end();ite++)
			ite->FilterCmd(cmd,mode,iKeyDefId,f1,f2,f3);
	};
	void SetMode(CMixerTrack::TEMode m) { 
		for(TLstTracks::iterator ite=m_lstTracks.begin();ite < m_lstTracks.end();ite++)
			ite->SetMode(m);
	}
	void SetSampleDataAccuracy(int i) { 
		for(TLstTracks::iterator ite=m_lstTracks.begin();ite < m_lstTracks.end();ite++)
			ite->SetSampleDataAccuracy(i);
	}
	bool IsInternal() const	{ return m_bInternal; }
	bool operator == (const string &str) { return (strcmp(str.c_str(),m_strName.c_str()) == 0); }
	void InvalidateIterators();
protected:
	TLstTracks::iterator GetTrackByKeySet(int) const;
	TLstTracks::iterator GetTrackByName(const char *) const;
};

#endif // !defined(AFX_MIXERSET_H__A326F3C1_4191_11D5_8DCF_BCDA7B7DD53C__INCLUDED_)

⌨️ 快捷键说明

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