BEAST - Free Software Audio Synthesizer and Tracker  0.10.0
bstpianorollctrl.hh
Go to the documentation of this file.
1  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2 #ifndef __BST_PIANO_ROLL_CONTROLLER_H__
3 #define __BST_PIANO_ROLL_CONTROLLER_H__
4 
5 #include "bstpianoroll.hh"
6 
7 G_BEGIN_DECLS
8 
9 typedef struct {
10  /* misc data */
11  guint ref_count;
12  BstPianoRoll *proll;
13  /* drag data */
14  guint obj_id, obj_tick, obj_duration;
15  gint obj_note, obj_fine_tune;
16  gfloat obj_velocity;
17  guint xoffset;
18  guint tick_bound;
19  Bse::PartNoteSeq sel_pseq;
20  /* tool data */
21  guint tool_index;
22  /* tool selections */
23  GxkActionGroup *note_rtools;
24  GxkActionGroup *quant_rtools;
25  GxkActionGroup *canvas_rtools;
26  /* action cache */
27  guint64 cached_stamp;
28  guint cached_n_notes;
30 
31 
32 /* --- API --- */
33 BstPianoRollController* bst_piano_roll_controller_new (BstPianoRoll *proll);
34 BstPianoRollController* bst_piano_roll_controller_ref (BstPianoRollController *self);
35 void bst_piano_roll_controller_unref (BstPianoRollController *self);
36 guint bst_piano_roll_controller_quantize (BstPianoRollController *self,
37  guint fine_tick);
38 void bst_piano_roll_controller_set_clipboard (const Bse::PartNoteSeq *pseq);
39 Bse::PartNoteSeq* bst_piano_roll_controller_get_clipboard (void);
40 GxkActionList* bst_piano_roll_controller_select_actions (BstPianoRollController *self);
41 GxkActionList* bst_piano_roll_controller_canvas_actions (BstPianoRollController *self);
42 GxkActionList* bst_piano_roll_controller_note_actions (BstPianoRollController *self);
43 GxkActionList* bst_piano_roll_controller_quant_actions (BstPianoRollController *self);
44 void bst_piano_roll_controller_clear (BstPianoRollController *self);
45 void bst_piano_roll_controller_cut (BstPianoRollController *self);
46 gboolean bst_piano_roll_controller_copy (BstPianoRollController *self);
47 void bst_piano_roll_controller_paste (BstPianoRollController *self);
48 gboolean bst_piano_roll_controller_clipboard_full (BstPianoRollController *self);
49 gboolean bst_piano_roll_controller_has_selection (BstPianoRollController *self,
50  guint64 action_stamp);
51 
52 
53 G_END_DECLS
54 
55 #endif /* __BST_PIANO_ROLL_CONTROLLER_H__ */
Definition: bstpianorollctrl.hh:9
A list of part note events.
Definition: bseapi.idl:513
Definition: gxkaction.hh:143