#include <errno.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <libcw2.h>
#include <libcw_debug.h>
#include "unixcw_libcw_demo.h"
extern cw_debug_t cw_debug_object;
extern cw_debug_t cw_debug_object_dev;
#ifdef deprecated
extern cw_debug_t cw_debug_object_ev;
#endif
enum cw_return_values
unixcw_libcw_demo_1(const char *msg)
{
enum cw_return_values ret;
cw_ret_t cw_ret;
cw_gen_config_t cw_gen_config;
cw_gen_t *cw_gen;
ret = CW_SUCCESS;
printf("%s: starting.\n", __func__);
cw_debug_set_flags(&cw_debug_object, CW_DEBUG_MASK);
cw_debug_object.level = CW_DEBUG_DEBUG;
cw_debug_set_flags(&cw_debug_object_dev, CW_DEBUG_MASK);
cw_debug_object_dev.level = CW_DEBUG_INFO;
memset(&cw_gen_config, 0, sizeof(cw_gen_config));
cw_gen_config.sound_system = CW_AUDIO_NULL;
strncpy(cw_gen_config.sound_device,
CW_DEFAULT_NULL_DEVICE,
sizeof(cw_gen_config.sound_device));
cw_gen = cw_gen_new(&cw_gen_config);
if (NULL == cw_gen) {
perror("cw_gen_new");
ret = CW_FAILURE;
goto err0;
}
cw_ret = cw_gen_start(cw_gen);
if (CW_SUCCESS != cw_ret) {
perror("cw_gen_start");
ret = CW_FAILURE;
goto err1;
}
cw_ret = cw_gen_enqueue_string(cw_gen, msg);
if (CW_SUCCESS != cw_ret) {
perror("cw_gen_enqueue_string");
ret = CW_FAILURE;
goto err2;
}
cw_ret = cw_gen_wait_for_queue_level(cw_gen, 0);
if (CW_SUCCESS != cw_ret) {
perror("cw_gen_wait_for_queue_level");
ret = CW_FAILURE;
goto err2;
}
err2:
cw_ret = cw_gen_stop(cw_gen);
if (CW_SUCCESS != cw_ret) {
fprintf(stderr, "cw_gen_stop() failed.\n");
ret = CW_FAILURE;
goto err1;
}
err1:
cw_gen_delete(&cw_gen);
err0:
return (ret);
}