Subversion Repositories svn.mios

Rev

Rev 272 | Rev 657 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 272 Rev 628
Line 27... Line 27...
27
27
28
import javax.swing.JPanel;
28
import javax.swing.JPanel;
29
import javax.swing.event.ChangeEvent;
29
import javax.swing.event.ChangeEvent;
30
import javax.swing.event.ChangeListener;
30
import javax.swing.event.ChangeListener;
31
31
-
 
32
import org.midibox.sidedit.SIDSysexParameterControl;
32
import org.midibox.utils.gui.Knob;
33
import org.midibox.utils.gui.Knob;
33
import org.midibox.sidedit.*;
-
 
34
34
35
public class SIDSysexParameterControlKnob extends SIDSysexParameterControlGUI implements
35
public class SIDSysexParameterControlKnob extends SIDSysexParameterControlGUI
36
        ChangeListener, MouseWheelListener {
36
        implements ChangeListener, MouseWheelListener {
37
37
38
    public static float mouseWheelResolution = 10.0f;
38
    public static float mouseWheelResolution = 10.0f;
39
39
40
    private Knob knob;
40
    private Knob knob;
41
   
41
42
    public SIDSysexParameterControlKnob(SIDSysexParameterControl midiParameter, Knob knob,
42
    public SIDSysexParameterControlKnob(SIDSysexParameterControl midiParameter,
43
            boolean showLabel, String labelLocation, boolean valueBelow,
43
            Knob knob, boolean showLabel, String labelLocation,
44
            boolean showValue) {
44
            boolean valueBelow, boolean showValue) {
45
        super(midiParameter, showLabel, labelLocation, valueBelow, showValue);
45
        super(midiParameter, showLabel, labelLocation, valueBelow, showValue);
46
        this.knob = knob;
46
        this.knob = knob;
47
        JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));
47
        JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));
48
        panel.setOpaque(false);
48
        panel.setOpaque(false);
49
        panel.add(knob);
49
        panel.add(knob);
Line 53... Line 53...
53
        knob.addMouseListener(this);
53
        knob.addMouseListener(this);
54
        updateGraphics();      
54
        updateGraphics();
55
    }
55
    }
56
56
57
    public void mouseWheelMoved(MouseWheelEvent mwe) {
57
    public void mouseWheelMoved(MouseWheelEvent mwe) {
-
 
58
        knob
-
 
59
                .setValue(knob.getValue()
58
        knob.setValue(knob.getValue() - (mwe.getWheelRotation() * ((mouseWheelResolution / 100) * (knob.getMaxValue() - knob.getMinValue()))));
60
                        - (mwe.getWheelRotation() * ((mouseWheelResolution / 100) * (knob
-
 
61
                                .getMaxValue() - knob.getMinValue()))));
59
    }
62
    }
60
63
61
    public void stateChanged(ChangeEvent ce) {
64
    public void stateChanged(ChangeEvent ce) {
62
        if (update) {
65
        if (update) {
63
            update = false;
66
            update = false;
64
            int newval;
67
            int newval;
65
            if (midiParameter.snap) {
68
            if (midiParameter.snap) {
66
                int index = (int) ((knob.getValue() / knob.getMaxValue()) * (midiParameter.snapvals.length-1));
69
                int index = (int) ((knob.getValue() / knob.getMaxValue()) * (midiParameter.snapvals.length - 1));
67
                newval = midiParameter.snapvals[index];            
70
                newval = midiParameter.snapvals[index];
68
            } else {
71
            } else {
69
                newval = (int) ((knob.getValue() / knob.getMaxValue()) * (midiParameter.getMidiMaxValue() - midiParameter.getMidiMinValue())) + midiParameter.getMidiMinValue();
72
                newval = (int) ((knob.getValue() / knob.getMaxValue()) * (midiParameter
-
 
73
                        .getMidiMaxValue() - midiParameter.getMidiMinValue()))
-
 
74
                        + midiParameter.getMidiMinValue();
70
            }
75
            }
71
           
76
72
            midiParameter.setMidiValue(newval, true);
77
            midiParameter.setMidiValue(newval, true);
73
           
78
74
            for (int c = 0; c < midiParameters.size(); c++) {
79
            for (int c = 0; c < midiParameters.size(); c++) {
75
                SIDSysexParameterControl mp = (SIDSysexParameterControl) midiParameters.elementAt(c);
80
                SIDSysexParameterControl mp = (SIDSysexParameterControl) midiParameters
-
 
81
                        .elementAt(c);
76
                mp.setMidiValue(newval, false);
82
                mp.setMidiValue(newval, false);
77
            }
83
            }
78
           
84
79
            update = true;
85
            update = true;
80
        }
86
        }
Line 93... Line 99...
93
   
99
94
    public void setSnapvals(int[] vals) {
100
    public void setSnapvals(int[] vals) {
95
        midiParameter.useAlias = false;
101
        midiParameter.useAlias = false;
96
        midiParameter.snapvals = vals; 
102
        midiParameter.snapvals = vals;
97
        for (int c = 0; c < midiParameters.size(); c++) {
103
        for (int c = 0; c < midiParameters.size(); c++) {
98
            SIDSysexParameterControl mp = (SIDSysexParameterControl) midiParameters.elementAt(c);
104
            SIDSysexParameterControl mp = (SIDSysexParameterControl) midiParameters
-
 
105
                    .elementAt(c);
99
            mp.snapvals = vals;
106
            mp.snapvals = vals;
100
        }
107
        }
101
    }
108
    }
102
   
109
103
    public void updateGraphics() {
110
    public void updateGraphics() {
Line 107... Line 114...
107
            float newval;
114
            float newval;
108
            if (midiParameter.snap) {
115
            if (midiParameter.snap) {
109
                int index = findSnap(midiParameter.getMidiValue());
116
                int index = findSnap(midiParameter.getMidiValue());
110
                newval = ((float)index)/(midiParameter.snapvals.length-1);
117
                newval = ((float) index) / (midiParameter.snapvals.length - 1);
111
            } else {
118
            } else {
112
                newval = ((float)midiParameter.getMidiValue()-(float)midiParameter.getMidiMinValue())/((float)midiParameter.getMidiMaxValue() - (float)midiParameter.getMidiMinValue());
119
                newval = ((float) midiParameter.getMidiValue() - (float) midiParameter
-
 
120
                        .getMidiMinValue())
-
 
121
                        / ((float) midiParameter.getMidiMaxValue() - (float) midiParameter
-
 
122
                                .getMidiMinValue());
113
            }
123
            }
114
            knob.setValue(newval);
124
            knob.setValue(newval);
115
            update = true;
125
            update = true;
116
        }
126
        }
117
    }
127
    }