BEAST/BSE - Better Audio System and Sound Engine  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
bstapp.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_APP_H__
3 #define __BST_APP_H__
4 
5 #include "bstutils.hh"
6 
7 G_BEGIN_DECLS
8 
9 /* --- type macros --- */
10 #define BST_TYPE_APP (bst_app_get_type ())
11 #define BST_APP(object) (GTK_CHECK_CAST ((object), BST_TYPE_APP, BstApp))
12 #define BST_APP_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), BST_TYPE_APP, BstAppClass))
13 #define BST_IS_APP(object) (GTK_CHECK_TYPE ((object), BST_TYPE_APP))
14 #define BST_IS_APP_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), BST_TYPE_APP))
15 #define BST_APP_GET_CLASS(app) (G_TYPE_INSTANCE_GET_CLASS ((app), BST_TYPE_APP, BstAppClass))
16 
17 
18 /* --- typedefs --- */
19 typedef struct _BstApp BstApp;
20 typedef struct _BstAppClass BstAppClass;
21 
22 
23 /* --- structures --- */
24 struct _BstApp
25 {
26  GxkDialog window;
27 
28  SfiProxy project;
29 
30  guint select_unseen_super : 1;
31 
32  GxkParam *wave_file;
33 
34  GxkRadget *box;
35  GtkNotebook *notebook;
36 
37  GtkWidget *rack_dialog;
38  GtkWidget *rack_editor;
39  GtkWidget *pcontrols;
40 
41  GxkAssortment *ppages;
42 };
44 {
45  GxkDialogClass parent_class;
46  gboolean seen_apps;
47  GSList *apps;
48 };
49 
50 
51 /* --- actions --- */
52 enum {
53  BST_ACTION_APP_NONE,
54  /* project actions */
55  BST_ACTION_NEW_PROJECT,
56  BST_ACTION_OPEN_PROJECT,
57  BST_ACTION_MERGE_PROJECT,
58  BST_ACTION_IMPORT_MIDI,
59  BST_ACTION_SAVE_PROJECT,
60  BST_ACTION_SAVE_PROJECT_AS,
61  BST_ACTION_CLOSE_PROJECT,
62  BST_ACTION_EXIT,
63  /* synthesizer */
64  BST_ACTION_MERGE_EFFECT,
65  BST_ACTION_MERGE_INSTRUMENT,
66  BST_ACTION_SAVE_EFFECT,
67  BST_ACTION_SAVE_INSTRUMENT,
68  /* handling supers */
69  BST_ACTION_NEW_SONG,
70  BST_ACTION_NEW_CSYNTH,
71  BST_ACTION_NEW_MIDI_SYNTH,
72  BST_ACTION_REMOVE_SYNTH,
73  /* playback */
74  BST_ACTION_START_PLAYBACK,
75  BST_ACTION_STOP_PLAYBACK,
76  /* misc */
77  BST_ACTION_REBUILD,
78  BST_ACTION_CLEAR_UNDO,
79  BST_ACTION_UNDO,
80  BST_ACTION_REDO,
81  /* loading demo songs */
82  BST_ACTION_LOAD_DEMO_0000,
83  BST_ACTION_LOAD_DEMO_ffff = BST_ACTION_LOAD_DEMO_0000 + 0xffff,
84  /* loading skins */
85  BST_ACTION_LOAD_SKIN_0000,
86  BST_ACTION_LOAD_SKIN_ffff = BST_ACTION_LOAD_SKIN_0000 + 0xffff,
87  /* last value */
88  BST_ACTION_APP_LAST
89 };
90 
91 
92 /* --- prototypes --- */
93 GType bst_app_get_type (void);
94 BstApp* bst_app_new (SfiProxy project);
95 void bst_app_create_default (BstApp *app);
96 BstApp* bst_app_find (SfiProxy project);
97 void bst_app_show_release_notes (BstApp *app);
98 
99 G_END_DECLS
100 
101 #endif /* __BST_APP_H__ */
Definition: bstapp.hh:24
Definition: bstapp.hh:43
Definition: gxkassortment.hh:33
Definition: gxkparam.hh:14