BEAST - Free Software Audio Synthesizer and Tracker  0.10.0
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::Error 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 Bse::Error bse_project_restore (BseProject *project,
54  BseStorage *storage);
55 Bse::Error bse_project_store_bse (BseProject *project,
56  BseSuper *super,
57  const gchar *bse_file,
58  gboolean self_contained);
59 BseObject* bse_project_upath_resolver (gpointer project /* func_data */,
60  GType required_type,
61  const gchar *upath,
62  gchar **error_p);
63 BseItem* bse_project_lookup_typed_item (BseProject *project,
64  GType item_type,
65  const gchar *uname);
66 BseWaveRepo* bse_project_get_wave_repo (BseProject *project);
67 BseSong* bse_project_get_song (BseProject *project);
68 BseSNet* bse_project_create_intern_synth (BseProject *project,
69  const gchar *synth_name,
70  GType check_type);
71 BseCSynth* bse_project_create_intern_csynth(BseProject *project,
72  const char *base_name);
73 BseMidiNotifier*bse_project_get_midi_notifier (BseProject *project);
74 void bse_project_clear_undo (BseProject *project);
75 void bse_project_clean_dirty (BseProject *project);
76 void bse_project_push_undo_silent_deactivate (BseProject *self);
77 
78 namespace Bse {
79 
80 class ProjectImpl : public ContainerImpl, public virtual ProjectIface {
81 protected:
82  virtual ~ProjectImpl ();
83 public:
84  explicit ProjectImpl (BseObject*);
85  virtual void change_name (const String &name) override;
86  virtual Error play () override;
87  virtual Error activate () override;
88  virtual bool can_play () override;
89  virtual bool is_playing () override;
90  virtual bool is_active () override;
91  virtual void start_playback () override;
92  virtual void stop_playback () override;
93  virtual void deactivate () override;
94  virtual void stop () override;
95  virtual void auto_deactivate (int msec_delay) override;
96  virtual int undo_depth () override;
97  virtual void undo () override;
98  virtual int redo_depth () override;
99  virtual void redo () override;
100  virtual void clear_undo () override;
101  virtual void clean_dirty () override;
102  virtual bool is_dirty () override;
103  virtual void inject_midi_control (int midi_channel, int midi_control, double control_value) override;
104  virtual Error import_midi_file (const String &file_name) override;
105  virtual Error restore_from_file (const String &file_name) override;
106 };
107 
108 } // Bse
109 
110 G_END_DECLS
111 
112 #endif /* __BSE_PROJECT_H__ */
See also the corresponding IDL class Project.
Definition: bseserverapi.hh:1482
Definition: bsecontainer.hh:108
virtual void change_name(const String &name) override
See Project::change_name()
Definition: bseproject.cc:938
virtual Error import_midi_file(const String &file_name) override
See Project::import_midi_file()
Definition: bseproject.cc:1136
virtual void deactivate() override
See Project::deactivate()
Definition: bseproject.cc:1022
Definition: bsecsynth.hh:17
Definition: bsecontainer.hh:26
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:88
virtual void start_playback() override
See Project::start_playback()
Definition: bseproject.cc:1002
Definition: bsesnet.hh:36
virtual Error restore_from_file(const String &file_name) override
See Project::restore_from_file()
Definition: bseproject.cc:1161
virtual bool is_dirty() override
See Project::is_dirty()
Definition: bseproject.cc:1107
Definition: bsesuper.hh:25
STL class.
virtual void stop() override
See Project::stop()
Definition: bseproject.cc:1029
Definition: bsecontainer.hh:29
Definition: bseproject.hh:39
virtual void clean_dirty() override
See Project::clean_dirty()
Definition: bseproject.cc:1100
Definition: bseobject.hh:61
virtual void auto_deactivate(int msec_delay) override
See Project::auto_deactivate()
Definition: bseproject.cc:1036
virtual Error activate() override
See Project::activate()
Definition: bseproject.cc:965
Definition: bsesong.hh:25
virtual void redo() override
See Project::redo()
Definition: bseproject.cc:1075
virtual bool is_playing() override
See Project::is_playing()
Definition: bseproject.cc:988
Definition: bsestorage.hh:49
virtual bool is_active() override
See Project::is_active()
Definition: bseproject.cc:995
Definition: bsemidinotifier.hh:19
Definition: bsewaverepo.hh:19
virtual Error play() override
See Project::play()
Definition: bseproject.cc:945
virtual void clear_undo() override
See Project::clear_undo()
Definition: bseproject.cc:1093
Definition: bseproject.hh:26
virtual int redo_depth() override
See Project::redo_depth()
Definition: bseproject.cc:1068
Definition: bseproject.hh:80
virtual void stop_playback() override
See Project::stop_playback()
Definition: bseproject.cc:1015
virtual int undo_depth() override
See Project::undo_depth()
Definition: bseproject.cc:1043
virtual void undo() override
See Project::undo()
Definition: bseproject.cc:1050
virtual void inject_midi_control(int midi_channel, int midi_control, double control_value) override
See Project::inject_midi_control()
Definition: bseproject.cc:1116
Definition: bseitem.hh:34
virtual bool can_play() override
See Project::can_play()
Definition: bseproject.cc:979