~ubuntu-branches/ubuntu/raring/muse/raring-proposed

« back to all changes in this revision

Viewing changes to muse/midictrl.h

  • Committer: Package Import Robot
  • Author(s): Alessio Treglia
  • Date: 2012-11-22 01:16:59 UTC
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: package-import@ubuntu.com-20121122011659-a2fwbf33ceqe1s0t
Tags: upstream-2.1~rc1
ImportĀ upstreamĀ versionĀ 2.1~rc1

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
//  $Id: midictrl.h,v 1.16.2.8 2009/11/25 09:09:43 terminator356 Exp $
5
5
//
6
6
//  (C) Copyright 1999-2003 Werner Schweer (ws@seh.de)
 
7
//  (C) Copyright 2012 Tim E. Real (terminator356 on users dot sourceforge dot net)
7
8
//
8
9
//  This program is free software; you can redistribute it and/or
9
10
//  modify it under the terms of the GNU General Public License
81
82
const int CTRL_INTERNAL_OFFSET = 0x40000;
82
83
 
83
84
const int CTRL_PITCH    = CTRL_INTERNAL_OFFSET;
84
 
const int CTRL_PROGRAM  = CTRL_INTERNAL_OFFSET      + 1;
85
 
const int CTRL_VELOCITY = CTRL_INTERNAL_OFFSET      + 2;
86
 
const int CTRL_MASTER_VOLUME = CTRL_INTERNAL_OFFSET + 3;
 
85
const int CTRL_PROGRAM  = CTRL_INTERNAL_OFFSET      + 0x01;
 
86
const int CTRL_VELOCITY = CTRL_INTERNAL_OFFSET      + 0x02;
 
87
const int CTRL_MASTER_VOLUME = CTRL_INTERNAL_OFFSET + 0x03;
 
88
const int CTRL_AFTERTOUCH = CTRL_INTERNAL_OFFSET    + 0x04;
 
89
// NOTE: The range from CTRL_INTERNAL_OFFSET + 0x100 to CTRL_INTERNAL_OFFSET + 0x1ff is reserved 
 
90
//        for this control. (The low byte is reserved because this is a per-note control.) 
 
91
const int CTRL_POLYAFTER = CTRL_INTERNAL_OFFSET     + 0x1FF;  // 100 to 1FF !
87
92
 
88
93
const int CTRL_VAL_UNKNOWN   = 0x10000000; // used as unknown hwVal
89
94
 
113
118
            NRPN14,           // non registered parameter 0x60000 -
114
119
            Pitch,            // num value = CTRL_PITCH
115
120
            Program,          // num value = CTRL_PROGRAM
 
121
            PolyAftertouch,   // num value = CTRL_POLYAFTER
 
122
            Aftertouch,       // num value = CTRL_AFTERTOUCH
116
123
            Velo              // not assigned
117
124
            };
 
125
            
 
126
      enum ShowInTrackType { ShowInDrum=1, ShowInMidi=2 };
 
127
      
118
128
   private:
119
129
      QString _name;
120
130
      int _num;               // Controller Number
122
132
      int _maxVal;
123
133
      int _initVal;
124
134
      int _bias;
 
135
      int _showInTracks;
125
136
      void updateBias();
126
137
 
127
138
   public:
128
139
      MidiController();
129
 
      MidiController(const QString& n, int num, int min, int max, int init);
 
140
      MidiController(const QString& n, int num, int min, int max, int init, int show_in_track = (ShowInDrum | ShowInMidi));
130
141
      MidiController(const MidiController& mc);
131
142
      void copy(const MidiController &mc);
132
143
      MidiController& operator= (const MidiController &mc);
144
155
      void setMinVal(int val)             { _minVal = val; updateBias(); }
145
156
      void setMaxVal(int val)             { _maxVal = val; updateBias(); }
146
157
      int bias() const                    { return _bias; }
 
158
      int showInTracks() const            { return _showInTracks; }
 
159
      void setShowInTracks(int i)         { _showInTracks = i; }
 
160
      bool isPerNoteController() const    { return (_num & 0xff) == 0xff; }
147
161
      static int genNum(ControllerType, int, int);
148
162
      };
149
163
 
233
247
      MidiControllerList(const MidiControllerList& mcl);
234
248
      
235
249
      void add(MidiController* mc) { insert(std::pair<int, MidiController*>(mc->num(), mc)); }
 
250
      bool ctrlAvailable(int find_num, MidiController* ignore_this = 0);
236
251
};
237
252
 
238
253
typedef MidiControllerList::iterator iMidiController;
242
257
extern MidiControllerList defaultMidiController;
243
258
extern void initMidiController();
244
259
extern MidiController::ControllerType midiControllerType(int num);
245
 
extern int midiCtrlTerms2Number(int type_num, int ctrl);
 
260
extern int midiCtrlTerms2Number(MidiController::ControllerType type, int ctrl = 0);
246
261
 
247
262
 
248
263
extern const QString& int2ctrlType(int n);
250
265
extern QString midiCtrlName(int ctrl, bool fullyQualified = false);
251
266
extern QString midiCtrlNumString(int ctrl, bool fullyQualified = false);
252
267
extern MidiController veloCtrl;
253
 
 
 
268
extern MidiController pitchCtrl;
 
269
extern MidiController programCtrl;
 
270
extern MidiController mastervolCtrl;
 
271
extern MidiController volumeCtrl;
 
272
extern MidiController panCtrl;
 
273
extern MidiController reverbSendCtrl;
 
274
extern MidiController chorusSendCtrl;
 
275
extern MidiController variationSendCtrl;
254
276
 
255
277
typedef std::map<int, int, std::less<int> > MidiCtl2LadspaPortMap;
256
278
typedef MidiCtl2LadspaPortMap::iterator iMidiCtl2LadspaPort;