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_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 INPUT_PORT_NAME		"midi_in"
 | 
			
		||||
#define PACKAGE_NAME		"jack-keyboard"
 | 
			
		||||
@ -100,6 +109,7 @@ lash_client_t	*lash_client;
 | 
			
		||||
#define MIDI_NOTE_OFF		0x80
 | 
			
		||||
#define MIDI_PROGRAM_CHANGE	0xC0
 | 
			
		||||
#define MIDI_CONTROLLER		0xB0
 | 
			
		||||
#define MIDI_PITCH			0xE0
 | 
			
		||||
#define MIDI_RESET			0xFF
 | 
			
		||||
#define MIDI_HOLD_PEDAL		64
 | 
			
		||||
#define MIDI_ALL_SOUND_OFF	120
 | 
			
		||||
@ -107,6 +117,7 @@ lash_client_t	*lash_client;
 | 
			
		||||
#define MIDI_ALL_NOTES_OFF	123
 | 
			
		||||
#define MIDI_BANK_SELECT_MSB	0
 | 
			
		||||
#define MIDI_BANK_SELECT_LSB	32
 | 
			
		||||
#define MIDI_MOD_CC			1
 | 
			
		||||
 | 
			
		||||
#define BANK_MIN		0
 | 
			
		||||
#define BANK_MAX		127
 | 
			
		||||
@ -116,7 +127,7 @@ lash_client_t	*lash_client;
 | 
			
		||||
#define CHANNEL_MAX		16
 | 
			
		||||
 | 
			
		||||
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;
 | 
			
		||||
GtkListStore	*connected_to_store;
 | 
			
		||||
 | 
			
		||||
@ -1031,6 +1042,26 @@ velocity_event_handler(GtkRange *range, gpointer notused)
 | 
			
		||||
	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
 | 
			
		||||
 | 
			
		||||
int grab_x_error_handler(Display *dpy, XErrorEvent *notused) 
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user