ardour
Macros | Enumerations | Functions | Variables
gtk_pianokeyboard.c File Reference
#include <assert.h>
#include <string.h>
#include <stdint.h>
#include <cairo/cairo.h>
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
#include "gtk_pianokeyboard.h"

Go to the source code of this file.

Macros

#define PIANO_KEYBOARD_DEFAULT_WIDTH   730
 
#define PIANO_KEYBOARD_DEFAULT_HEIGHT   70
 

Enumerations

enum  { NOTE_ON_SIGNAL, NOTE_OFF_SIGNAL, REST_SIGNAL, LAST_SIGNAL }
 

Functions

static void draw_keyboard_cue (PianoKeyboard *pk, cairo_t *cr)
 
static void queue_note_draw (PianoKeyboard *pk, int note)
 
static void draw_note (PianoKeyboard *pk, cairo_t *cr, int note)
 
static int press_key (PianoKeyboard *pk, int key)
 
static int release_key (PianoKeyboard *pk, int key)
 
static void rest (PianoKeyboard *pk)
 
static void stop_unsustained_notes (PianoKeyboard *pk)
 
static void stop_sustained_notes (PianoKeyboard *pk)
 
static int key_binding (PianoKeyboard *pk, const char *key)
 
static void bind_key (PianoKeyboard *pk, const char *key, int note)
 
static void clear_notes (PianoKeyboard *pk)
 
static void bind_keys_qwerty (PianoKeyboard *pk)
 
static void bind_keys_qwertz (PianoKeyboard *pk)
 
static void bind_keys_azerty (PianoKeyboard *pk)
 
static gint keyboard_event_handler (GtkWidget *mk, GdkEventKey *event, gpointer ignored)
 
static int get_note_for_xy (PianoKeyboard *pk, int x, int y)
 
static gboolean mouse_button_event_handler (PianoKeyboard *pk, GdkEventButton *event, gpointer ignored)
 
static gboolean mouse_motion_event_handler (PianoKeyboard *pk, GdkEventMotion *event, gpointer ignored)
 
static gboolean piano_keyboard_expose (GtkWidget *widget, GdkEventExpose *event)
 
static void piano_keyboard_size_request (GtkWidget *w, GtkRequisition *requisition)
 
static void recompute_dimensions (PianoKeyboard *pk)
 
static void piano_keyboard_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
 
static void piano_keyboard_class_init (PianoKeyboardClass *klass)
 
static void piano_keyboard_init (GtkWidget *mk)
 
GType piano_keyboard_get_type (void)
 
GtkWidget * piano_keyboard_new (void)
 
void piano_keyboard_set_keyboard_cue (PianoKeyboard *pk, int enabled)
 
void piano_keyboard_set_monophonic (PianoKeyboard *pk, gboolean monophonic)
 
void piano_keyboard_sustain_press (PianoKeyboard *pk)
 
void piano_keyboard_sustain_release (PianoKeyboard *pk)
 
void piano_keyboard_set_note_on (PianoKeyboard *pk, int note)
 
void piano_keyboard_set_note_off (PianoKeyboard *pk, int note)
 
void piano_keyboard_set_octave (PianoKeyboard *pk, int octave)
 
gboolean piano_keyboard_set_keyboard_layout (PianoKeyboard *pk, const char *layout)
 

Variables

static guint piano_keyboard_signals [LAST_SIGNAL] = { 0 }
 

Macro Definition Documentation

#define PIANO_KEYBOARD_DEFAULT_HEIGHT   70

Definition at line 45 of file gtk_pianokeyboard.c.

#define PIANO_KEYBOARD_DEFAULT_WIDTH   730

Definition at line 44 of file gtk_pianokeyboard.c.

Enumeration Type Documentation

anonymous enum
Enumerator
NOTE_ON_SIGNAL 
NOTE_OFF_SIGNAL 
REST_SIGNAL 
LAST_SIGNAL 

Definition at line 47 of file gtk_pianokeyboard.c.

Function Documentation

static void bind_key ( PianoKeyboard pk,
const char *  key,
int  note 
)
static

Definition at line 250 of file gtk_pianokeyboard.c.

static void bind_keys_azerty ( PianoKeyboard pk)
static

Definition at line 319 of file gtk_pianokeyboard.c.

static void bind_keys_qwerty ( PianoKeyboard pk)
static

Definition at line 266 of file gtk_pianokeyboard.c.

static void bind_keys_qwertz ( PianoKeyboard pk)
static

Definition at line 309 of file gtk_pianokeyboard.c.

static void clear_notes ( PianoKeyboard pk)
static

