BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
bstapp.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_APP_H__
00003 #define __BST_APP_H__
00004 
00005 #include "bstutils.hh"
00006 
00007 G_BEGIN_DECLS
00008 
00009 /* --- type macros --- */
00010 #define BST_TYPE_APP            (bst_app_get_type ())
00011 #define BST_APP(object)         (GTK_CHECK_CAST ((object), BST_TYPE_APP, BstApp))
00012 #define BST_APP_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), BST_TYPE_APP, BstAppClass))
00013 #define BST_IS_APP(object)      (GTK_CHECK_TYPE ((object), BST_TYPE_APP))
00014 #define BST_IS_APP_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), BST_TYPE_APP))
00015 #define BST_APP_GET_CLASS(app)  (G_TYPE_INSTANCE_GET_CLASS ((app), BST_TYPE_APP, BstAppClass))
00016 
00017 
00018 /* --- typedefs --- */
00019 typedef struct  _BstApp       BstApp;
00020 typedef struct  _BstAppClass  BstAppClass;
00021 
00022 
00023 /* --- structures --- */
00024 struct _BstApp
00025 {
00026   GxkDialog       window;
00027 
00028   SfiProxy        project;
00029 
00030   guint           select_unseen_super : 1;
00031 
00032   gchar          *cookie;
00033 
00034   GxkParam       *wave_file;
00035 
00036   GxkRadget      *box;
00037   GtkNotebook    *notebook;
00038 
00039   GtkWidget      *rack_dialog;
00040   GtkWidget      *rack_editor;
00041   GtkWidget      *pcontrols;
00042 
00043   GxkAssortment  *ppages;
00044 };
00045 struct _BstAppClass
00046 {
00047   GxkDialogClass        parent_class;
00048   gboolean              seen_apps;
00049   GSList               *apps;
00050 };
00051 
00052 
00053 /* --- actions --- */
00054 enum {
00055   BST_ACTION_APP_NONE,
00056   /* project actions */
00057   BST_ACTION_NEW_PROJECT,
00058   BST_ACTION_OPEN_PROJECT,
00059   BST_ACTION_MERGE_PROJECT,
00060   BST_ACTION_IMPORT_MIDI,
00061   BST_ACTION_SAVE_PROJECT,
00062   BST_ACTION_SAVE_PROJECT_AS,
00063   BST_ACTION_CLOSE_PROJECT,
00064   BST_ACTION_EXIT,
00065   /* synthesizer */
00066   BST_ACTION_MERGE_EFFECT,
00067   BST_ACTION_MERGE_INSTRUMENT,
00068   BST_ACTION_SAVE_EFFECT,
00069   BST_ACTION_SAVE_INSTRUMENT,
00070   /* handling supers */
00071   BST_ACTION_NEW_SONG,
00072   BST_ACTION_NEW_CSYNTH,
00073   BST_ACTION_NEW_MIDI_SYNTH,
00074   BST_ACTION_REMOVE_SYNTH,
00075   /* playback */
00076   BST_ACTION_START_PLAYBACK,
00077   BST_ACTION_STOP_PLAYBACK,
00078   /* misc */
00079   BST_ACTION_REBUILD,
00080   BST_ACTION_CLEAR_UNDO,
00081   BST_ACTION_UNDO,
00082   BST_ACTION_REDO,
00083   /* loading demo songs */
00084   BST_ACTION_LOAD_DEMO_0000,
00085   BST_ACTION_LOAD_DEMO_ffff = BST_ACTION_LOAD_DEMO_0000 + 0xffff,
00086   /* loading skins */
00087   BST_ACTION_LOAD_SKIN_0000,
00088   BST_ACTION_LOAD_SKIN_ffff = BST_ACTION_LOAD_SKIN_0000 + 0xffff,
00089   /* last value */
00090   BST_ACTION_APP_LAST
00091 };
00092 
00093 
00094 /* --- prototypes --- */
00095 GType           bst_app_get_type                (void);
00096 BstApp*         bst_app_new                     (SfiProxy        project);
00097 void            bst_app_create_default          (BstApp         *app);
00098 BstApp*         bst_app_find                    (SfiProxy        project);
00099 void            bst_app_show_release_notes      (BstApp         *app);
00100 
00101 G_END_DECLS
00102 
00103 #endif  /* __BST_APP_H__ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines