BEAST/BSE - Better Audio System and Sound Engine  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
bseproject.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 __BSE_PROJECT_H__
3 #define __BSE_PROJECT_H__
4 
5 #include <bse/bsecontainer.hh>
6 
7 G_BEGIN_DECLS
8 
9 
10 /* --- object type macros --- */
11 #define BSE_TYPE_PROJECT (BSE_TYPE_ID (BseProject))
12 #define BSE_PROJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_PROJECT, BseProject))
13 #define BSE_PROJECT_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_PROJECT, BseProjectClass))
14 #define BSE_IS_PROJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_PROJECT))
15 #define BSE_IS_PROJECT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_PROJECT))
16 #define BSE_PROJECT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_PROJECT, BseProjectClass))
17 
18 
19 /* --- BseProject object --- */
20 typedef enum {
21  BSE_PROJECT_INACTIVE,
22  BSE_PROJECT_ACTIVE,
23  BSE_PROJECT_PLAYING
24 } BseProjectState;
25 
27  GSList *supers;
28  GSList *items;
29  guint in_undo : 1;
30  guint in_redo : 1;
31  BseUndoStack *undo_stack;
32  BseUndoStack *redo_stack;
33  BseProjectState state;
34  guint deactivate_timer;
35  gint64 deactivate_usecs;
36  guint64 deactivate_min_tick;
37  BseMidiReceiver *midi_receiver;
38 };
40 {};
41 
42 BseErrorType bse_project_activate (BseProject *project);
43 void bse_project_start_playback (BseProject *project);
44 void bse_project_stop_playback (BseProject *project);
45 void bse_project_check_auto_stop (BseProject *project);
46 void bse_project_deactivate (BseProject *project);
47 void bse_project_set_auto_deactivate (BseProject *project,
48  gint64 usecs);
49 void bse_project_keep_activated (BseProject *project,
50  guint64 min_tick);
51 void bse_project_state_changed (BseProject *project,
52  BseProjectState state);
53 BseStringSeq* bse_project_list_upaths (BseProject *project,
54  GType item_type);
55 BseErrorType bse_project_restore (BseProject *project,
56  BseStorage *storage);
57 BseErrorType bse_project_store_bse (BseProject *project,
58  BseSuper *super,
59  const gchar *bse_file,
60  gboolean self_contained);
61 BseObject* bse_project_upath_resolver (gpointer project /* func_data */,
62  GType required_type,
63  const gchar *upath,
64  gchar **error_p);
65 BseItem* bse_project_lookup_typed_item (BseProject *project,
66  GType item_type,
67  const gchar *uname);
68 BseWaveRepo* bse_project_get_wave_repo (BseProject *project);
69 BseSong* bse_project_get_song (BseProject *project);
70 BseSNet* bse_project_create_intern_synth (BseProject *project,
71  const gchar *synth_name,
72  GType check_type);
73 BseCSynth* bse_project_create_intern_csynth(BseProject *project,
74  const char *base_name);
75 BseMidiNotifier*bse_project_get_midi_notifier (BseProject *project);
76 void bse_project_clear_undo (BseProject *project);
77 void bse_project_clean_dirty (BseProject *project);
78 void bse_project_push_undo_silent_deactivate (BseProject *self);
79 
80 
81 G_END_DECLS
82 
83 #endif /* __BSE_PROJECT_H__ */
Definition: bsecsynth.hh:20
Definition: bsecontainer.hh:26
Definition: bsesnet.hh:37
Definition: bsesuper.hh:25
Definition: bsecontainer.hh:29
Definition: bseproject.hh:39
Definition: bseobject.hh:39
Definition: bsesong.hh:25
Definition: bsestorage.hh:49
Definition: bsemidinotifier.hh:19
Definition: bsewaverepo.hh:19
Definition: bseproject.hh:26
Definition: bseitem.hh:33