BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
bstwaveeditor.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_WAVE_EDITOR_H__
00003 #define __BST_WAVE_EDITOR_H__
00004 
00005 #include        "bstqsampler.hh"
00006 #include        "bstplayback.hh"
00007 
00008 #ifdef __cplusplus
00009 extern "C" {
00010 #endif /* __cplusplus */
00011 
00012 
00013 /* --- Gtk+ type macros --- */
00014 #define BST_TYPE_WAVE_EDITOR            (bst_wave_editor_get_type ())
00015 #define BST_WAVE_EDITOR(object)         (GTK_CHECK_CAST ((object), BST_TYPE_WAVE_EDITOR, BstWaveEditor))
00016 #define BST_WAVE_EDITOR_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), BST_TYPE_WAVE_EDITOR, BstWaveEditorClass))
00017 #define BST_IS_WAVE_EDITOR(object)      (GTK_CHECK_TYPE ((object), BST_TYPE_WAVE_EDITOR))
00018 #define BST_IS_WAVE_EDITOR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), BST_TYPE_WAVE_EDITOR))
00019 #define BST_WAVE_EDITOR_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), BST_TYPE_WAVE_EDITOR, BstWaveEditorClass))
00020 
00021 
00022 /* --- structures & typedefs --- */
00023 typedef struct  _BstWaveEditor  BstWaveEditor;
00024 typedef struct  _BstWaveEditorClass     BstWaveEditorClass;
00025 struct _BstWaveEditor
00026 {
00027   GtkVBox    parent_object;
00028   GtkWidget *main_vbox;
00029 
00030   GxkListWrapper    *chunk_wrapper;
00031   GtkWidget         *tree;
00032   GtkWidget         *qsampler_parent;
00033   GtkWidget         *gmask_parent;
00034   GtkAdjustment     *zoom_adjustment;
00035   GtkAdjustment     *vscale_adjustment;
00036   guint              draw_mode;
00037 
00038   /* preview (playback) */
00039   BstPlayBackHandle *phandle;
00040   guint              playback_length;
00041   guint              auto_scroll_mode;
00042   GtkWidget         *preview_on;
00043   GtkWidget         *preview_off;
00044   guint              playback_marker;
00045   SfiNum             tick_stamp;
00046   guint              pcm_pos;
00047   gdouble            pcm_per_tick;
00048 
00049   SfiProxy           wave;
00050 
00051   /* editable sample view */
00052   SfiProxy           esample;
00053   guint              esample_open : 1;
00054   guint              ignore_playpos : 1;
00055   GtkWidget         *qsampler_hscroll;
00056   GtkWidget         *qsampler_playpos;
00057   guint              n_qsamplers;
00058   BstQSampler      **qsamplers;
00059 };
00060 struct _BstWaveEditorClass
00061 {
00062   GtkVBoxClass parent_class;
00063 };
00064 
00065 
00066 /* --- prototypes --- */
00067 GtkType         bst_wave_editor_get_type        (void);
00068 GtkWidget*      bst_wave_editor_new             (SfiProxy        wave);
00069 void            bst_wave_editor_set_wave        (BstWaveEditor  *self,
00070                                                  SfiProxy        wave);
00071 void            bst_wave_editor_rebuild         (BstWaveEditor *wave_editor);
00072 void            bst_wave_editor_set_esample     (BstWaveEditor  *self,
00073                                                  SfiProxy        editable_sample);
00074 
00075 
00076 #ifdef __cplusplus
00077 }
00078 #endif /* __cplusplus */
00079 
00080 #endif /* __BST_WAVE_EDITOR_H__ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines