1 //========================================================= 2 // MusE 3 // Linux Music Editor 4 // $Id: globaldefs.h,v 1.3.2.1 2009/05/03 04:14:00 terminator356 Exp $ 5 // 6 // (C) Copyright 2000 Werner Schweer (ws@seh.de) 7 // 8 // This program is free software; you can redistribute it and/or 9 // modify it under the terms of the GNU General Public License 10 // as published by the Free Software Foundation; version 2 of 11 // the License, or (at your option) any later version. 12 // 13 // This program is distributed in the hope that it will be useful, 14 // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 // GNU General Public License for more details. 17 // 18 // You should have received a copy of the GNU General Public License 19 // along with this program; if not, write to the Free Software 20 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 // 22 //========================================================= 23 24 #ifndef __GLOBALDEFS_H__ 25 #define __GLOBALDEFS_H__ 26 27 namespace MusECore { 28 29 // Midi Type 30 // MT_GM - General Midi 31 // MT_GS - Roland GS 32 // MT_XG - Yamaha XG 33 // MT_GM2 - General Midi Level 2 34 35 enum MType { MT_UNKNOWN=0, MT_GM, MT_GS, MT_XG, MT_GM2 }; 36 37 enum AutomationType { 38 AUTO_OFF, AUTO_READ, AUTO_TOUCH, AUTO_WRITE 39 }; 40 41 // Can be Or'd together. 42 enum PluginFeature { 43 PluginNoFeatures = 0x00, 44 PluginFixedBlockSize = 0x01, 45 PluginPowerOf2BlockSize = 0x02, 46 PluginNoInPlaceProcessing = 0x04, 47 PluginCoarseBlockSize = 0x08 }; 48 typedef int PluginFeatures_t; 49 50 enum VstPluginFlags 51 { 52 vstPluginNoFlags = 0, 53 canSendVstEvents = 1 << 0, 54 canSendVstMidiEvents = 1 << 1, 55 canSendVstTimeInfo = 1 << 2, 56 canReceiveVstEvents = 1 << 3, 57 canReceiveVstMidiEvents = 1 << 4, 58 canReceiveVstTimeInfo = 1 << 5, 59 canProcessVstOffline = 1 << 6, 60 canUseVstAsInsert = 1 << 7, 61 canUseVstAsSend = 1 << 8, 62 canMixVstDryWet = 1 << 9, 63 canVstMidiProgramNames = 1 << 10 64 }; 65 typedef int VstPluginFlags_t; 66 67 // Absolute max number of plugins in mixer rack (if we ever want to increase PipelineDepth). 68 // Used to determine the index where special blocks (dssi ladspa controls) appear in the list of controllers. 69 // The special block(s) must appear AFTER any rack plugins, so we need this variable to help us 70 // leave some room in case we ever want to increase the number of rack plugins. 71 const int MAX_PLUGINS = 8; 72 73 // plugins in mixer rack, max up to MAX_PLUGINS 74 const int PipelineDepth = 8; 75 76 // max audio channels 77 const int MAX_CHANNELS = 2; 78 79 // max Number of Midi Ports 80 const int MIDI_PORTS = 200; 81 82 // Midi channels per Port 83 const int MUSE_MIDI_CHANNELS = 16; 84 85 const double MIN_TEMPO_VAL = 20.0; 86 const double MAX_TEMPO_VAL = 400.0; 87 88 } // namespace MusECore 89 90 91 namespace MusEGui { 92 93 enum EditInstrumentTabType { 94 EditInstrumentPatches=0, 95 EditInstrumentDrumMaps=1, 96 EditInstrumentControllers=2, 97 EditInstrumentSysex=3, 98 EditInstrumentInitSeq=4 }; 99 100 enum class MidiEventColorMode { 101 blueEvents, 102 pitchColorEvents, 103 velocityColorEvents, 104 lastInList 105 }; 106 107 // The default amount of space before bar # 1 (or the start of a part). 108 const int DefaultCanvasXOrigin = -16; 109 110 } // namespace MusEGui 111 112 113 #endif 114 115