BEAST - Free Software Audio Synthesizer and Tracker  0.9.2
bseserver.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_SERVER_H__
3 #define __BSE_SERVER_H__
4 #include <bse/bsesuper.hh>
5 #include <bse/bsepcmdevice.hh>
6 #include <bse/bsemididevice.hh>
7 #include <bse/testobject.hh>
8 
9 G_BEGIN_DECLS
10 
11 /* --- BSE type macros --- */
12 #define BSE_TYPE_SERVER (BSE_TYPE_ID (BseServer))
13 #define BSE_SERVER_CAST(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_SERVER, BseServer))
14 #define BSE_SERVER_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_SERVER, BseServerClass))
15 #define BSE_IS_SERVER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_SERVER))
16 #define BSE_IS_SERVER_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_SERVER))
17 #define BSE_SERVER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_SERVER, BseServerClass))
18 
20  GSource *engine_source;
21  GList *projects;
22  GSList *children;
23  gchar *wave_file;
24  double wave_seconds;
25  guint dev_use_count;
26  guint log_messages : 1;
27  guint pcm_input_checked : 1;
28  BsePcmDevice *pcm_device;
29  BseModule *pcm_imodule;
30  BseModule *pcm_omodule;
31  BsePcmWriter *pcm_writer;
32  BseMidiDevice *midi_device;
33  GSList *watch_list;
34 };
36 {};
37 
39 BseProject* bse_server_find_project (BseServer *server,
40  const gchar *name);
41 void bse_server_stop_recording (BseServer *server);
42 void bse_server_start_recording (BseServer *server,
43  const char *wave_file,
44  double n_seconds);
45 Bse::ErrorType bse_server_open_devices (BseServer *server);
46 void bse_server_close_devices (BseServer *server);
47 BseModule* bse_server_retrieve_pcm_output_module (BseServer *server,
48  BseSource *source,
49  const gchar *uplink_name);
50 void bse_server_discard_pcm_output_module (BseServer *server,
51  BseModule *module);
52 BseModule* bse_server_retrieve_pcm_input_module (BseServer *server,
53  BseSource *source,
54  const gchar *uplink_name);
55 void bse_server_discard_pcm_input_module (BseServer *server,
56  BseModule *module);
57 void bse_server_require_pcm_input (BseServer *server);
58 BseModule* bse_server_retrieve_midi_input_module (BseServer *server,
59  const gchar *downlink_name,
60  guint midi_channel_id,
61  guint nth_note,
62  guint signals[4]);
63 void bse_server_discard_midi_input_module (BseServer *server,
64  BseModule *module);
65 void bse_server_add_io_watch (BseServer *server,
66  gint fd,
67  GIOCondition events,
68  BseIOWatch watch_func,
69  gpointer data);
70 void bse_server_remove_io_watch (BseServer *server,
71  BseIOWatch watch_func,
72  gpointer data);
73 
74 /* --- internal --- */
75 void bse_server_registration (BseServer *server,
76  BseRegistrationType rtype,
77  const gchar *what,
78  const gchar *error);
80  BseJanitor *janitor);
82  const gchar *script_name,
83  const gchar *proc_name,
84  const gchar *reason);
85 Bse::ErrorType bse_server_run_remote (BseServer *server,
86  const gchar *process_name,
87  SfiRing *params,
88  const gchar *script_name,
89  const gchar *proc_name,
90  BseJanitor **janitor_p);
91 void bse_server_queue_kill_wire (BseServer *server,
92  SfiComWire *wire);
93 void bse_server_notify_gconfig (BseServer *server);
94 G_END_DECLS
95 
96 
97 #define BSE_SERVER (Bse::ServerImpl::instance())
98 
99 namespace Bse {
100 
101 class ServerImpl : public virtual ServerIface, public virtual ObjectImpl {
102  TestObjectImplP test_object_;
103 protected:
104  virtual ~ServerImpl ();
105 public:
106  explicit ServerImpl (BseObject*);
107  virtual TestObjectIfaceP get_test_object () override;
108  virtual ObjectIfaceP from_proxy (int64_t proxyid) override;
109  virtual String get_mp3_version () override;
110  virtual String get_vorbis_version () override;
111  virtual String get_ladspa_path () override;
112  virtual String get_plugin_path () override;
113  virtual String get_script_path () override;
114  virtual String get_instrument_path () override;
115  virtual String get_sample_path () override;
116  virtual String get_effect_path () override;
117  virtual String get_demo_path () override;
118  virtual String get_version () override;
119  virtual String get_custom_effect_dir () override;
120  virtual String get_custom_instrument_dir () override;
121  virtual void save_preferences () override;
122  virtual void register_ladspa_plugins () override;
123  virtual void register_core_plugins () override;
124  virtual void start_recording (const String &wave_file, double n_seconds) override;
125  virtual void register_scripts () override;
126  virtual bool preferences_locked () override;
127  virtual int n_scripts () override;
128  virtual bool can_load (const String &file_name) override;
129  virtual ProjectIfaceP create_project (const String &project_name) override;
130  virtual void destroy_project (ProjectIface &project) override;
131  void send_user_message (const UserMessage &umsg);
132  static ServerImpl& instance ();
133 };
134 
135 } // Bse
136 
137 #endif /* __BSE_SERVER_H__ */
virtual String get_custom_effect_dir() override
See Server::get_custom_effect_dir()
Definition: bseserver.cc:1206
See also the corresponding IDL class Project.
Definition: bseserverapi.hh:1180
virtual void start_recording(const String &wave_file, double n_seconds) override
See Server::start_recording()
Definition: bseserver.cc:1332
Definition: bsecontainer.hh:26
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:67
typedef int64_t
virtual String get_ladspa_path() override
See Server::get_ladspa_path()
Definition: bseserver.cc:1158
Definition: bsepcmdevice.hh:42
virtual String get_version() override
See Server::get_version()
Definition: bseserver.cc:1200
void bse_server_script_error(BseServer *server, const gchar *script_name, const gchar *proc_name, const gchar *reason)
Definition: bseserver.cc:727
See also the corresponding IDL class Server.
Definition: bseserverapi.hh:1261
virtual void save_preferences() override
See Server::save_preferences()
Definition: bseserver.cc:1220
virtual ProjectIfaceP create_project(const String &project_name) override
See Server::create_project()
Definition: bseserver.cc:1444
virtual String get_custom_instrument_dir() override
See Server::get_custom_instrument_dir()
Definition: bseserver.cc:1213
Definition: bsepcmwriter.hh:19
virtual void register_core_plugins() override
See Server::register_core_plugins()
Definition: bseserver.cc:1316
STL class.
virtual String get_script_path() override
See Server::get_script_path()
Definition: bseserver.cc:1170
virtual void register_scripts() override
See Server::register_scripts()
Definition: bseserver.cc:1381
virtual String get_demo_path() override
See Server::get_demo_path()
Definition: bseserver.cc:1194
Definition: bseserver.hh:19
Definition: bsecontainer.hh:29
virtual String get_sample_path() override
See Server::get_sample_path()
Definition: bseserver.cc:1182
Definition: bseobject.hh:60
Definition: bsejanitor.hh:19
virtual String get_vorbis_version() override
See Server::get_vorbis_version()
Definition: bseserver.cc:1152
virtual void destroy_project(ProjectIface &project) override
See Server::destroy_project()
Definition: bseserver.cc:1468
virtual int n_scripts() override
See Server::n_scripts()
Definition: bseserver.cc:1415
Definition: bsesource.hh:84
Definition: sfiring.hh:23
virtual TestObjectIfaceP get_test_object() override
See Server::get_test_object()
Definition: bseserver.cc:1116
virtual ObjectIfaceP from_proxy(int64_t proxyid) override
See Server::from_proxy()
Definition: bseserver.cc:1124
virtual void register_ladspa_plugins() override
See Server::register_ladspa_plugins()
Definition: bseserver.cc:1276
Definition: bseobject.hh:9
Definition: bseproject.hh:26
Definition: bsemididevice.hh:25
Definition: bseserver.hh:35
BseServer * bse_server_get(void)
Definition: bseserver.cc:351
void bse_server_script_start(BseServer *server, BseJanitor *janitor)
Definition: bseserver.cc:699
virtual String get_instrument_path() override
See Server::get_instrument_path()
Definition: bseserver.cc:1176
virtual bool preferences_locked() override
See Server::preferences_locked()
Definition: bseserver.cc:1409
Structure for submission of user interface messages from BSE.
Definition: bseapi.idl:312
virtual bool can_load(const String &file_name) override
See Server::can_load()
Definition: bseserver.cc:1427
virtual String get_effect_path() override
See Server::get_effect_path()
Definition: bseserver.cc:1188
virtual String get_mp3_version() override
See Server::get_mp3_version()
Definition: bseserver.cc:1146
virtual String get_plugin_path() override
See Server::get_plugin_path()
Definition: bseserver.cc:1164
Definition: bseserver.hh:101