BEAST - Free Software Audio Synthesizer and Tracker  0.9.2
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 Bse::ErrorType 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 Bse::ErrorType bse_project_restore (BseProject *project,
56  BseStorage *storage);
57 Bse::ErrorType 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 namespace Bse {
81 
82 class ProjectImpl : public ContainerImpl, public virtual ProjectIface {
83 protected:
84  virtual ~ProjectImpl ();
85 public:
86  explicit ProjectImpl (BseObject*);
87  virtual void change_name (const String &name) override;
88  virtual ErrorType play () override;
89  virtual ErrorType activate () override;
90  virtual bool can_play () override;
91  virtual bool is_playing () override;
92  virtual bool is_active () override;
93  virtual void start_playback () override;
94  virtual void stop_playback () override;
95  virtual void deactivate () override;
96  virtual void stop () override;
97  virtual void auto_deactivate (int msec_delay) override;
98  virtual int undo_depth () override;
99  virtual void undo () override;
100  virtual int redo_depth () override;
101  virtual void redo () override;
102  virtual void clear_undo () override;
103  virtual void clean_dirty () override;
104  virtual bool is_dirty () override;
105  virtual void inject_midi_control (int midi_channel, int midi_control, double control_value) override;
106  virtual ErrorType import_midi_file (const String &file_name) override;
107  virtual ErrorType restore_from_file (const String &file_name) override;
108 };
109 
110 } // Bse
111 
112 G_END_DECLS
113 
114 #endif /* __BSE_PROJECT_H__ */
See also the corresponding IDL class Project.
Definition: bseserverapi.hh:1180
Definition: bsecontainer.hh:108
virtual void change_name(const String &name) override
See Project::change_name()
Definition: bseproject.cc:978
virtual void deactivate() override
See Project::deactivate()
Definition: bseproject.cc:1062
Definition: bsecsynth.hh:17
Definition: bsecontainer.hh:26
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:67
virtual void start_playback() override
See Project::start_playback()
Definition: bseproject.cc:1042
Definition: bsesnet.hh:36
virtual bool is_dirty() override
See Project::is_dirty()
Definition: bseproject.cc:1147
Definition: bsesuper.hh:25
virtual ErrorType play() override
See Project::play()
Definition: bseproject.cc:985
STL class.
virtual void stop() override
See Project::stop()
Definition: bseproject.cc:1069
Definition: bsecontainer.hh:29
Definition: bseproject.hh:39
virtual void clean_dirty() override
See Project::clean_dirty()
Definition: bseproject.cc:1140
Definition: bseobject.hh:60
virtual void auto_deactivate(int msec_delay) override
See Project::auto_deactivate()
Definition: bseproject.cc:1076
virtual ErrorType import_midi_file(const String &file_name) override
See Project::import_midi_file()
Definition: bseproject.cc:1176
Definition: bsesong.hh:25
virtual void redo() override
See Project::redo()
Definition: bseproject.cc:1115
virtual ErrorType activate() override
See Project::activate()
Definition: bseproject.cc:1005
virtual bool is_playing() override
See Project::is_playing()
Definition: bseproject.cc:1028
Definition: bsestorage.hh:49
virtual bool is_active() override
See Project::is_active()
Definition: bseproject.cc:1035
Definition: bsemidinotifier.hh:19
Definition: bsewaverepo.hh:19
virtual ErrorType restore_from_file(const String &file_name) override
See Project::restore_from_file()
Definition: bseproject.cc:1201
virtual void clear_undo() override
See Project::clear_undo()
Definition: bseproject.cc:1133
Definition: bseproject.hh:26
virtual int redo_depth() override
See Project::redo_depth()
Definition: bseproject.cc:1108
Definition: bseproject.hh:82
virtual void stop_playback() override
See Project::stop_playback()
Definition: bseproject.cc:1055
virtual int undo_depth() override
See Project::undo_depth()
Definition: bseproject.cc:1083
virtual void undo() override
See Project::undo()
Definition: bseproject.cc:1090
virtual void inject_midi_control(int midi_channel, int midi_control, double control_value) override
See Project::inject_midi_control()
Definition: bseproject.cc:1156
Definition: bseitem.hh:34
virtual bool can_play() override
See Project::can_play()
Definition: bseproject.cc:1019