summaryrefslogtreecommitdiff
path: root/muse2/synti/deicsonze/deicsonzegui.h
blob: 190d32773fdb020d2ff7a499c679f69c1639b9d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
//===========================================================================
//
//    DeicsOnze an emulator of the YAMAHA DX11 synthesizer
//
//    Version 0.2.2
//
//    deicsonzegui.h
//
//
//  Copyright (c) 2004 Nil Geisweiller
//
//
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// 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., 59 Temple Place - Suite 330, Boston, MA
// 02111-1307, USA or point your web browser to http://www.gnu.org.
//===========================================================================

#ifndef __DEICSONZEGUI_H
#define __DEICSONZEGUI_H

#include <q3listview.h>
#include <vector>

#include "deicsonzeguibase.h"
#include "libsynti/gui.h"

class DeicsOnze;
class categorySet;
class subcategorySet;
class presetSet;
class Preset;
class QListViewItemCategory;
class QListViewItemSubcategory;
class QListViewItemPreset;
//---------------------------------------------------------
//   DeicsOnzeGui
//---------------------------------------------------------

class DeicsOnzeGui : public DeicsOnzeGuiBase, public MessGui {
    DeicsOnze* _deicsOnze;
    QListViewItemCategory* _currentQLVICategory;
    QListViewItemSubcategory* _currentQLVISubcategory;
    QListViewItemPreset* _currentQLVIPreset;
    
    Q_OBJECT
    QString lastDir;
 private slots:
    void newPresetDialogue();
    void deletePresetDialogue();
    void loadPresetsDialogue();
    void savePresetsDialogue();
    //Preset and bank
    void setName(const QString&);
    void setSubcategory(const QString&);
    void setCategory(const QString&);
    void setBank(int);
    void setProg(int);
   //Global
    void setMasterVol(int);
    void setFeedback(int);
    void setLfoWave(const QString&);
    void setLfoSpeed(int);
    void setLfoDelay(int);
    void setLfoPModDepth(int);
    void setLfoPitchSens(int);
    void setLfoAModDepth(int);
    void setLfoAmpSens(int);
    void setTranspose(int);
    void setGlobalDetune(int);
    void setAlgorithm(const QString&);
    void setPitchBendRange(int);
    //envelope
    void setAR1(int val);
    void setD1R1(int val);
    void setD1L1(int val);
    void setD2R1(int val);
    void setRR1(int val);
    void setAR2(int val);
    void setD1R2(int val);
    void setD1L2(int val);
    void setD2R2(int val);
    void setRR2(int val);
    void setAR3(int val);
    void setD1R3(int val);
    void setD1L3(int val);
    void setD2R3(int val);
    void setRR3(int val);
    void setAR4(int val);
    void setD1R4(int val);
    void setD1L4(int val);
    void setD2R4(int val);
    void setRR4(int val);
    //scaling
    void setLS1(int val);
    void setRS1(int val);
    void setLS2(int val);
    void setRS2(int val);
    void setLS3(int val);
    void setRS3(int val);
    void setLS4(int val);
    void setRS4(int val);
    //vol
    void setVol1(int val);
    void setVol2(int val);
    void setVol3(int val);
    void setVol4(int val);
    //Ratio and Frequency
    void setCoarseRatio1(int val);
    void setFineRatio1(int val);
    void setFreq1(int val);
    void setFix1(bool f);
    void setCoarseRatio2(int val);
    void setFineRatio2(int val);
    void setFreq2(int val);
    void setFix2(bool f);
    void setCoarseRatio3(int val);
    void setFineRatio3(int val);
    void setFreq3(int val);
    void setFix3(bool f);
    void setCoarseRatio4(int val);
    void setFineRatio4(int val);
    void setFreq4(int val);
    void setFix4(bool f);
    //Sensitivity
    void setAME1(bool val);
    void setEBS1(int val);
    void setKVS1(int val);
    void setAME2(bool val);
    void setEBS2(int val);
    void setKVS2(int val);
    void setAME3(bool val);
    void setEBS3(int val);
    void setKVS3(int val);
    void setAME4(bool val);
    void setEBS4(int val);
    void setKVS4(int val);
    //detune
    void setDET1(int val);
    void setDET2(int val);
    void setDET3(int val);
    void setDET4(int val);
    //WaveForm
    void setWaveForm1(const QString&);
    void setWaveForm2(const QString&);
    void setWaveForm3(const QString&);
    void setWaveForm4(const QString&);
    //category subcategory preset
    void setSubcategorySet(Q3ListViewItem*);
    void setPresetSet(Q3ListViewItem*);
    void setPreset(Q3ListViewItem*);

 public:
    void updatePreset(void); //update gui following the current preset
    DeicsOnzeGui(DeicsOnze*);
};

class QListViewItemCategory:public Q3ListViewItem {
 public:
    subcategorySet* _c;
    QListViewItemCategory(Q3ListView* p, QString l, subcategorySet* c)
	:Q3ListViewItem(p, l) {_c=c;};
};

class QListViewItemSubcategory:public Q3ListViewItem {
 public:
    presetSet* _s;
    QListViewItemSubcategory(Q3ListView* p, QString l, presetSet* s)
	:Q3ListViewItem(p, l) {_s=s;};
};

class QListViewItemPreset:public Q3ListViewItem {
 public:
    std::vector<Preset*>::iterator i_p;//presetClass* _p;
    QListViewItemPreset(Q3ListView* pa, QString l, 
			std::vector<Preset*>::iterator ip)
	:Q3ListViewItem(pa, l) {i_p=ip;};
};

#endif /* __DEICSONZEGUI_H */