PortAudioIO (void);
~PortAudioIO (void);
- enum ErrorCode {
- NoError = 0,
- InitializationError,
- DeInitializationError,
- DeviceConfigNotSupportedError,
- StreamOpenError,
- StreamStartError,
- StreamStopError,
- StreamCloseError,
- IOError,
- BufferUnderrunError,
- BufferOverrunError
- };
-
enum StandardDevices {
DeviceNone = -2,
DeviceDefault = -1
PaDeviceIndex get_default_input_device () const;
PaDeviceIndex get_default_output_device () const;
- void update_devices();
+ bool update_devices();
void input_device_list (std::map<int, std::string> &devices) const;
void output_device_list (std::map<int, std::string> &devices) const;
long& preferred_size_frames,
long& granularity);
- bool get_asio_buffer_sizes (int device_id, std::vector<uint32_t>& buffer_size);
+ bool get_asio_buffer_sizes(int device_id,
+ std::vector<uint32_t>& buffer_size,
+ bool preferred_only);
#endif
std::string control_app_name (int device_id) const;
void launch_control_app (int device_id);
- ErrorCode open_blocking_stream(int device_input,
- int device_output,
- double sample_rate,
- uint32_t samples_per_period);
- ErrorCode start_stream(void);
+ PaErrorCode open_blocking_stream(int device_input,
+ int device_output,
+ double sample_rate,
+ uint32_t samples_per_period);
+
+ PaErrorCode open_callback_stream(int device_input,
+ int device_output,
+ double sample_rate,
+ uint32_t samples_per_period,
+ PaStreamCallback* callback,
+ void* data);
- ErrorCode close_stream(void);
+ PaErrorCode start_stream(void);
+
+ PaErrorCode close_stream(void);
uint32_t n_playback_channels (void) const { return _playback_channels; }
uint32_t n_capture_channels (void) const { return _capture_channels; }
int get_capture_channel (uint32_t chn, float *input, uint32_t n_samples);
int set_playback_channel (uint32_t chn, const float *input, uint32_t n_samples);
+ float* get_capture_buffer () { return _input_buffer; }
+ float* get_playback_buffer () { return _output_buffer; }
+
private: // Methods
static bool pa_initialize();
bool set_sample_rate_and_latency_from_stream();
bool allocate_buffers_for_blocking_api (uint32_t samples_per_period);
- ErrorCode pre_stream_open(int device_input,
+ PaErrorCode pre_stream_open(int device_input,
PaStreamParameters& inputParam,
int device_output,
PaStreamParameters& outputParam);