Subversion Repositories svn.mios

Rev

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

Rev 657 Rev 668
Line 46... Line 46...
46
        this.knob = knob;
46
        this.knob = knob;
47
47
48
        JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));
48
        JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));
49
        panel.setOpaque(false);
49
        panel.setOpaque(false);
50
        panel.add(knob);
50
        panel.add(knob);
-
 
51
-
 
52
        knob.setMinimum(midiParameter.getMidiMinValue());
-
 
53
        knob.setMaximum(midiParameter.getMidiMaxValue());
-
 
54
51
        add(panel, BorderLayout.CENTER);
55
        add(panel, BorderLayout.CENTER);
52
        knob.addChangeListener(this);
56
        knob.addChangeListener(this);
53
        knob.addMouseWheelListener(this);
57
        knob.addMouseWheelListener(this);
54
        knob.addMouseListener(this);
58
        knob.addMouseListener(this);
55
        updateGraphics();
59
        updateGraphics();
56
    }
60
    }
57
61
58
    public void mouseWheelMoved(MouseWheelEvent mwe) {
62
    public void mouseWheelMoved(MouseWheelEvent mwe) {
59
        knob
63
        knob
60
                .setValue((int) (knob.getValue() - (mwe.getWheelRotation() * ((mouseWheelResolution / 100) * (knob
64
                .setValue((int) (knob.getValue() - (mwe.getWheelRotation() * ((mouseWheelResolution / 100) * (knob
61
                        .getMaxValue() - knob.getMinValue())))));
65
                        .getMaximum() - knob.getMinimum())))));
62
    }
66
    }
63
67
64
    public void stateChanged(ChangeEvent ce) {
68
    public void stateChanged(ChangeEvent ce) {
-
 
69
65
        if (update) {
70
        if (update) {
-
 
71
66
            update = false;
72
            update = false;
-
 
73
67
            int newval;
74
            int newval;
-
 
75
68
            if (midiParameter.snap) {
76
            if (midiParameter.snap) {
-
 
77
-
 
78
                int index = (int) (((float) knob.getValue() / (float) knob
69
                int index = (int) ((knob.getValue() / knob.getMaxValue()) * (midiParameter.snapvals.length - 1));
79
                        .getMaximum()) * (midiParameter.snapvals.length - 1));
70
                newval = midiParameter.snapvals[index];
80
                newval = midiParameter.snapvals[index];
-
 
81
71
            } else {
82
            } else {
72
                newval = (int) ((knob.getValue() / knob.getMaxValue()) * (midiParameter
-
 
73
                        .getMidiMaxValue() - midiParameter.getMidiMinValue()))
-
 
-
 
83
74
                        + midiParameter.getMidiMinValue();
84
                newval = knob.getValue();
75
            }
85
            }
76
86
77
            midiParameter.setMidiValue(newval, true);
87
            midiParameter.setMidiValue(newval, true);
78
88
79
            for (int c = 0; c < midiParameters.size(); c++) {
89
            for (int c = 0; c < midiParameters.size(); c++) {
Line 82... Line 92...
82
                mp.setMidiValue(newval, false);
92
                mp.setMidiValue(newval, false);
83
            }
93
            }
84
94
85
            update = true;
95
            update = true;
86
        }
96
        }
-
 
97
87
    }
98
    }
88
99
89
    private int findSnap(int val) {
100
    private int findSnap(int val) {
90
        int outval = 0;
101
        int outval = 0;
91
        for (int i = 0; i < midiParameter.snapvals.length; i++) {
102
        for (int i = 0; i < midiParameter.snapvals.length; i++) {
Line 106... Line 117...
106
            mp.snapvals = vals;
117
            mp.snapvals = vals;
107
        }
118
        }
108
    }
119
    }
109
120
110
    public void updateGraphics() {
121
    public void updateGraphics() {
-
 
122
111
        super.updateGraphics();
123
        super.updateGraphics();
-
 
124
112
        if (update) {
125
        if (update) {
-
 
126
113
            update = false;
127
            update = false;
-
 
128
114
            float newval;
129
            int newval;
-
 
130
115
            if (midiParameter.snap) {
131
            if (midiParameter.snap) {
-
 
132
116
                int index = findSnap(midiParameter.getMidiValue());
133
                int index = findSnap(midiParameter.getMidiValue());
117
                newval = ((float) index) / (midiParameter.snapvals.length - 1);
134
                newval = index / (midiParameter.snapvals.length - 1);
-
 
135
118
            } else {
136
            } else {
-
 
137
119
                newval = ((float) midiParameter.getMidiValue() - (float) midiParameter
138
                newval = midiParameter.getMidiValue();
120
                        .getMidiMinValue())
-
 
121
                        / ((float) midiParameter.getMidiMaxValue() - (float) midiParameter
-
 
122
                                .getMidiMinValue());
-
 
123
            }
139
            }
124
            knob.setValue((int) (newval * (knob.getMaxValue() - knob
-
 
-
 
140
125
                    .getMinValue())));
141
            knob.setValue(newval);
-
 
142
126
            update = true;
143
            update = true;
127
        }
144
        }
128
    }
145
    }
129
}
146
}