BEAST/BSE - Better Audio System and Sound Engine
0.8.2
|
00001 // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html 00002 #ifndef __BST_PIANO_ROLL_CONTROLLER_H__ 00003 #define __BST_PIANO_ROLL_CONTROLLER_H__ 00004 00005 #include "bstpianoroll.hh" 00006 00007 G_BEGIN_DECLS 00008 00009 typedef struct { 00010 /* misc data */ 00011 guint ref_count; 00012 BstPianoRoll *proll; 00013 /* drag data */ 00014 guint obj_id, obj_tick, obj_duration; 00015 gint obj_note, obj_fine_tune; 00016 gfloat obj_velocity; 00017 guint xoffset; 00018 guint tick_bound; 00019 BsePartNoteSeq *sel_pseq; 00020 /* tool data */ 00021 guint tool_index; 00022 /* tool selections */ 00023 GxkActionGroup *note_rtools; 00024 GxkActionGroup *quant_rtools; 00025 GxkActionGroup *canvas_rtools; 00026 /* action cache */ 00027 guint64 cached_stamp; 00028 guint cached_n_notes; 00029 } BstPianoRollController; 00030 00031 00032 /* --- API --- */ 00033 BstPianoRollController* bst_piano_roll_controller_new (BstPianoRoll *proll); 00034 BstPianoRollController* bst_piano_roll_controller_ref (BstPianoRollController *self); 00035 void bst_piano_roll_controller_unref (BstPianoRollController *self); 00036 guint bst_piano_roll_controller_quantize (BstPianoRollController *self, 00037 guint fine_tick); 00038 void bst_piano_roll_controller_set_clipboard (BsePartNoteSeq *pseq); 00039 BsePartNoteSeq* bst_piano_roll_controller_get_clipboard (void); 00040 GxkActionList* bst_piano_roll_controller_select_actions (BstPianoRollController *self); 00041 GxkActionList* bst_piano_roll_controller_canvas_actions (BstPianoRollController *self); 00042 GxkActionList* bst_piano_roll_controller_note_actions (BstPianoRollController *self); 00043 GxkActionList* bst_piano_roll_controller_quant_actions (BstPianoRollController *self); 00044 void bst_piano_roll_controller_clear (BstPianoRollController *self); 00045 void bst_piano_roll_controller_cut (BstPianoRollController *self); 00046 gboolean bst_piano_roll_controller_copy (BstPianoRollController *self); 00047 void bst_piano_roll_controller_paste (BstPianoRollController *self); 00048 gboolean bst_piano_roll_controller_clipboard_full (BstPianoRollController *self); 00049 gboolean bst_piano_roll_controller_has_selection (BstPianoRollController *self, 00050 guint64 action_stamp); 00051 00052 00053 G_END_DECLS 00054 00055 #endif /* __BST_PIANO_ROLL_CONTROLLER_H__ */