106#include <sphinx_config.h>
108#if defined (__CYGWIN__)
109#include <w32api/windows.h>
110#include <w32api/mmsystem.h>
111#elif (defined(WIN32) && !defined(GNUWINCE)) || defined(_WIN32_WCE)
114#elif defined(AD_BACKEND_JACK)
115#include <jack/jack.h>
116#include <jack/ringbuffer.h>
117#ifdef HAVE_SAMPLERATE_H
118#include <samplerate.h>
120#elif defined(AD_BACKEND_PULSEAUDIO)
121#include <pulse/pulseaudio.h>
122#include <pulse/simple.h>
123#elif defined(AD_BACKEND_ALSA)
124#include <alsa/asoundlib.h>
128#include <sphinxbase/sphinxbase_export.h>
140#define AD_SAMPLE_SIZE (sizeof(int16))
141#define DEFAULT_SAMPLES_PER_SEC 16000
147#define AD_ERR_NOT_OPEN -2
148#define AD_ERR_WAVE -3
151#if (defined(WIN32) || defined(AD_BACKEND_WIN32)) && !defined(GNUWINCE)
167#if (defined(WIN32) || defined(AD_BACKEND_WIN32)) && !defined(GNUWINCE)
169#define DEFAULT_DEVICE (char*)DEV_MAPPER
174typedef struct ad_rec_s {
188#elif defined(AD_BACKEND_OSS)
190#define DEFAULT_DEVICE "/dev/dsp"
202#elif defined(AD_BACKEND_PULSEAUDIO)
204#define DEFAULT_DEVICE NULL
213#elif defined(AD_BACKEND_ALSA)
215#define DEFAULT_DEVICE "default"
223#elif defined(AD_BACKEND_JACK)
226 jack_client_t *client;
227 jack_port_t *input_port;
228 jack_port_t *output_port;
229 jack_ringbuffer_t* rbuffer;
230 jack_default_audio_sample_t* sample_buffer;
234#ifdef HAVE_SAMPLERATE_H
235 SRC_STATE *resample_state;
236 jack_default_audio_sample_t *resample_buffer;
240#elif defined(AD_BACKEND_S60)
242typedef struct ad_rec_s {
250ad_rec_t *ad_open_sps_bufsize (int32 samples_per_sec, int32 bufsize_msec);
254#define DEFAULT_DEVICE NULL
276 int32 samples_per_sec
284 int32 samples_per_sec
295#if defined(WIN32) && !defined(GNUWINCE)
301ad_rec_t *ad_open_sps_bufsize (int32 samples_per_sec, int32 bufsize_msec);
326int32 ad_read (
ad_rec_t *, int16 *buf, int32 max);
331#if defined(WIN32) && !defined(GNUWINCE)
355ad_play_t *ad_open_play_sps (int32 samples_per_sec);
389 unsigned char *inbuf,
SPHINXBASE_EXPORT ad_rec_t * ad_open_dev(const char *dev, int32 samples_per_sec)
Open a specific audio device for recording.
SPHINXBASE_EXPORT ad_rec_t * ad_open(void)
Open the default audio device.
SPHINXBASE_EXPORT void ad_mu2li(int16 *outbuf, unsigned char *inbuf, int32 n_samp)
Convert mu-law data to int16 linear PCM format.
SPHINXBASE_EXPORT ad_rec_t * ad_open_sps(int32 samples_per_sec)
Open the default audio device with a given sampling rate.
SPHINXBASE_EXPORT int32 ad_write(ad_play_t *, int16 *buf, int32 len)
Queue a block of audio samples for playback.
Basic type definitions used in Sphinx.