BEAST/BSE - Better Audio System and Sound Engine  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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(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_create_project (BseServer *server,
40  const gchar *name);
41 BseProject* bse_server_find_project (BseServer *server,
42  const gchar *name);
43 void bse_server_stop_recording (BseServer *server);
44 void bse_server_start_recording (BseServer *server,
45  const char *wave_file,
46  double n_seconds);
47 BseErrorType bse_server_open_devices (BseServer *server);
48 void bse_server_close_devices (BseServer *server);
49 BseModule* bse_server_retrieve_pcm_output_module (BseServer *server,
50  BseSource *source,
51  const gchar *uplink_name);
52 void bse_server_discard_pcm_output_module (BseServer *server,
53  BseModule *module);
54 BseModule* bse_server_retrieve_pcm_input_module (BseServer *server,
55  BseSource *source,
56  const gchar *uplink_name);
57 void bse_server_discard_pcm_input_module (BseServer *server,
58  BseModule *module);
59 void bse_server_require_pcm_input (BseServer *server);
60 BseModule* bse_server_retrieve_midi_input_module (BseServer *server,
61  const gchar *downlink_name,
62  guint midi_channel_id,
63  guint nth_note,
64  guint signals[4]);
65 void bse_server_discard_midi_input_module (BseServer *server,
66  BseModule *module);
67 void bse_server_add_io_watch (BseServer *server,
68  gint fd,
69  GIOCondition events,
70  BseIOWatch watch_func,
71  gpointer data);
72 void bse_server_remove_io_watch (BseServer *server,
73  BseIOWatch watch_func,
74  gpointer data);
75 
76 /* --- internal --- */
77 void bse_server_registration (BseServer *server,
78  BseRegistrationType rtype,
79  const gchar *what,
80  const gchar *error);
82  BseJanitor *janitor);
84  const gchar *script_name,
85  const gchar *proc_name,
86  const gchar *reason);
87 BseErrorType bse_server_run_remote (BseServer *server,
88  const gchar *process_name,
89  SfiRing *params,
90  const gchar *script_name,
91  const gchar *proc_name,
92  BseJanitor **janitor_p);
93 void bse_server_queue_kill_wire (BseServer *server,
94  SfiComWire *wire);
95 void bse_server_notify_gconfig (BseServer *server);
96 G_END_DECLS
97 
98 
99 namespace Bse {
100 
101 class ServerImpl : public ServerIface {
102  TestObjectImplP test_object_;
103  friend class FriendAllocator<ServerImpl>; // provide make_shared for non-public ctor
104 protected:
105  explicit ServerImpl ();
106  virtual ~ServerImpl ();
107 public:
108  virtual TestObjectIface* get_test_object ();
109  static ServerImpl& instance ();
110  void send_user_message (const UserMessage &umsg);
111 };
112 
113 } // Bse
114 
115 #endif /* __BSE_SERVER_H__ */
Definition: bsecontainer.hh:26
virtual TestObjectIface * get_test_object()
See Server::get_test_object()
Definition: bseserver.cc:1133
Definition: bsepcmdevice.hh:42
void bse_server_script_error(BseServer *server, const gchar *script_name, const gchar *proc_name, const gchar *reason)
Definition: bseserver.cc:745
See also the corresponding IDL class Server.
Definition: bseserverapi.hh:40
Definition: bsepcmwriter.hh:19
Definition: bseserver.hh:19
Definition: bsecontainer.hh:29
Definition: bsejanitor.hh:19
Definition: bsesource.hh:84
Definition: sfiring.hh:23
See also the corresponding IDL class TestObject.
Definition: bseserverapi.hh:18
Definition: bseproject.hh:26
Definition: bsemididevice.hh:25
Definition: bseserver.hh:35
BseServer * bse_server_get(void)
Definition: bseserver.cc:347
void bse_server_script_start(BseServer *server, BseJanitor *janitor)
Definition: bseserver.cc:717
Structure for submission of user interface messages from BSE.
Definition: bseapi.idl:23
Definition: bseserver.hh:101