summaryrefslogtreecommitdiff
path: root/attic/muse_qt4_evolution/muse/ctrl.h
diff options
context:
space:
mode:
Diffstat (limited to 'attic/muse_qt4_evolution/muse/ctrl.h')
-rw-r--r--attic/muse_qt4_evolution/muse/ctrl.h236
1 files changed, 0 insertions, 236 deletions
diff --git a/attic/muse_qt4_evolution/muse/ctrl.h b/attic/muse_qt4_evolution/muse/ctrl.h
deleted file mode 100644
index eccd17c0..00000000
--- a/attic/muse_qt4_evolution/muse/ctrl.h
+++ /dev/null
@@ -1,236 +0,0 @@
-//=============================================================================
-// MusE
-// Linux Music Editor
-// $Id:$
-//
-// Copyright (C) 2002-2006 by Werner Schweer and others
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License version 2.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-//=============================================================================
-
-#ifndef __CTRL_H__
-#define __CTRL_H__
-
-namespace AL {
- class Xml;
- };
-using AL::Xml;
-
-class MidiController;
-
-//
-// predefined audio controller id's:
-//
-const int NUM_AUX = 32; // max number of aux channels
-
-const int AC_VOLUME = 0;
-const int AC_PAN = 1;
-const int AC_MUTE = 2;
-const int AC_AUX = 3; // 3 -- 3+NUM_AUX
-const int AC_AUX_PAN = AC_AUX + NUM_AUX;
-
-const int CTRL_PLUGIN_MASK = 0x3ff0000;
-const int CTRL_PLUGIN_OFFSET = 0x10000;
-const int CTRL_INDEX_MASK = 0xffff;
-const int CTRL_PREFADER = 0x40000000;
-
-//---------------------------------------------------------
-// genACnum
-// create a controller number out of plugin index,
-// controller index and prefader flag
-//---------------------------------------------------------
-
-inline static int genACnum(int plugin, int ctrl, bool prefader) {
- int pre = prefader ? CTRL_PREFADER : 0;
- return pre | ((plugin+1) * CTRL_PLUGIN_OFFSET + ctrl);
- }
-
-//---------------------------------------------------------
-// getCtrlPlugin
-// destill plugin index, controller index and prefader
-// flag from controller id
-//---------------------------------------------------------
-
-inline static void getCtrlPlugin(int id, bool* prefader, int* pluginIndex,
- int* ctrlIndex) {
- *prefader = (id & CTRL_PREFADER) ? true : false;
- *pluginIndex = ((id & CTRL_PLUGIN_MASK) / CTRL_PLUGIN_OFFSET) - 1;
- *ctrlIndex = id & CTRL_INDEX_MASK;
- }
-
-//---------------------------------------------------------
-// ControllerName
-//---------------------------------------------------------
-
-struct ControllerName {
- QString name;
- int id;
- ControllerName(const QString& s, int i) : name(s), id(i) {}
- };
-
-typedef std::vector<ControllerName> ControllerNameList;
-typedef ControllerNameList::iterator iControllerName;
-typedef ControllerNameList::const_iterator ciControllerName;
-
-//---------------------------------------------------------
-// CVal
-// Controller value, either float for audio or
-// int for midi.
-//
-//---------------------------------------------------------
-
-struct CVal {
- union {
- float f;
- int i;
- };
- };
-
-//---------------------------------------------------------
-// CtrlVal
-// This structure represents a controller event. Time
-// is a midi tick value or a frame value depending on
-// then containing controller list Ctrl
-//---------------------------------------------------------
-
-struct CtrlVal {
- int time;
- CVal val;
- CtrlVal(int f, CVal v) {
- time = f;
- val = v;
- }
- CtrlVal(int f) {
- time = f;
- }
- };
-
-//---------------------------------------------------------
-// CtrlRecVal
-// recorded controller event, mixer automation
-//---------------------------------------------------------
-
-struct CtrlRecVal : public CtrlVal {
- int id;
- int type; // 0 - ctrlVal, 1 - start, 2 - end
- CtrlRecVal(int f, int n, CVal v) : CtrlVal(f, v), id(n), type(0) {}
- CtrlRecVal(int f, int n, int t) : CtrlVal(f), id(n), type(t) {}
- };
-
-//---------------------------------------------------------
-// CtrlRecList
-//---------------------------------------------------------
-
-class CtrlRecList : public std::list<CtrlRecVal> {
- public:
- };
-
-typedef CtrlRecList::iterator iCtrlRec;
-
-typedef QMap<unsigned, CVal> CTRL;
-typedef CTRL::iterator iCtrlVal;
-typedef CTRL::const_iterator ciCtrlVal;
-
-//---------------------------------------------------------
-// Ctrl
-// this is a controller list
-//
-// CtrlType == LOG
-// values are internally represented as log10(value)
-//---------------------------------------------------------
-
-class Ctrl : public CTRL {
- public:
- enum CtrlType {
- INTERPOLATE = 0, // values are linear interpolated
- DISCRETE = 1, // midi controller events
- LINEAR = 0,
- LOG = 2,
- INT = 4
- };
-
- private:
- int _id;
- QString _name;
- int _type; // bitmask of CtrlType
- CVal _default;
- CVal _curVal; // used to optimize controller events
- CVal min, max;
- bool _changed;
- bool _touched;
- bool _moveWithPart;
-
- public:
- Ctrl();
- Ctrl(const MidiController*);
- Ctrl(int id, const QString& name, int t=INTERPOLATE);
- Ctrl(int id, const QString& name, int t, float a, float b);
- int type() const { return _type; }
- void setType(int t) { _type = t; }
-
- const CVal& getDefault() const { return _default; }
- void setDefault(float val) { _default.f = val; }
- void setDefault(CVal val) { _default = val; }
- void setDefault(int val) { _default.i = val; }
-
- const CVal& curVal() const { return _curVal; }
- void setCurVal(CVal v) { _curVal = v; _changed = true; }
- void setCurVal(float v) { _curVal.f = v; _changed = true; }
- void setCurVal(int v) { _curVal.i = v; _changed = true; }
-
- int id() const { return _id; }
- void setId(int i) { _id = i; }
- QString name() const { return _name; }
- void setName(const QString& s) { _name = s; }
- CVal value(unsigned);
- bool add(unsigned, CVal);
- void del(unsigned);
- void setChanged(bool val) { _changed = val; }
- bool changed() const { return _changed; }
- void setTouched(bool val) { _touched = val; }
- bool touched() const { return _touched; }
- void setRange(double min, double max);
- void setRange(int min, int max);
- void setRange(CVal, CVal);
- CVal minVal() const { return min; }
- CVal maxVal() const { return max; }
- bool moveWithPart() const { return _moveWithPart; }
- void setMoveWithPart(bool v) { _moveWithPart = v; }
-
- void read(QDomNode node, bool midi);
- void write(Xml&);
- int val2pixelR(CVal, int maxpixel);
- int cur2pixel(int maxpixel);
- int val2pixelR(int, int maxpixel);
- CVal pixel2val(int pixel, int maxpixel);
- CVal pixel2valR(int pixel, int maxpixel);
- };
-
-//---------------------------------------------------------
-// CtrlList
-// List of controller value lists.
-// This list represents the controller state of a
-// mixer strip
-//---------------------------------------------------------
-
-typedef std::map<unsigned, Ctrl*, std::less<unsigned> > CLIST;
-typedef CLIST::iterator iCtrl;
-typedef CLIST::const_iterator ciCtrl;
-
-class CtrlList : public CLIST {
- public:
- void add(Ctrl* vl);
- };
-
-#endif
-