22 #if defined(RTAUDIO_EXPORT)
23 #if defined _WIN32 || defined __CYGWIN__
24 #define RTAUDIOAPI __declspec(dllexport)
26 #define RTAUDIOAPI __attribute__((visibility("default")))
29 #define RTAUDIOAPI //__declspec(dllimport)
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
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
95 #define RTAUDIO_STATUS_INPUT_OVERFLOW 0x1
96 #define RTAUDIO_STATUS_OUTPUT_UNDERFLOW 0x2
108 double stream_time, rtaudio_stream_status_t status,
115 typedef enum rtaudio_error {
140 typedef enum rtaudio_api {
154 #define NUM_SAMPLE_RATES 16
155 #define MAX_NAME_LENGTH 512
159 typedef struct rtaudio_device_info {
161 unsigned int output_channels;
162 unsigned int input_channels;
163 unsigned int duplex_channels;
165 int is_default_output;
166 int is_default_input;
168 rtaudio_format_t native_formats;
170 unsigned int preferred_sample_rate;
171 int sample_rates[NUM_SAMPLE_RATES];
173 char name[MAX_NAME_LENGTH];
178 typedef struct rtaudio_stream_parameters {
179 unsigned int device_id;
180 unsigned int num_channels;
181 unsigned int first_channel;
186 typedef struct rtaudio_stream_options {
187 rtaudio_stream_flags_t flags;
188 unsigned int num_buffers;
190 char name[MAX_NAME_LENGTH];
193 typedef struct rtaudio *rtaudio_t;
222 RTAUDIOAPI
const char *rtaudio_error(rtaudio_t audio);
258 rtaudio_format_t format,
unsigned int sample_rate,