Definition at line 258 of file gtk_pianokeyboard.c.

static void draw_keyboard_cue ( PianoKeyboard pk,
cairo_t *  cr 
)
static

Definition at line 57 of file gtk_pianokeyboard.c.

static void draw_note ( PianoKeyboard pk,
cairo_t *  cr,
int  note 
)
static

Definition at line 96 of file gtk_pianokeyboard.c.

static int get_note_for_xy ( PianoKeyboard pk,
int  x,
int  y 
)
static

Definition at line 418 of file gtk_pianokeyboard.c.

static int key_binding ( PianoKeyboard pk,
const char *  key 
)
static

Definition at line 234 of file gtk_pianokeyboard.c.

static gint keyboard_event_handler ( GtkWidget *  mk,
GdkEventKey *  event,
gpointer  ignored 
)
static

Definition at line 362 of file gtk_pianokeyboard.c.

static gboolean mouse_button_event_handler ( PianoKeyboard pk,
GdkEventButton *  event,
gpointer  ignored 
)
static

Definition at line 445 of file gtk_pianokeyboard.c.

static gboolean mouse_motion_event_handler ( PianoKeyboard pk,
GdkEventMotion *  event,
gpointer  ignored 
)
static

Definition at line 487 of file gtk_pianokeyboard.c.

static void piano_keyboard_class_init ( PianoKeyboardClass klass)
static

Definition at line 614 of file gtk_pianokeyboard.c.

static gboolean piano_keyboard_expose ( GtkWidget *  widget,
GdkEventExpose *  event 
)
static

Definition at line 510 of file gtk_pianokeyboard.c.

GType piano_keyboard_get_type ( void  )

Definition at line 651 of file gtk_pianokeyboard.c.

static void piano_keyboard_init ( GtkWidget *  mk)
static

Definition at line 639 of file gtk_pianokeyboard.c.

GtkWidget* piano_keyboard_new ( void  )

Definition at line 676 of file gtk_pianokeyboard.c.

void piano_keyboard_set_keyboard_cue ( PianoKeyboard pk,
int  enabled 
)

Definition at line 697 of file gtk_pianokeyboard.c.

gboolean piano_keyboard_set_keyboard_layout ( PianoKeyboard pk,
const char *  layout 
)

Definition at line 754 of file gtk_pianokeyboard.c.

void piano_keyboard_set_monophonic ( PianoKeyboard pk,
gboolean  monophonic 
)

Definition at line 703 of file gtk_pianokeyboard.c.

void piano_keyboard_set_note_off ( PianoKeyboard pk,
int  note 
)

Definition at line 736 of file gtk_pianokeyboard.c.

void piano_keyboard_set_note_on ( PianoKeyboard pk,
int  note 
)

Definition at line 727 of file gtk_pianokeyboard.c.

void piano_keyboard_set_octave ( PianoKeyboard pk,
int  octave 
)

Definition at line 746 of file gtk_pianokeyboard.c.

static void piano_keyboard_size_allocate ( GtkWidget *  widget,
GtkAllocation *  allocation 
)
static

Definition at line 598 of file gtk_pianokeyboard.c.

static void piano_keyboard_size_request ( GtkWidget *  w,
GtkRequisition *  requisition 
)
static

Definition at line 543 of file gtk_pianokeyboard.c.

void piano_keyboard_sustain_press ( PianoKeyboard pk)

Definition at line 709 of file gtk_pianokeyboard.c.

void piano_keyboard_sustain_release ( PianoKeyboard pk)

Definition at line 718 of file gtk_pianokeyboard.c.

static int press_key ( PianoKeyboard pk,
int  key 
)
static

Definition at line 142 of file gtk_pianokeyboard.c.

static void queue_note_draw ( PianoKeyboard pk,
int  note 
)
static

Definition at line 79 of file gtk_pianokeyboard.c.

static void recompute_dimensions ( PianoKeyboard pk)
static

Definition at line 552 of file gtk_pianokeyboard.c.

static int release_key ( PianoKeyboard pk,
int  key 
)
static

Definition at line 174 of file gtk_pianokeyboard.c.

static void rest ( PianoKeyboard pk)
static

Definition at line 199 of file gtk_pianokeyboard.c.

static void stop_sustained_notes ( PianoKeyboard pk)
static

Definition at line 219 of file gtk_pianokeyboard.c.

static void stop_unsustained_notes ( PianoKeyboard pk)
static

Definition at line 205 of file gtk_pianokeyboard.c.

Variable Documentation

guint piano_keyboard_signals[LAST_SIGNAL] = { 0 }
static

Definition at line 54 of file gtk_pianokeyboard.c.