diff options
Diffstat (limited to 'test-sine.c')
-rw-r--r-- | test-sine.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/test-sine.c b/test-sine.c index ae9ac9e..c0d40e8 100644 --- a/test-sine.c +++ b/test-sine.c @@ -1,10 +1,22 @@ +#include <errno.h> +#include <stdio.h> #include <assert.h> +#include <string.h> #include "sydney.h" -#define ASSERT_SUCCESS(x) assert(x == SA_SUCCESS) +#define ASSERT_SUCCESS(x) do { \ + int _r; \ + if ((_r = x)) { \ + fprintf(stderr, "Operation <%s> failed: %s%s%s\n", \ + #x, \ + sa_strerror(_r), \ + _r == SA_ERROR_SYSTEM ? "; " : "", _r == SA_ERROR_SYSTEM ? strerror(errno) : ""); \ + } \ + assert(_r == SA_SUCCESS); \ +} while(0) -#define FREQ 440 +#define FREQ 880 int main(int argc, char *argv[]) { @@ -12,11 +24,12 @@ int main(int argc, char *argv[]) { float data[4] = { 0.0, 1.0, 0.0, -1.0 }; int i; - ASSERT_SUCCESS(sa_device_create_pcm(&dev, argv[0], SA_MODE_WRONLY, SA_PCM_FORMAT_FLOAT32_NE, FREQ * 4, 1)); + ASSERT_SUCCESS(sa_device_create_pcm(&dev, SA_MODE_WRONLY, SA_PCM_FORMAT_FLOAT32_NE, FREQ * 4, 1)); ASSERT_SUCCESS(sa_device_change_device(dev, "/dev/dsp1")); + sa_device_change_meta_data(dev, SA_META_CLIENT_NAME, argv[0], strlen(argv[0])); ASSERT_SUCCESS(sa_device_open(dev)); - for (i = 0; i < 10; i++) + for (i = 0; i < FREQ; i++) ASSERT_SUCCESS(sa_device_write(dev, data, sizeof(data))); ASSERT_SUCCESS(sa_device_drain(dev)); |