summaryrefslogtreecommitdiff
path: root/src/audioinput.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/audioinput.cc')
-rw-r--r--src/audioinput.cc25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/audioinput.cc b/src/audioinput.cc
index cc68e4b..a94d208 100644
--- a/src/audioinput.cc
+++ b/src/audioinput.cc
@@ -31,12 +31,26 @@
AudioInput::AudioInput(const char *device)
{
int err;
- ai = ai_init(&err, device, "", 48000, 1);
- if(err) printf("ai_err: %d\n", err);
+ ai = ai_init(&err, device, "", 16000, 1);
+ if(ai == NULL || err) {
+ printf("ai_init: %d\n", err);
+ return;
+ }
+
+ int srate = ai_get_samplerate(&err, ai);
+ if(err) printf("ai_get_samplerate: %d\n", err);
+ if(srate != 16000) {
+ printf("Samplerate: %d\n", srate);
+ }
}
AudioInput::~AudioInput()
{
+ if(ai == NULL) {
+ printf("ai_err: no handle\n");
+ return;
+ }
+
int err;
ai_close(&err, ai);
if(err) printf("ai_err: %d\n", err);
@@ -44,8 +58,13 @@ AudioInput::~AudioInput()
int AudioInput::getSamples(void *pcm, size_t size)
{
+ if(ai == NULL) {
+ printf("ai_err: no handle\n");
+ return 0;
+ }
+
int err;
int ret = ai_read(&err, ai, pcm, size);
- if(err) printf("ai_err: %d\n", err);
+ if(err) printf("ai_read: %d\n", err);
return ret;
}