summaryrefslogtreecommitdiffstats
path: root/test-sine.c
diff options
context:
space:
mode:
Diffstat (limited to 'test-sine.c')
-rw-r--r--test-sine.c21
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));