BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
bstpianorollctrl.hh
Go to the documentation of this file.
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__ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines