allow sample preview via keyboard
This commit is contained in:
parent
05bbfaced2
commit
46fd774f30
4 changed files with 53 additions and 3 deletions
|
|
@ -3108,6 +3108,22 @@ void FurnaceGUI::keyDown(SDL_Event& ev) {
|
|||
}
|
||||
}
|
||||
break;
|
||||
case GUI_WINDOW_SAMPLE_EDIT:
|
||||
case GUI_WINDOW_SAMPLE_LIST:
|
||||
if (!ev.key.repeat) {
|
||||
try {
|
||||
int key=noteKeys.at(ev.key.keysym.scancode);
|
||||
int num=12*curOctave+key;
|
||||
if (key!=100) {
|
||||
e->previewSample(curSample,num);
|
||||
samplePreviewOn=true;
|
||||
samplePreviewKey=ev.key.keysym.scancode;
|
||||
samplePreviewNote=num;
|
||||
}
|
||||
} catch (std::out_of_range& e) {
|
||||
}
|
||||
}
|
||||
break;
|
||||
case GUI_WINDOW_WAVE_LIST:
|
||||
case GUI_WINDOW_WAVE_EDIT:
|
||||
if (!ev.key.repeat) {
|
||||
|
|
@ -3137,6 +3153,12 @@ void FurnaceGUI::keyUp(SDL_Event& ev) {
|
|||
e->stopWavePreview();
|
||||
}
|
||||
}
|
||||
if (samplePreviewOn) {
|
||||
if (ev.key.keysym.scancode==samplePreviewKey) {
|
||||
samplePreviewOn=false;
|
||||
e->stopSamplePreview();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool dirExists(String what) {
|
||||
|
|
@ -3485,6 +3507,12 @@ bool FurnaceGUI::loop() {
|
|||
e->stopWavePreview();
|
||||
}
|
||||
}
|
||||
if (samplePreviewOn) {
|
||||
if (ev.key.keysym.scancode==samplePreviewKey) {
|
||||
samplePreviewOn=false;
|
||||
e->stopSamplePreview();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case SDL_QUIT:
|
||||
|
|
@ -4094,6 +4122,9 @@ FurnaceGUI::FurnaceGUI():
|
|||
wavePreviewOn(false),
|
||||
wavePreviewKey((SDL_Scancode)0),
|
||||
wavePreviewNote(0),
|
||||
samplePreviewOn(false),
|
||||
samplePreviewKey((SDL_Scancode)0),
|
||||
samplePreviewNote(0),
|
||||
arpMacroScroll(0),
|
||||
macroDragStart(0,0),
|
||||
macroDragAreaSize(0,0),
|
||||
|
|
|
|||
|
|
@ -240,6 +240,10 @@ class FurnaceGUI {
|
|||
SDL_Scancode wavePreviewKey;
|
||||
int wavePreviewNote;
|
||||
|
||||
bool samplePreviewOn;
|
||||
SDL_Scancode samplePreviewKey;
|
||||
int samplePreviewNote;
|
||||
|
||||
std::map<SDL_Scancode,int> noteKeys;
|
||||
std::map<SDL_Keycode,int> valueKeys;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue