UI Label fix (and 'verbose' transpose)

pull/1/head
asb2m10 9 years ago
parent 0d382416c3
commit 74bd4fa6b9
  1. 5176
      Builds/MacOSX/Dexed.xcodeproj/project.pbxproj
  2. BIN
      Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate
  3. 7
      README.md
  4. 9
      Source/DXComponents.cpp
  5. 70
      Source/PluginParam.cpp
  6. 2
      Source/PluginParam.h

File diff suppressed because it is too large Load Diff

@ -35,6 +35,13 @@ new version here but you see it in the change log, it's because this version is
Changelog
---------
#### Version 0.8.1
* Apple AU support
* Basic theming
* Fixed the UI corruption when more than one Dexed instance was loaded
#### Version 0.8.0
* New UI by [AZur Studio](http://bji.yukihotaru.com/)
* You can now copy/paste the operator/envelopes values by using the right-click mouse button on the operator

@ -351,11 +351,17 @@ void LcdDisplay::paint(Graphics &g) {
void ComboBoxImage::paint(Graphics &g) {
int idx = getSelectedItemIndex();
if ( itemPos[0] != -1 ) {
if ( idx < 4 )
idx = itemPos[idx];
}
g.drawImage(items, 0, 0, items.getWidth(), itemHeight, 0, idx * itemHeight, items.getWidth(), itemHeight);
}
ComboBoxImage::ComboBoxImage() {
onPopup = false;
itemPos[0] = -1;
}
void ComboBoxImage::showPopup() {
@ -391,6 +397,9 @@ void ComboBoxImage::setImage(Image image, int pos[]) {
Image tmp = image.getClippedImage(Rectangle<int>(0,itemHeight*pos[i], image.getWidth(), itemHeight));
popup.addItem(i+1, getItemText(i), true, false, tmp);
}
for(int i=0;i<4;i++)
itemPos[i] = pos[i];
}
void ProgramSelector::setInit() {

@ -25,6 +25,51 @@
#include "PluginEditor.h"
#include "Dexed.h"
// ************************************************************************
// Custom displays
class CtrlDXLabel : public CtrlDX {
public:
StringArray labels;
CtrlDXLabel(String name, int steps, int offset) : CtrlDX(name, steps, offset, 0) {
};
String getValueDisplay() {
return labels[getValue()];
}
};
class CtrlDXTranspose : public CtrlDX {
public:
CtrlDXTranspose(String name, int steps, int offset) : CtrlDX(name, steps, offset, 0) {
};
String getValueDisplay() {
String ret;
int value = getValue();
if ( value == 48 )
value = 47;
switch(value % 12) {
case 0: ret << "C"; break;
case 1: ret << "C#"; break;
case 2: ret << "D"; break;
case 3: ret << "D#"; break;
case 4: ret << "E"; break;
case 5: ret << "F"; break;
case 6: ret << "F#"; break;
case 7: ret << "G"; break;
case 8: ret << "G#"; break;
case 9: ret << "A"; break;
case 10: ret << "A#"; break;
case 11: ret << "B"; break;
}
return ret << (value/12-2);
}
};
// ************************************************************************
//
Ctrl::Ctrl(String name) {
@ -266,10 +311,17 @@ void DexedAudioProcessor::initCtrl() {
lfoSync = new CtrlDX("LFO KEY SYNC", 2, 141);
ctrl.add(lfoSync);
lfoWaveform = new CtrlDX("LFO WAVE", 6, 142);
CtrlDXLabel *t = new CtrlDXLabel("LFO WAVE", 6, 142);
t->labels.add("TRIANGE");
t->labels.add("SAW DOWN");
t->labels.add("SAW UP");
t->labels.add("SQUARE");
t->labels.add("SINE");
t->labels.add("S&HOLD");
lfoWaveform = t;
ctrl.add(lfoWaveform);
transpose = new CtrlDX("MIDDLE C", 49, 144);
transpose = new CtrlDXTranspose("MIDDLE C", 49, 144);
ctrl.add(transpose);
pitchModSens = new CtrlDX("P MODE SENS.", 8, 143);
@ -289,6 +341,12 @@ void DexedAudioProcessor::initCtrl() {
ctrl.add(pitchEgLevel[i]);
}
StringArray keyScaleLabels;
keyScaleLabels.add("-LN");
keyScaleLabels.add("-EX");
keyScaleLabels.add("+EX");
keyScaleLabels.add("+LN");
// fill operator values;
for (int i = 0; i < 6; i++) {
//// In the Sysex, OP6 comes first, then OP5...
@ -353,12 +411,16 @@ void DexedAudioProcessor::initCtrl() {
String sclLeftCurve;
sclLeftCurve << opName << " L KEY SCALE";
opCtrl[opVal].sclLeftCurve = new CtrlDX(sclLeftCurve, 4, opTarget + 11);
t = new CtrlDXLabel(sclLeftCurve, 4, opTarget + 11);
t->labels = keyScaleLabels;
opCtrl[opVal].sclLeftCurve = t;
ctrl.add(opCtrl[opVal].sclLeftCurve);
String sclRightCurve;
sclRightCurve << opName << " R KEY SCALE";
opCtrl[opVal].sclRightCurve = new CtrlDX(sclRightCurve, 4, opTarget + 12);
t = new CtrlDXLabel(sclRightCurve, 4, opTarget + 12);
t->labels = keyScaleLabels;
opCtrl[opVal].sclRightCurve = t;
ctrl.add(opCtrl[opVal].sclRightCurve);
String sclRate;

@ -93,8 +93,8 @@ public:
void setValue(int value);
int getValue();
String getValueDisplay();
int getOffset();
String getValueDisplay();
void sliderValueChanged (Slider* moved);
void comboBoxChanged (ComboBox* combo);

Loading…
Cancel
Save