Merge pull request #209 from georgkrause/sanitycheck

Sanity check for bpm input, thanks @georgkrause !
This commit is contained in:
Harry van Haaren 2018-04-01 14:41:08 +01:00 committed by GitHub
commit 60d9c852b3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 5 deletions

View file

@ -51,6 +51,10 @@
#define NSCENES 10
#define MAX_BUFFER_SIZE 1024
/// TEMPO
#define MIN_TEMPO 60
#define MAX_TEMPO 220
#define CONTROLLERS_PREALLOC 20
// nsamples remaining during recording before Looper requests larger buffer

View file

@ -23,7 +23,7 @@
static void gmastertrack_tempoDial_callback(Fl_Widget *w, void *data)
{
Avtk::Dial* b = (Avtk::Dial*)w;
float bpm = (int)(b->value() * 160.f + 60);
float bpm = (int)(b->value() * (float)(MAX_TEMPO - MIN_TEMPO) + MIN_TEMPO);
if(std::fabs(bpm-round(bpm))) {
LUPPP_WARN("%f",bpm);
}
@ -170,11 +170,14 @@ static void gmastertrack_button_callback(Fl_Widget *w, void *data)
} else if ( strcmp( w->label(), "Tap" ) == 0 ) {
if ( Fl::event_button() == FL_RIGHT_MOUSE ) {
const char* answer = fl_input("Enter BPM value: ");
const char* answer = fl_input("Enter BPM value (range %d and %d):", 0, MIN_TEMPO, MAX_TEMPO);
if(answer) {
int bpm = atoi(answer);
EventTimeBPM e = EventTimeBPM( bpm );
writeToDspRingbuffer( &e );
if ( bpm >= MIN_TEMPO && bpm <= MAX_TEMPO) {
EventTimeBPM e = EventTimeBPM( bpm );
writeToDspRingbuffer( &e );
}
}
} else {
EventTimeTempoTap e;
@ -269,7 +272,7 @@ GMasterTrack::GMasterTrack(int x, int y, int w, int h, const char* l ) :
void GMasterTrack::setBpm( int b )
{
bpm = b;
tempoDial.value( ( bpm - 60 ) / 160.f );
tempoDial.value( ( bpm - MIN_TEMPO ) / (float)(MAX_TEMPO - MIN_TEMPO) );
std::stringstream s;
s << bpm;
tempoDial.copy_label( s.str().c_str() );