Event handler for modulation, pitch bend and panic button
This commit is contained in:
		
							parent
							
								
									b5c06ee4e6
								
							
						
					
					
						commit
						fee161a38d
					
				@ -67,6 +67,15 @@
 | 
				
			|||||||
#define VELOCITY_LOW		32
 | 
					#define VELOCITY_LOW		32
 | 
				
			||||||
#define VELOCITY_MIN		1
 | 
					#define VELOCITY_MIN		1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MOD_MIN				0
 | 
				
			||||||
 | 
					#define MOD_MAX				127
 | 
				
			||||||
 | 
					#define MOD_INIT			0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PITCH_MIN			-100
 | 
				
			||||||
 | 
					#define PITCH_MAX			100
 | 
				
			||||||
 | 
					#define PITCH_INIT			0
 | 
				
			||||||
 | 
					#define PITCH_RANGE			8192
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define OUTPUT_PORT_NAME	"midi_out"
 | 
					#define OUTPUT_PORT_NAME	"midi_out"
 | 
				
			||||||
#define INPUT_PORT_NAME		"midi_in"
 | 
					#define INPUT_PORT_NAME		"midi_in"
 | 
				
			||||||
#define PACKAGE_NAME		"jack-keyboard"
 | 
					#define PACKAGE_NAME		"jack-keyboard"
 | 
				
			||||||
@ -100,6 +109,7 @@ lash_client_t	*lash_client;
 | 
				
			|||||||
#define MIDI_NOTE_OFF		0x80
 | 
					#define MIDI_NOTE_OFF		0x80
 | 
				
			||||||
#define MIDI_PROGRAM_CHANGE	0xC0
 | 
					#define MIDI_PROGRAM_CHANGE	0xC0
 | 
				
			||||||
#define MIDI_CONTROLLER		0xB0
 | 
					#define MIDI_CONTROLLER		0xB0
 | 
				
			||||||
 | 
					#define MIDI_PITCH			0xE0
 | 
				
			||||||
#define MIDI_RESET			0xFF
 | 
					#define MIDI_RESET			0xFF
 | 
				
			||||||
#define MIDI_HOLD_PEDAL		64
 | 
					#define MIDI_HOLD_PEDAL		64
 | 
				
			||||||
#define MIDI_ALL_SOUND_OFF	120
 | 
					#define MIDI_ALL_SOUND_OFF	120
 | 
				
			||||||
@ -107,6 +117,7 @@ lash_client_t	*lash_client;
 | 
				
			|||||||
#define MIDI_ALL_NOTES_OFF	123
 | 
					#define MIDI_ALL_NOTES_OFF	123
 | 
				
			||||||
#define MIDI_BANK_SELECT_MSB	0
 | 
					#define MIDI_BANK_SELECT_MSB	0
 | 
				
			||||||
#define MIDI_BANK_SELECT_LSB	32
 | 
					#define MIDI_BANK_SELECT_LSB	32
 | 
				
			||||||
 | 
					#define MIDI_MOD_CC			1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define BANK_MIN		0
 | 
					#define BANK_MIN		0
 | 
				
			||||||
#define BANK_MAX		127
 | 
					#define BANK_MAX		127
 | 
				
			||||||
@ -116,7 +127,7 @@ lash_client_t	*lash_client;
 | 
				
			|||||||
#define CHANNEL_MAX		16
 | 
					#define CHANNEL_MAX		16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GtkWidget	*window, *sustain_button, *channel_spin, *bank_spin, *program_spin, *connected_to_combo,
 | 
					GtkWidget	*window, *sustain_button, *channel_spin, *bank_spin, *program_spin, *connected_to_combo,
 | 
				
			||||||
		*velocity_hscale, *grab_keyboard_checkbutton, *octave_spin;
 | 
							*velocity_hscale, *grab_keyboard_checkbutton, *octave_spin, *mod_scale, *pitch_scale, *panic_button;
 | 
				
			||||||
PianoKeyboard	*keyboard;
 | 
					PianoKeyboard	*keyboard;
 | 
				
			||||||
GtkListStore	*connected_to_store;
 | 
					GtkListStore	*connected_to_store;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1031,6 +1042,26 @@ velocity_event_handler(GtkRange *range, gpointer notused)
 | 
				
			|||||||
	keyboard->current_velocity = gtk_range_get_value(range);
 | 
						keyboard->current_velocity = gtk_range_get_value(range);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					mod_event_handler(GtkRange *range, gpointer notused)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						int val = (int) gtk_range_get_value(range);
 | 
				
			||||||
 | 
						queue_new_message(MIDI_CONTROLLER, MIDI_MOD_CC, val);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					pitch_event_handler(GtkRange *range, gpointer notused)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						uint16_t val = (uint16_t) (gtk_range_get_value(range) * ((float)PITCH_RANGE / (float)PITCH_MAX) + (float)PITCH_RANGE);
 | 
				
			||||||
 | 
						queue_new_message(MIDI_PITCH, val & 127, (val >> 7) & 127);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					panic_event_handler(GtkWidget *widget)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						panic();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef HAVE_X11
 | 
					#ifdef HAVE_X11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int grab_x_error_handler(Display *dpy, XErrorEvent *notused) 
 | 
					int grab_x_error_handler(Display *dpy, XErrorEvent *notused) 
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user