Home   Class/Enum List   File List   Compound Members   C interface  

rtaudio_c.h
Go to the documentation of this file.
1 /************************************************************************/
13 /************************************************************************/
14 
19 #ifndef RTAUDIO_C_H
20 #define RTAUDIO_C_H
21 
22 #if defined(RTAUDIO_EXPORT)
23 #if defined _WIN32 || defined __CYGWIN__
24 #define RTAUDIOAPI __declspec(dllexport)
25 #else
26 #define RTAUDIOAPI __attribute__((visibility("default")))
27 #endif
28 #else
29 #define RTAUDIOAPI //__declspec(dllimport)
30 #endif
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
48 typedef unsigned long rtaudio_format_t;
49 
50 #define RTAUDIO_FORMAT_SINT8 0x01
51 #define RTAUDIO_FORMAT_SINT16 0x02
52 #define RTAUDIO_FORMAT_SINT24 0x04
53 #define RTAUDIO_FORMAT_SINT32 0x08
54 #define RTAUDIO_FORMAT_FLOAT32 0x10
55 #define RTAUDIO_FORMAT_FLOAT64 0x20
56 
71 typedef unsigned int rtaudio_stream_flags_t;
72 
73 #define RTAUDIO_FLAGS_NONINTERLEAVED 0x1
74 #define RTAUDIO_FLAGS_MINIMIZE_LATENCY 0x2
75 #define RTAUDIO_FLAGS_HOG_DEVICE 0x4
76 #define RTAUDIO_FLAGS_SCHEDULE_REALTIME 0x8
77 #define RTAUDIO_FLAGS_ALSA_USE_DEFAULT 0x10
78 #define RTAUDIO_FLAGS_JACK_DONT_CONNECT 0x20
79 
93 typedef unsigned int rtaudio_stream_status_t;
94 
95 #define RTAUDIO_STATUS_INPUT_OVERFLOW 0x1
96 #define RTAUDIO_STATUS_OUTPUT_UNDERFLOW 0x2
97 
99 
107 typedef int (*rtaudio_cb_t)(void *out, void *in, unsigned int nFrames,
108  double stream_time, rtaudio_stream_status_t status,
109  void *userdata);
110 
128 };
129 typedef int rtaudio_error_t;
130 
132 
138 typedef void (*rtaudio_error_cb_t)(rtaudio_error_t err, const char *msg);
139 
153 };
154 typedef int rtaudio_api_t;
155 
156 #define NUM_SAMPLE_RATES 16
157 #define MAX_NAME_LENGTH 512
158 
161 typedef struct rtaudio_device_info {
162  unsigned int id;
163  unsigned int output_channels;
164  unsigned int input_channels;
165  unsigned int duplex_channels;
166 
167  int is_default_output;
168  int is_default_input;
169 
170  rtaudio_format_t native_formats;
171 
172  unsigned int preferred_sample_rate;
173  unsigned int sample_rates[NUM_SAMPLE_RATES];
174 
175  char name[MAX_NAME_LENGTH];
177 
180 typedef struct rtaudio_stream_parameters {
181  unsigned int device_id;
182  unsigned int num_channels;
183  unsigned int first_channel;
185 
188 typedef struct rtaudio_stream_options {
189  rtaudio_stream_flags_t flags;
190  unsigned int num_buffers;
191  int priority;
192  char name[MAX_NAME_LENGTH];
194 
195 typedef struct rtaudio *rtaudio_t;
196 
198 RTAUDIOAPI const char *rtaudio_version(void);
199 
203 RTAUDIOAPI unsigned int rtaudio_get_num_compiled_apis(void);
204 
209 RTAUDIOAPI const rtaudio_api_t *rtaudio_compiled_api(void);
210 
214 RTAUDIOAPI const char *rtaudio_api_name(rtaudio_api_t api);
215 
218 RTAUDIOAPI const char *rtaudio_api_display_name(rtaudio_api_t api);
219 
222 RTAUDIOAPI rtaudio_api_t rtaudio_compiled_api_by_name(const char *name);
223 
224 RTAUDIOAPI const char *rtaudio_error(rtaudio_t audio);
225 
226 RTAUDIOAPI rtaudio_error_t rtaudio_error_type(rtaudio_t audio);
227 
229 RTAUDIOAPI rtaudio_t rtaudio_create(rtaudio_api_t api);
230 
232 RTAUDIOAPI void rtaudio_destroy(rtaudio_t audio);
233 
236 RTAUDIOAPI rtaudio_api_t rtaudio_current_api(rtaudio_t audio);
237 
240 RTAUDIOAPI int rtaudio_device_count(rtaudio_t audio);
241 
247 RTAUDIOAPI unsigned int rtaudio_get_device_id(rtaudio_t audio, int i);
248 
251 RTAUDIOAPI rtaudio_device_info_t rtaudio_get_device_info(rtaudio_t audio,
252  unsigned int id);
253 
256 RTAUDIOAPI unsigned int rtaudio_get_default_output_device(rtaudio_t audio);
257 
260 RTAUDIOAPI unsigned int rtaudio_get_default_input_device(rtaudio_t audio);
261 
264 RTAUDIOAPI rtaudio_error_t
265 rtaudio_open_stream(rtaudio_t audio, rtaudio_stream_parameters_t *output_params,
266  rtaudio_stream_parameters_t *input_params,
267  rtaudio_format_t format, unsigned int sample_rate,
268  unsigned int *buffer_frames, rtaudio_cb_t cb,
269  void *userdata, rtaudio_stream_options_t *options,
270  rtaudio_error_cb_t errcb);
271 
273 RTAUDIOAPI void rtaudio_close_stream(rtaudio_t audio);
274 
276 RTAUDIOAPI rtaudio_error_t rtaudio_start_stream(rtaudio_t audio);
277 
280 RTAUDIOAPI rtaudio_error_t rtaudio_stop_stream(rtaudio_t audio);
281 
284 RTAUDIOAPI rtaudio_error_t rtaudio_abort_stream(rtaudio_t audio);
285 
287 RTAUDIOAPI int rtaudio_is_stream_open(rtaudio_t audio);
288 
291 RTAUDIOAPI int rtaudio_is_stream_running(rtaudio_t audio);
292 
295 RTAUDIOAPI double rtaudio_get_stream_time(rtaudio_t audio);
296 
299 RTAUDIOAPI void rtaudio_set_stream_time(rtaudio_t audio, double time);
300 
303 RTAUDIOAPI long rtaudio_get_stream_latency(rtaudio_t audio);
304 
307 RTAUDIOAPI unsigned int rtaudio_get_stream_sample_rate(rtaudio_t audio);
308 
311 RTAUDIOAPI void rtaudio_show_warnings(rtaudio_t audio, int show);
312 
313 #ifdef __cplusplus
314 }
315 #endif
316 #endif /* RTAUDIO_C_H */
317 
RTAUDIOAPI void rtaudio_show_warnings(rtaudio_t audio, int show)
RTAUDIOAPI unsigned int rtaudio_get_num_compiled_apis(void)
RTAUDIOAPI const char * rtaudio_api_name(rtaudio_api_t api)
RTAUDIOAPI int rtaudio_device_count(rtaudio_t audio)
Definition: rtaudio_c.h:142
Definition: rtaudio_c.h:151
RTAUDIOAPI void rtaudio_destroy(rtaudio_t audio)
Free an instance of struct rtaudio.
RTAUDIOAPI long rtaudio_get_stream_latency(rtaudio_t audio)
RTAUDIOAPI rtaudio_t rtaudio_create(rtaudio_api_t api)
Create an instance of struct rtaudio.
RTAUDIOAPI unsigned int rtaudio_get_device_id(rtaudio_t audio, int i)
RTAUDIOAPI void rtaudio_set_stream_time(rtaudio_t audio, double time)
Definition: rtaudio_c.h:127
RTAUDIOAPI unsigned int rtaudio_get_stream_sample_rate(rtaudio_t audio)
Definition: rtaudio_c.h:125
RTAUDIOAPI void rtaudio_close_stream(rtaudio_t audio)
Closes a stream and frees any associated stream memory. See RtAudio::closeStream().
Definition: rtaudio_c.h:152
RTAUDIOAPI unsigned int rtaudio_get_default_input_device(rtaudio_t audio)
RTAUDIOAPI double rtaudio_get_stream_time(rtaudio_t audio)
Definition: rtaudio_c.h:118
Definition: rtaudio_c.h:188
RTAUDIOAPI const rtaudio_api_t * rtaudio_compiled_api(void)
int(* rtaudio_cb_t)(void *out, void *in, unsigned int nFrames, double stream_time, rtaudio_stream_status_t status, void *userdata)
RtAudio callback function prototype.
Definition: rtaudio_c.h:107
Definition: rtaudio_c.h:123
Definition: rtaudio_c.h:119
rtaudio_api
Audio API specifier. See RtAudio::Api.
Definition: rtaudio_c.h:141
Definition: rtaudio_c.h:180
void(* rtaudio_error_cb_t)(rtaudio_error_t err, const char *msg)
RtAudio error callback function prototype.
Definition: rtaudio_c.h:138
RTAUDIOAPI int rtaudio_is_stream_running(rtaudio_t audio)
Definition: rtaudio_c.h:116
rtaudio_error
Error codes for RtAudio.
Definition: rtaudio_c.h:115
RTAUDIOAPI const char * rtaudio_api_display_name(rtaudio_api_t api)
RTAUDIOAPI unsigned int rtaudio_get_default_output_device(rtaudio_t audio)
RTAUDIOAPI rtaudio_api_t rtaudio_current_api(rtaudio_t audio)
Definition: rtaudio_c.h:122
unsigned int rtaudio_stream_flags_t
RtAudio stream option flags.
Definition: rtaudio_c.h:71
RTAUDIOAPI rtaudio_error_t rtaudio_open_stream(rtaudio_t audio, rtaudio_stream_parameters_t *output_params, rtaudio_stream_parameters_t *input_params, rtaudio_format_t format, unsigned int sample_rate, unsigned int *buffer_frames, rtaudio_cb_t cb, void *userdata, rtaudio_stream_options_t *options, rtaudio_error_cb_t errcb)
Definition: rtaudio_c.h:149
unsigned long rtaudio_format_t
RtAudio data format type.
Definition: rtaudio_c.h:48
RTAUDIOAPI rtaudio_error_t rtaudio_stop_stream(rtaudio_t audio)
Definition: rtaudio_c.h:150
Definition: rtaudio_c.h:117
RTAUDIOAPI rtaudio_device_info_t rtaudio_get_device_info(rtaudio_t audio, unsigned int id)
RTAUDIOAPI rtaudio_error_t rtaudio_abort_stream(rtaudio_t audio)
RTAUDIOAPI rtaudio_error_t rtaudio_start_stream(rtaudio_t audio)
Starts a stream. See RtAudio::startStream().
Definition: rtaudio_c.h:143
Definition: rtaudio_c.h:148
Definition: rtaudio_c.h:161
Definition: rtaudio_c.h:145
Definition: rtaudio_c.h:120
RTAUDIOAPI const char * rtaudio_version(void)
Determine the current RtAudio version. See RtAudio::getVersion().
Definition: rtaudio_c.h:126
Definition: rtaudio_c.h:147
RTAUDIOAPI int rtaudio_is_stream_open(rtaudio_t audio)
Returns 1 if a stream is open and false if not. See RtAudio::isStreamOpen().
Definition: rtaudio_c.h:124
unsigned int rtaudio_stream_status_t
RtAudio stream status (over- or underflow) flags.
Definition: rtaudio_c.h:93
RTAUDIOAPI rtaudio_api_t rtaudio_compiled_api_by_name(const char *name)
Definition: rtaudio_c.h:146
Definition: rtaudio_c.h:121
Definition: rtaudio_c.h:144

©2001-2023 Gary P. Scavone, McGill University. All Rights Reserved.
Maintained by Gary P. Scavone.