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

📄 mixerpreset.h

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

#if !defined(AFX_MIXERPRESET_H__EB90A740_41A6_11D5_8DCF_BCDA7B7DD53C__INCLUDED_)
#define AFX_MIXERPRESET_H__EB90A740_41A6_11D5_8DCF_BCDA7B7DD53C__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#include <mdk.h>
#include <deque>
#include <string>
#include <algorithm>
#include <functional>
#include "MixerSet.h"
namespace HS_AddTrack {
	template<class T> struct TPL_TrackStruct : public unary_function<T, void>
	{
		const char *m_sz;
		int m_i;
		bool m_b;
		TPL_TrackStruct(const char *sz,int i,bool b) : m_sz(sz),m_i(i),m_b(b) {};
		void operator() (T &x) { x.AddTrack(m_sz,m_i,m_b); }
	};
};
namespace HS_DelTrack {
	template<class T> struct TPL_TrackStruct : public unary_function<T, void>
	{
		const char *m_sz;
		bool m_b;
		TPL_TrackStruct(const char *sz) : m_sz(sz) {};
		void operator() (T &x) { x.DeleteTrack(m_sz); }
	};
};
namespace HS_RenameTrack {
	template<class T> struct TPL_TrackStruct : public unary_function<T, void>
	{
		const char *m_sz,*m_sz1;
		TPL_TrackStruct(const char *sz,const char *sz1) : m_sz(sz),m_sz1(sz1){};
		void operator() (T &x) { x.RenameTrack(m_sz,m_sz1); }
	};
};
namespace HS_SetTrackInputChannels {
	template<class T> struct TPL_TrackStruct : public unary_function<T, void>
	{
		const char *m_sz;
		bool m_b;
		TPL_TrackStruct(const char *sz,bool b) : m_sz(sz),m_b(b) {};
		void operator() (T &x) { x.SetTrackInputChannels(m_sz,m_b); }
	};
};
namespace HS_SRAccuracy {
	template<class T> struct TPL_TrackStruct : public unary_function<T, void>
	{
		int m_i;
		TPL_TrackStruct(int i) : m_i(i) {};
		void operator() (T &x) { x.SetSampleDataAccuracy(m_i); }
	};
};

using namespace std;

class CMixerPreset  
{
	typedef deque<CMixerSet>TLstSet;
	TLstSet m_lstSet;
public:
	CMixerPreset();
	virtual ~CMixerPreset();
	void Save(CMachineDataOutput * const po);
	void Init(CMachineDataInput * const pi,unsigned);
	void Add(const CMixerSet  &c);
	void AutoAdd(CMixerSet &c);
	CMixerSet *Get(string);
	void AddTrack(const char *sz,int i,bool b) {
		for_each(m_lstSet.begin(),m_lstSet.end(),HS_AddTrack::TPL_TrackStruct<CMixerSet>(sz,i,b));
	}
	void DeleteTrack(const char *sz) {
		for_each(m_lstSet.begin(),m_lstSet.end(),HS_DelTrack::TPL_TrackStruct<CMixerSet>(sz));
	}
	void RenameTrack(const char *sz,const char *sz1) {
		for_each(m_lstSet.begin(),m_lstSet.end(),HS_RenameTrack::TPL_TrackStruct<CMixerSet>(sz,sz1));
	}
	void SetTrackInputChannels(const char *sz,bool b) {
		for_each(m_lstSet.begin(),m_lstSet.end(),HS_SetTrackInputChannels::TPL_TrackStruct<CMixerSet>(sz,b));
	}
	void SetSampleDataAccuracy(int i) {
		for_each(m_lstSet.begin(),m_lstSet.end(),HS_SRAccuracy::TPL_TrackStruct<CMixerSet>(i));
	}
	unsigned GetSize() const { return m_lstSet.size(); }
	string GetNameOf(unsigned u) const { return m_lstSet[u].GetName(); }
protected:

};

#endif // !defined(AFX_MIXERPRESET_H__EB90A740_41A6_11D5_8DCF_BCDA7B7DD53C__INCLUDED_)

⌨️ 快捷键说明

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