Subversion Repositories svn.mios

Rev

Rev 272 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 272 Rev 628
Line 24... Line 24...
24
24
25
import javax.swing.BoxLayout;
25
import javax.swing.BoxLayout;
26
import javax.swing.JPanel;
26
import javax.swing.JPanel;
27
import javax.swing.JToggleButton;
27
import javax.swing.JToggleButton;
28
28
29
import org.midibox.sidedit.*;
29
import org.midibox.sidedit.SIDSysexParameterControl;
30
import org.midibox.utils.gui.ImageLoader;
30
import org.midibox.utils.gui.ImageLoader;
31
import org.midibox.utils.gui.MyButtonUI;
31
import org.midibox.utils.gui.MyButtonUI;
32
32
33
public class SIDSysexParameterControlWaveSelect extends SIDSysexParameterControlGUI {
33
public class SIDSysexParameterControlWaveSelect extends
-
 
34
        SIDSysexParameterControlGUI {
34
35
35
    private JToggleButton b0, b1, b2, b3, b4, b5, b6;
36
    private JToggleButton b0, b1, b2, b3, b4, b5, b6;
36
    private int bitmask0 = (int) Math.pow(2,4); // Off
37
    private int bitmask0 = (int) Math.pow(2, 4); // Off
37
    private int bitmask1 = (int) Math.pow(2,0); // Triangle
38
    private int bitmask1 = (int) Math.pow(2, 0); // Triangle
38
    private int bitmask2 = (int) Math.pow(2,1); // Saw
39
    private int bitmask2 = (int) Math.pow(2, 1); // Saw
39
    private int bitmask3 = (int) Math.pow(2,2); // Pulse
40
    private int bitmask3 = (int) Math.pow(2, 2); // Pulse
40
    private int bitmask4 = (int) Math.pow(2,3); // Noise    
41
    private int bitmask4 = (int) Math.pow(2, 3); // Noise
41
    private int bitmask5 = (int) Math.pow(2,5); // Sync
42
    private int bitmask5 = (int) Math.pow(2, 5); // Sync
42
    private int bitmask6 = (int) Math.pow(2,6); // Ringmod
43
    private int bitmask6 = (int) Math.pow(2, 6); // Ringmod
43
   
44
-
 
45
    public SIDSysexParameterControlWaveSelect(
44
        public SIDSysexParameterControlWaveSelect(SIDSysexParameterControl midiParameter, boolean showLabel,
46
            SIDSysexParameterControl midiParameter, boolean showLabel,
45
            String labelLocation, boolean valueBelow, boolean showValue) {
47
            String labelLocation, boolean valueBelow, boolean showValue) {
46
        super(midiParameter, showLabel, labelLocation, valueBelow, showValue);
48
        super(midiParameter, showLabel, labelLocation, valueBelow, showValue);
47
       
49
48
        JPanel panel = new JPanel();
50
        JPanel panel = new JPanel();
49
        panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
51
        panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
Line 53... Line 55...
53
        b2 = new JToggleButton();
55
        b2 = new JToggleButton();
54
        b3 = new JToggleButton();
56
        b3 = new JToggleButton();
55
        b4 = new JToggleButton();
57
        b4 = new JToggleButton();
56
        b5 = new JToggleButton();
58
        b5 = new JToggleButton();
57
        b6 = new JToggleButton();
59
        b6 = new JToggleButton();
58
        b0.setUI(new MyButtonUI(ImageLoader.getImageIcon("off_on.png"), ImageLoader.getImageIcon("off.png")));
60
        b0.setUI(new MyButtonUI(ImageLoader.getImageIcon("off_on.png"),
-
 
61
                ImageLoader.getImageIcon("off.png")));
59
        b1.setUI(new MyButtonUI(ImageLoader.getImageIcon("tri_on.png"), ImageLoader.getImageIcon("tri.png")));
62
        b1.setUI(new MyButtonUI(ImageLoader.getImageIcon("tri_on.png"),
-
 
63
                ImageLoader.getImageIcon("tri.png")));
60
        b2.setUI(new MyButtonUI(ImageLoader.getImageIcon("saw_on.png"), ImageLoader.getImageIcon("saw.png")));
64
        b2.setUI(new MyButtonUI(ImageLoader.getImageIcon("saw_on.png"),
-
 
65
                ImageLoader.getImageIcon("saw.png")));
61
        b3.setUI(new MyButtonUI(ImageLoader.getImageIcon("pulse_on.png"), ImageLoader.getImageIcon("pulse.png")));
66
        b3.setUI(new MyButtonUI(ImageLoader.getImageIcon("pulse_on.png"),
-
 
67
                ImageLoader.getImageIcon("pulse.png")));
62
        b4.setUI(new MyButtonUI(ImageLoader.getImageIcon("noise_on.png"), ImageLoader.getImageIcon("noise.png")));
68
        b4.setUI(new MyButtonUI(ImageLoader.getImageIcon("noise_on.png"),
-
 
69
                ImageLoader.getImageIcon("noise.png")));
63
        b5.setUI(new MyButtonUI(ImageLoader.getImageIcon("sync_on.png"), ImageLoader.getImageIcon("sync.png")));
70
        b5.setUI(new MyButtonUI(ImageLoader.getImageIcon("sync_on.png"),
-
 
71
                ImageLoader.getImageIcon("sync.png")));
64
        b6.setUI(new MyButtonUI(ImageLoader.getImageIcon("ringmod_on.png"), ImageLoader.getImageIcon("ringmod.png")));
72
        b6.setUI(new MyButtonUI(ImageLoader.getImageIcon("ringmod_on.png"),
-
 
73
                ImageLoader.getImageIcon("ringmod.png")));
65
        //panel.add(b0);    // This is the 'Off' button, which should be invisible because it's pressed automatically in the background
74
        // panel.add(b0); // This is the 'Off' button, which should be invisible
-
 
75
        // because it's pressed automatically in the background
66
        panel.add(b1);
76
        panel.add(b1);
67
        panel.add(b2);
77
        panel.add(b2);
68
        panel.add(b3);
78
        panel.add(b3);
69
        panel.add(b4);
79
        panel.add(b4);
70
        panel.add(b5);
80
        panel.add(b5);
Line 88... Line 98...
88
    }
98
    }
89
99
90
    public void actionPerformed(ActionEvent ae) {
100
    public void actionPerformed(ActionEvent ae) {
91
        super.actionPerformed(ae);
101
        super.actionPerformed(ae);
92
        if (ae.getSource().getClass() == JToggleButton.class) {    
102
        if (ae.getSource().getClass() == JToggleButton.class) {
93
            if ((ae.getSource() == b4) && b4.isSelected()){             // Noise button disables all others         
103
            if ((ae.getSource() == b4) && b4.isSelected()) { // Noise button
-
 
104
                // disables all
-
 
105
                // others
94
                b0.setSelected(false);
106
                b0.setSelected(false);
95
                b1.setSelected(false);
107
                b1.setSelected(false);
96
                b2.setSelected(false);
108
                b2.setSelected(false);
97
                b3.setSelected(false);
109
                b3.setSelected(false);
98
            } else if ((ae.getSource() == b0) && b0.isSelected()) {     // Off button disables all others   
110
            } else if ((ae.getSource() == b0) && b0.isSelected()) { // Off
-
 
111
                // button
-
 
112
                // disables
-
 
113
                // all
-
 
114
                // others
99
                b1.setSelected(false);
115
                b1.setSelected(false);
100
                b2.setSelected(false);
116
                b2.setSelected(false);
101
                b3.setSelected(false);
117
                b3.setSelected(false);
102
                b4.setSelected(false);
118
                b4.setSelected(false);
103
            } else if (((ae.getSource() == b1)||(ae.getSource() == b2)||(ae.getSource() == b3)) && (b1.isSelected()||b2.isSelected()||b3.isSelected())) {
119
            } else if (((ae.getSource() == b1) || (ae.getSource() == b2) || (ae
-
 
120
                    .getSource() == b3))
-
 
121
                    && (b1.isSelected() || b2.isSelected() || b3.isSelected())) {
104
                b0.setSelected(false);
122
                b0.setSelected(false);
105
                b4.setSelected(false);
123
                b4.setSelected(false);
106
            }  
124
            }
107
           
125
108
            if (!(b0.isSelected()||b1.isSelected()||b2.isSelected()||b3.isSelected()||b4.isSelected())) {
126
            if (!(b0.isSelected() || b1.isSelected() || b2.isSelected()
-
 
127
                    || b3.isSelected() || b4.isSelected())) {
109
                b0.setSelected(true);
128
                b0.setSelected(true);
110
            }
129
            }
111
       
130
112
            if (update) {
131
            if (update) {
113
                update = false;                            
132
                update = false;
Line 119... Line 138...
119
                newval = newval | (b4.isSelected()?bitmask4:0);
138
                newval = newval | (b4.isSelected() ? bitmask4 : 0);
120
                newval = newval | (b5.isSelected()?bitmask5:0);
139
                newval = newval | (b5.isSelected() ? bitmask5 : 0);
121
                newval = newval | (b6.isSelected()?bitmask6:0);
140
                newval = newval | (b6.isSelected() ? bitmask6 : 0);
122
                midiParameter.setMidiValue(newval, true);
141
                midiParameter.setMidiValue(newval, true);
123
                for (int c = 0; c < midiParameters.size(); c++) {
142
                for (int c = 0; c < midiParameters.size(); c++) {
124
                    SIDSysexParameterControl mp = (SIDSysexParameterControl) midiParameters.elementAt(c);
143
                    SIDSysexParameterControl mp = (SIDSysexParameterControl) midiParameters
-
 
144
                            .elementAt(c);
125
                    mp.setMidiValue(newval, false);
145
                    mp.setMidiValue(newval, false);
126
                }
146
                }
127
                update = true;
147
                update = true;
128
            }
148
            }
129
        }      
149
        }