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_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__ */