2 Copyright (C) 2004 Grame
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License as published by
6 the Free Software Foundation; either version 2.1 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 subsystem JackRPCEngine 1000;
22 #include <mach/std_types.defs>
23 #include <mach/mach_types.defs>
28 type client_name_t = c_string[64];
29 type client_port_name_t = c_string[128];
30 type client_port_type_t = c_string[128];
31 type so_name_t = c_string[256];
32 type objet_data_t = c_string[256];
34 routine rpc_jack_client_open(
35 server_port : mach_port_t;
36 client_name : client_name_t;
38 out private_port : mach_port_make_send_t;
39 out shared_engine : int;
40 out shared_client : int;
41 out shared_graph : int;
44 routine rpc_jack_client_check(
45 server_port : mach_port_t;
46 client_name : client_name_t;
47 out client_name_res : client_name_t;
53 routine rpc_jack_client_close(
54 server_port : mach_port_t;
58 routine rpc_jack_client_activate(
59 server_port : mach_port_t;
64 routine rpc_jack_client_deactivate(
65 server_port : mach_port_t;
69 routine rpc_jack_port_register(
70 server_port : mach_port_t;
72 name : client_port_name_t;
73 port_type : client_port_type_t;
75 buffer_size : unsigned;
76 out port_index : unsigned;
79 routine rpc_jack_port_unregister(
80 server_port : mach_port_t;
85 routine rpc_jack_port_connect(
86 server_port : mach_port_t;
92 routine rpc_jack_port_disconnect(
93 server_port : mach_port_t;
99 routine rpc_jack_port_connect_name(
100 server_port : mach_port_t;
102 src : client_port_name_t;
103 dst : client_port_name_t;
106 routine rpc_jack_port_disconnect_name(
107 server_port : mach_port_t;
109 src : client_port_name_t;
110 dst : client_port_name_t;
113 routine rpc_jack_port_rename(
114 server_port : mach_port_t;
117 name : client_port_name_t;
120 routine rpc_jack_set_buffer_size(
121 server_port : mach_port_t;
125 routine rpc_jack_set_freewheel(
126 server_port : mach_port_t;
130 routine rpc_jack_release_timebase(
131 server_port : mach_port_t;
135 routine rpc_jack_set_timebase_callback(
136 server_port : mach_port_t;
141 routine rpc_jack_get_internal_clientname(
142 server_port : mach_port_t;
145 out client_name_res : client_name_t;
148 routine rpc_jack_internal_clienthandle(
149 server_port : mach_port_t;
151 client_name : client_name_t;
156 routine rpc_jack_internal_clientload(
157 server_port : mach_port_t;
159 client_name : client_name_t;
161 objet_data : objet_data_t;
167 routine rpc_jack_internal_clientunload(
168 server_port : mach_port_t;
174 simpleroutine rpc_jack_client_rt_notify(
175 client_port : mach_port_t;
179 waittime timeout : int);