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