📄 mixerset.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 + -