mirror of
https://github.com/vale981/openAV-Luppp
synced 2025-03-04 16:51:37 -05:00
Only allow operations that do make sense.
This commit is contained in:
parent
07a76ef9e0
commit
b1d0c9f050
2 changed files with 16 additions and 13 deletions
|
@ -24,8 +24,8 @@
|
|||
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
|
||||
|
||||
#include "../gui.hxx"
|
||||
#define RECORD_BARS_MENU_ITEM(num) { #num, 0, setRecordBarsCb, (void*)num, FL_MENU_RADIO | ((clips[clipNum].getBeatsToRecord() == num*4) ? FL_ACTIVATE : 0) }
|
||||
#define RECORD_LENGTH_MENU_ITEM(num) {#num, 0, setLengthCb, (void*)num}
|
||||
#define RECORD_BARS_MENU_ITEM(num) { #num, 0, setRecordBarsCb, (void*)num, FL_MENU_RADIO | ((clips[clipNum].getBeatsToRecord() == num*4) ? FL_ACTIVATE : 0 | empty ? 0 : FL_MENU_INACTIVE) }
|
||||
#define RECORD_LENGTH_MENU_ITEM(num) {#num, 0, setLengthCb, (void*)num, empty ? FL_MENU_INACTIVE : 0}
|
||||
|
||||
extern Gui* gui;
|
||||
|
||||
|
@ -337,11 +337,12 @@ int ClipSelector::handle(int event)
|
|||
}
|
||||
|
||||
|
||||
bool empty = clips[clipNum].getState() == GridLogic::STATE_EMPTY;
|
||||
Fl_Menu_Item rclick_menu[] = {
|
||||
{ "Load" },
|
||||
{ "Save" },
|
||||
{ "Special"},
|
||||
{ "Beats", 0, 0, 0, FL_SUBMENU | FL_MENU_DIVIDER },
|
||||
{ "Beats", 0, 0, 0, FL_SUBMENU | FL_MENU_DIVIDER },
|
||||
RECORD_LENGTH_MENU_ITEM(1),
|
||||
RECORD_LENGTH_MENU_ITEM(2),
|
||||
RECORD_LENGTH_MENU_ITEM(4),
|
||||
|
@ -350,7 +351,7 @@ int ClipSelector::handle(int event)
|
|||
RECORD_LENGTH_MENU_ITEM(32),
|
||||
RECORD_LENGTH_MENU_ITEM(64),
|
||||
{0},
|
||||
{ "Bars to record", 0, 0, 0, FL_SUBMENU | FL_MENU_DIVIDER },
|
||||
{ "Bars to record", 0, 0, 0, FL_SUBMENU | FL_MENU_DIVIDER },
|
||||
RECORD_BARS_MENU_ITEM(1),
|
||||
RECORD_BARS_MENU_ITEM(2),
|
||||
RECORD_BARS_MENU_ITEM(4),
|
||||
|
|
|
@ -189,9 +189,11 @@ void LooperClip::setPlayHead(float ph)
|
|||
|
||||
void LooperClip::setBarsToRecord(int bars)
|
||||
{
|
||||
_wantedBeats = bars * 4; // we set beats
|
||||
EventClipBeatsChanged e( track, scene, _wantedBeats, true);
|
||||
writeToGuiRingbuffer(&e);
|
||||
if(!(_playing || _queuePlay || _queueStop || _loaded)) {
|
||||
_wantedBeats = bars * 4; // we set beats
|
||||
EventClipBeatsChanged e( track, scene, _wantedBeats, true);
|
||||
writeToGuiRingbuffer(&e);
|
||||
}
|
||||
}
|
||||
|
||||
int LooperClip::getBeatsToRecord()
|
||||
|
@ -253,13 +255,13 @@ size_t LooperClip::audioBufferSize()
|
|||
|
||||
void LooperClip::setBeats(int beats)
|
||||
{
|
||||
if ( _buffer ) {
|
||||
_buffer->setBeats( beats );
|
||||
}
|
||||
if (_loaded || _playing || _queuePlay || _queueStop || beats == 0) {
|
||||
if(_buffer)
|
||||
_buffer->setBeats( beats );
|
||||
|
||||
// Even on Reset!
|
||||
EventClipBeatsChanged e(track, scene, beats, false);
|
||||
writeToGuiRingbuffer(&e);
|
||||
EventClipBeatsChanged e(track, scene, beats, false);
|
||||
writeToGuiRingbuffer(&e);
|
||||
}
|
||||
}
|
||||
|
||||
int LooperClip::getBeats()
|
||||
|
|
Loading…
Add table
Reference in a new issue