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)
113 #include <mmsystem.h>
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
146 #define AD_ERR_GEN -1
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
174 typedef 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)
242 typedef struct ad_rec_s {
250 ad_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)
301 ad_rec_t *ad_open_sps_bufsize (int32 samples_per_sec, int32 bufsize_msec);
326 int32 ad_read (
ad_rec_t *, int16 *buf, int32 max);
331 #if defined(WIN32) && !defined(GNUWINCE)
355 ad_play_t *ad_open_play_sps (int32 samples_per_sec);
389 unsigned char *inbuf,
SPHINXBASE_EXPORT void ad_mu2li(int16 *outbuf, unsigned char *inbuf, int32 n_samp)
Convert mu-law data to int16 linear PCM format.
Basic type definitions used in Sphinx.
SPHINXBASE_EXPORT ad_rec_t * ad_open(void)
Open the default audio device.
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_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.