@@ -195,9 +195,14 @@ canvas_input_callback ( O_Canvas *widget, Canvas *c, int m ) | |||||
break; | break; | ||||
case 'c': | case 'c': | ||||
{ | { | ||||
c->grid( c->grid()->create() ); | |||||
Grid *g = c->grid()->create(); | |||||
ui->update_sequence_widgets(); | |||||
if ( g ) | |||||
{ | |||||
c->grid( g ); | |||||
ui->update_sequence_widgets(); | |||||
} | |||||
break; | break; | ||||
} | } | ||||
@@ -261,7 +261,12 @@ pattern::recording ( void ) | |||||
pattern * | pattern * | ||||
pattern::create ( void ) | pattern::create ( void ) | ||||
{ | { | ||||
return new pattern; | |||||
if ( pattern::patterns() < 128 ) | |||||
{ | |||||
return new pattern; | |||||
} | |||||
else | |||||
return NULL; | |||||
} | } | ||||
pattern * | pattern * | ||||
@@ -109,7 +109,12 @@ phrase::reset ( void ) | |||||
phrase * | phrase * | ||||
phrase::create ( void ) | phrase::create ( void ) | ||||
{ | { | ||||
return new phrase; | |||||
if ( phrase::phrases() < 128 ) | |||||
{ | |||||
return new phrase; | |||||
} | |||||
else | |||||
return NULL; | |||||
} | } | ||||
phrase * | phrase * | ||||