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

📄 mixertrack.h

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

#if !defined(AFX_MIXERTRACK_H__A326F3C8_4191_11D5_8DCF_BCDA7B7DD53C__INCLUDED_)
#define AFX_MIXERTRACK_H__A326F3C8_4191_11D5_8DCF_BCDA7B7DD53C__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include <mdk.h>
#include <string>
#include <math.h>
#include "Key.h"
#include "TrackValues.h"
using namespace std;
//simple class for storing two float values for left and right
class CSampleData	
{
	float m_f1,m_f2;
public:
	CSampleData() : m_f1(0.0f),m_f2(0.0f) {}
	CSampleData(const CSampleData &c) : m_f1(c.m_f1),m_f2(c.m_f2) {}
	void Set(const float f) { m_f1=m_f2=f; }
	void Set(bool bStereo,const float f1,const float f2) {
		if(bStereo) {
			m_f1=f1;
			m_f2=f2;
		}else{
			m_f1=m_f2=f1;
		}
	};
	float GetAverage() const { return fabs(( ((m_f1+m_f2)/2.0f) / (32768.0))); }
	virtual ~CSampleData() {}
};


class CMixerTrack  
{
	string m_strName;		//Name of the associated InputMachine
//	string m_strKeySet;		//KeySet
	int m_iKeySet;
	float m_fIncrement;
	float m_fSlow;
	bool m_bStereo;
//	float m_fSampleData;
	mutable CSampleData m_cSampleData;
	enum { defSampleDataAccuracy=10 };
	int m_iSampleDataAccuracy;
	int m_iSampleDataCounter;
	CTrackValues *m_pcMixingValues;
	CTrackValues m_cRealValues,m_cHelperValues;
public:
	typedef enum { em_Normal=0,em_Mute,em_Bypass,em_Unknown }TEMode;
protected:
	TEMode m_eMode;
public:
	TEMode GetMode() const { return m_eMode; }
	void SetMode(TEMode);
public:
	CMixerTrack();
	CMixerTrack(const CMixerTrack &c);/* : m_strKeySet(c.m_strKeySet),m_strName(c.m_strName),
		m_bStereo(c.m_bStereo),m_iKeySet(c.m_iKeySet),
		m_fSampleData(c.m_fSampleData),m_fSlow(c.m_fSlow),
		m_iSampleDataAccuracy(c.m_iSampleDataAccuracy),
		m_cRealValues(c.m_cRealValues),m_cHelperValues(c.m_cHelperValues),
		m_eMode(em_Unknown),m_fIncrement(c.m_fIncrement),
		m_iSampleDataCounter(c.m_iSampleDataCounter),m_pcMixingValues(&m_cRealValues)
		{ SetMode(c.m_eMode); }
		*/
	virtual ~CMixerTrack();
	void SetKeySetId(int i) { m_iKeySet=i; }
	int GetKeySetId() const { return m_iKeySet; }
	void SetLevel(float f) { m_cRealValues.SetLevel(f); }
	float GetRealLevel() const { return m_cRealValues.GetRealLevel(); }
	float GetRealTargetLevel() const { return m_cRealValues.GetRealTargetLevel(); }
	void SetIncrement(float fInc) { m_fIncrement=fInc; }
	float GetIncrement() const { return m_fIncrement; }
	void Save(CMachineDataOutput * const po);
	void Init(CMachineDataInput * const pi,unsigned);
	void SetStereo(bool b) { m_bStereo=b; }
	bool IsStereo() const { return m_bStereo; }
	void SetName(const char *szName) { m_strName=szName; }
	const string &GetName() const { return m_strName; }
	bool ProcessInput(float *,int ,float*,float);
//	float GetSampleData() const { return m_fSampleData; }
	float GetSampleData() const { return m_cSampleData.GetAverage(); }
//	void TakeSampleData(float f) { m_fSampleData=fabs((f/(1.0*32768.0)));}
	void DoCmd(cmd::TCmd,float,float,float);
	void FilterCmd(cmd::TCmd cmd,cmd::TCmd mode,int iKeyDefId,float f1,float f2,float f3);
	void SetSampleData(const float f) const { m_cSampleData.Set(0.0); }
	void SetSampleDataAccuracy(int i) { m_iSampleDataCounter=m_iSampleDataAccuracy=i; }
	int GetSampleDataAccuracy() const  { return m_iSampleDataAccuracy; }
};

#endif // !defined(AFX_MIXERTRACK_H__A326F3C8_4191_11D5_8DCF_BCDA7B7DD53C__INCLUDED_)

⌨️ 快捷键说明

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