static int alsa_init(struct private_alsa_write_data *pad,
struct alsa_write_args_info *conf)
{
static int alsa_init(struct private_alsa_write_data *pad,
struct alsa_write_args_info *conf)
{
snd_pcm_uframes_t start_threshold, stop_threshold;
snd_pcm_uframes_t buffer_size, period_size;
snd_output_t *output_log;
snd_pcm_uframes_t start_threshold, stop_threshold;
snd_pcm_uframes_t buffer_size, period_size;
snd_output_t *output_log;
msg = "Broken alsa configuration";
ret = snd_pcm_hw_params_any(pad->handle, hwparams);
if (ret < 0)
msg = "Broken alsa configuration";
ret = snd_pcm_hw_params_any(pad->handle, hwparams);
if (ret < 0)
period_time = pad->buffer_time * 250; /* buffer time / 4 */
msg = "could not set period time";
ret = snd_pcm_hw_params_set_period_time_near(pad->handle, hwparams,
period_time = pad->buffer_time * 250; /* buffer time / 4 */
msg = "could not set period time";
ret = snd_pcm_hw_params_set_period_time_near(pad->handle, hwparams,
snd_pcm_sw_params_current(pad->handle, swparams);
snd_pcm_sw_params_set_avail_min(pad->handle, swparams, period_size);
if (buffer_size < 1)
snd_pcm_sw_params_current(pad->handle, swparams);
snd_pcm_sw_params_set_avail_min(pad->handle, swparams, period_size);
if (buffer_size < 1)
fail:
if (ret < 0)
PARA_ERROR_LOG("%s: %s\n", msg, snd_strerror(-ret));
else
PARA_ERROR_LOG("%s\n", msg);
fail:
if (ret < 0)
PARA_ERROR_LOG("%s: %s\n", msg, snd_strerror(-ret));
else
PARA_ERROR_LOG("%s\n", msg);