Subversion Repositories svn.mios

Rev

Rev 696 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
666 rutgerv 1
package org.midibox.sidedit.gui.ensemble;
2
 
3
import java.awt.BorderLayout;
4
import java.awt.GridLayout;
5
import java.util.Vector;
738 adamjking 6
 
666 rutgerv 7
import javax.swing.BorderFactory;
8
import javax.swing.BoxLayout;
9
import javax.swing.JPanel;
10
 
11
import org.midibox.sidedit.gui.controls.SIDSysexParameterControlGUI;
12
import org.midibox.sidedit.gui.controls.SIDSysexParameterControlKnob;
13
 
14
public class SIDGUI extends JPanel {
15
 
16
    public SIDGUI(Vector sidGUIv) {
17
        setLayout(new BorderLayout());
18
        this.setOpaque(false);
19
 
20
        JPanel panel1 = new JPanel();
21
        panel1.setLayout(new BoxLayout(panel1, BoxLayout.Y_AXIS));
22
 
23
        panel1.add(createMain(sidGUIv));
24
        panel1.add(createFlag(sidGUIv));
25
        panel1.add(createInv(sidGUIv));
738 adamjking 26
        panel1.add(createFilCal(sidGUIv));
27
        panel1.add(createKnobs(sidGUIv));
666 rutgerv 28
 
29
        panel1.setOpaque(false);
30
        this.add(panel1, BorderLayout.NORTH);
31
    }
32
 
33
    protected JPanel createMain(Vector midiParameterGUI) {
34
        JPanel mainPanel = new JPanel();
35
        mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.X_AXIS));
36
        mainPanel.setBorder(BorderFactory.createEtchedBorder());
37
        mainPanel.setBorder(BorderFactory.createTitledBorder("General"));
38
        mainPanel.setOpaque(false);
738 adamjking 39
 
40
        mainPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
41
                .elementAt(0));
42
        mainPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
43
                .elementAt(1));
666 rutgerv 44
        int[] snapvals = new int[206];
738 adamjking 45
        for (int i = 50; i < 256; i++) {
46
            snapvals[i - 50] = i;
666 rutgerv 47
        }
738 adamjking 48
        ((SIDSysexParameterControlKnob) midiParameterGUI.elementAt(11))
49
                .setSnapVals(snapvals, null);
50
        ((SIDSysexParameterControlGUI) midiParameterGUI.elementAt(11))
51
                .setSnap(true);
52
        mainPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
53
                .elementAt(11));
54
        ((SIDSysexParameterControlKnob) midiParameterGUI.elementAt(12))
55
                .setSnapVals(new int[] { 0, 1, 2, 3, 4 }, new String[] { "OFF",
56
                        "1", "2", "3", "4" });
57
        ((SIDSysexParameterControlGUI) midiParameterGUI.elementAt(12))
58
                .setSnap(true);
59
        mainPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
60
                .elementAt(12));
61
        mainPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
62
                .elementAt(2));
63
 
666 rutgerv 64
        return mainPanel;
65
    }
738 adamjking 66
 
666 rutgerv 67
    protected JPanel createFilCal(Vector midiParameterGUI) {
68
        JPanel filPanel = new JPanel();
69
        filPanel.setLayout(new GridLayout(2, 2));
70
        filPanel.setBorder(BorderFactory.createEtchedBorder());
738 adamjking 71
        filPanel.setBorder(BorderFactory
72
                .createTitledBorder("Filter calibration"));
666 rutgerv 73
        filPanel.setOpaque(false);
738 adamjking 74
 
666 rutgerv 75
        // Filter calibration
738 adamjking 76
        filPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
77
                .elementAt(21));
78
        filPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
79
                .elementAt(23));
80
        filPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
81
                .elementAt(22));
82
        filPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
83
                .elementAt(24));
666 rutgerv 84
        return filPanel;
85
    }
738 adamjking 86
 
666 rutgerv 87
    protected JPanel createInv(Vector midiParameterGUI) {
88
        JPanel invPanel = new JPanel();
89
        invPanel.setLayout(new GridLayout(1, 8));
90
        invPanel.setBorder(BorderFactory.createEtchedBorder());
738 adamjking 91
        invPanel.setBorder(BorderFactory
92
                .createTitledBorder("Invert analog outputs"));
666 rutgerv 93
        invPanel.setOpaque(false);
738 adamjking 94
 
666 rutgerv 95
        // AOUT inversion flags
738 adamjking 96
        invPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
97
                .elementAt(13));
98
        invPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
99
                .elementAt(14));
100
        invPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
101
                .elementAt(15));
102
        invPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
103
                .elementAt(16));
104
        invPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
105
                .elementAt(17));
106
        invPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
107
                .elementAt(18));
108
        invPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
109
                .elementAt(19));
110
        invPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
111
                .elementAt(20));
666 rutgerv 112
        return invPanel;
113
    }
738 adamjking 114
 
666 rutgerv 115
    protected JPanel createFlag(Vector midiParameterGUI) {
116
        JPanel flagPanel = new JPanel();
117
        flagPanel.setLayout(new GridLayout(1, 8));
118
        flagPanel.setBorder(BorderFactory.createEtchedBorder());
119
        flagPanel.setBorder(BorderFactory.createTitledBorder("Flags"));
120
        flagPanel.setOpaque(false);
738 adamjking 121
 
122
        // Flags
123
        flagPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
124
                .elementAt(3));
125
        flagPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
126
                .elementAt(4));
127
        flagPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
128
                .elementAt(5));
129
        flagPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
130
                .elementAt(6));
131
        flagPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
132
                .elementAt(7));
133
        flagPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
134
                .elementAt(8));
135
        flagPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
136
                .elementAt(9));
137
        flagPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
138
                .elementAt(10));
666 rutgerv 139
        return flagPanel;
140
    }
141
 
142
    protected JPanel createKnobs(Vector midiParameterGUI) {
143
        JPanel knobsPanel = new JPanel(new GridLayout(1, 6));
144
        knobsPanel.setOpaque(false);
145
        knobsPanel.add(createKnob(midiParameterGUI, 0, "Instrument 1"));
146
        knobsPanel.add(createKnob(midiParameterGUI, 5, "Instrument 2"));
147
        knobsPanel.add(createKnob(midiParameterGUI, 10, "Instrument 3"));
148
        knobsPanel.add(createKnob(midiParameterGUI, 15, "Instrument 4"));
149
        knobsPanel.add(createKnob(midiParameterGUI, 20, "Instrument 5"));
150
        knobsPanel.add(createKnob(midiParameterGUI, 25, "Instrument 6"));
151
        return knobsPanel;
152
    }
153
 
154
    protected JPanel createKnob(Vector midiParameterGUI, int offset, String s) {
155
        JPanel knobPanel = new JPanel();
156
        knobPanel.setLayout(new BoxLayout(knobPanel, BoxLayout.Y_AXIS));
157
        knobPanel.setBorder(BorderFactory.createEtchedBorder());
158
        knobPanel.setBorder(BorderFactory.createTitledBorder(s));
159
        knobPanel.setOpaque(false);
160
 
738 adamjking 161
        knobPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
162
                .elementAt(25 + offset));
163
        knobPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
164
                .elementAt(26 + offset));
165
        knobPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
166
                .elementAt(27 + offset));
167
        knobPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
168
                .elementAt(28 + offset));
169
        knobPanel.add((SIDSysexParameterControlGUI) midiParameterGUI
170
                .elementAt(29 + offset));
666 rutgerv 171
 
172
        return knobPanel;
173
    }
174
}