Add a few debug messages, a few more lock/unlocks and tidy up a bit.

This commit is contained in:
Mike Brady
2016-02-08 22:05:19 +00:00
parent 8f99cab8f9
commit 7b94913c17
+20 -9
View File
@@ -97,7 +97,7 @@ static void help(void) {
int open_mixer() {
if (hardware_mixer) {
debug(3, "Open Mixer");
debug(2, "Open Mixer");
int ret = 0;
snd_mixer_selem_id_alloca(&alsa_mix_sid);
snd_mixer_selem_id_set_index(alsa_mix_sid, alsa_mix_index);
@@ -122,7 +122,8 @@ int open_mixer() {
}
static int init(int argc, char **argv) {
// debug(1,"audio_alsa init called.");
pthread_mutex_lock(&alsa_mutex);
debug(2,"audio_alsa init called.");
const char *str;
int value;
@@ -279,10 +280,12 @@ static int init(int argc, char **argv) {
snd_mixer_close(alsa_mix_handle);
alsa_mix_handle = NULL;
pthread_mutex_unlock(&alsa_mutex);
return 0;
}
static void deinit(void) {
debug(2,"audio_alsa deinit called.");
stop();
if (alsa_mix_handle) {
snd_mixer_close(alsa_mix_handle);
@@ -290,6 +293,7 @@ static void deinit(void) {
}
int open_alsa_device(void) {
const snd_pcm_uframes_t minimal_buffer_headroom =
352 * 2; // we accept this much headroom in the hardware buffer, but we'll
// accept less
@@ -392,12 +396,14 @@ int open_alsa_device(void) {
}
static void start(int sample_rate) {
debug(2,"audio_alsa start called.");
if (sample_rate != 44100)
die("Unexpected sample rate %d -- only 44,100 supported!", sample_rate);
desired_sample_rate = sample_rate; // must be a variable
}
static uint32_t delay() {
debug(3,"audio_alsa delay called.");
if (alsa_handle == NULL) {
return 0;
} else {
@@ -435,6 +441,7 @@ static uint32_t delay() {
}
static void play(short buf[], int samples) {
debug(3,"audio_alsa play called.");
int ret = 0;
if (alsa_handle == NULL) {
pthread_mutex_lock(&alsa_mutex);
@@ -469,6 +476,7 @@ static void play(short buf[], int samples) {
}
static void flush(void) {
debug(2,"audio_alsa flush called.");
pthread_mutex_lock(&alsa_mutex);
int derr;
if (alsa_mix_handle) {
@@ -502,13 +510,13 @@ static void flush(void) {
}
static void stop(void) {
if (alsa_handle != 0)
// when we want to stop, we want the alsa device
// to be closed immediately -- we may even be killing the thread, so we
// don't wish to wait
// so we should flush first
flush(); // flush will also close the device
// close_alsa_device();
debug(2,"audio_alsa stop called.");
// when we want to stop, we want the alsa device
// to be closed immediately -- we may even be killing the thread, so we
// don't wish to wait
// so we should flush first
flush(); // flush will also close the device
// close_alsa_device();
}
static void parameters(audio_parameters *info) {
@@ -548,6 +556,8 @@ static void linear_volume(double vol) {
}
static void mute(int do_mute) {
pthread_mutex_lock(&alsa_mutex);
debug(2,"audio_alsa mute called.");
if (alsa_mix_handle) {
if (do_mute) {
// debug(1,"Mute");
@@ -557,4 +567,5 @@ static void mute(int do_mute) {
snd_mixer_selem_set_playback_switch_all(alsa_mix_elem, 1);
}
}
pthread_mutex_unlock(&alsa_mutex);
}