parent
85bb081f3b
commit
85dd6c3579
5 changed files with 96 additions and 14 deletions
|
|
@ -1213,6 +1213,7 @@ void FurnaceGUI::drawWaveEdit() {
|
|||
if (wave->len>256) wave->len=256;
|
||||
if (wave->len<1) wave->len=1;
|
||||
e->notifyWaveChange(curWave);
|
||||
if (wavePreviewOn) e->previewWave(curWave,wavePreviewNote);
|
||||
modified=true;
|
||||
}
|
||||
ImGui::SameLine();
|
||||
|
|
@ -2907,6 +2908,22 @@ void FurnaceGUI::keyDown(SDL_Event& ev) {
|
|||
}
|
||||
}
|
||||
break;
|
||||
case GUI_WINDOW_WAVE_LIST:
|
||||
case GUI_WINDOW_WAVE_EDIT:
|
||||
if (!ev.key.repeat) {
|
||||
try {
|
||||
int key=noteKeys.at(ev.key.keysym.scancode);
|
||||
int num=12*curOctave+key;
|
||||
if (key!=100) {
|
||||
e->previewWave(curWave,num);
|
||||
wavePreviewOn=true;
|
||||
wavePreviewKey=ev.key.keysym.scancode;
|
||||
wavePreviewNote=num;
|
||||
}
|
||||
} catch (std::out_of_range& e) {
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
@ -2919,6 +2936,12 @@ void FurnaceGUI::keyUp(SDL_Event& ev) {
|
|||
e->noteOff(noteOffOnReleaseChan);
|
||||
}
|
||||
}
|
||||
if (wavePreviewOn) {
|
||||
if (ev.key.keysym.scancode==wavePreviewKey) {
|
||||
wavePreviewOn=false;
|
||||
e->stopWavePreview();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool dirExists(String what) {
|
||||
|
|
@ -3260,6 +3283,12 @@ bool FurnaceGUI::loop() {
|
|||
e->noteOff(noteOffOnReleaseChan);
|
||||
}
|
||||
}
|
||||
if (wavePreviewOn) {
|
||||
if (ev.key.keysym.scancode==wavePreviewKey) {
|
||||
wavePreviewOn=false;
|
||||
e->stopWavePreview();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case SDL_QUIT:
|
||||
|
|
@ -3847,6 +3876,9 @@ FurnaceGUI::FurnaceGUI():
|
|||
noteOffOnRelease(false),
|
||||
noteOffOnReleaseKey((SDL_Scancode)0),
|
||||
noteOffOnReleaseChan(0),
|
||||
wavePreviewOn(false),
|
||||
wavePreviewKey((SDL_Scancode)0),
|
||||
wavePreviewNote(0),
|
||||
arpMacroScroll(0),
|
||||
macroDragStart(0,0),
|
||||
macroDragAreaSize(0,0),
|
||||
|
|
|
|||
|
|
@ -223,6 +223,10 @@ class FurnaceGUI {
|
|||
SDL_Scancode noteOffOnReleaseKey;
|
||||
int noteOffOnReleaseChan;
|
||||
|
||||
bool wavePreviewOn;
|
||||
SDL_Scancode wavePreviewKey;
|
||||
int wavePreviewNote;
|
||||
|
||||
std::map<SDL_Scancode,int> noteKeys;
|
||||
std::map<SDL_Keycode,int> valueKeys;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue