#include #include #include #include #include "sydney.h" #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 880 int main(int argc, char *argv[]) { sa_device_t *dev; float data[4] = { 0.0, 1.0, 0.0, -1.0 }; int i; 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 < FREQ; i++) ASSERT_SUCCESS(sa_device_write(dev, data, sizeof(data))); ASSERT_SUCCESS(sa_device_drain(dev)); ASSERT_SUCCESS(sa_device_destroy(dev)); return 0; }