Commit Diff


commit - b73e68f5b5b551164fdf405f67d4758bc274bce5
commit + e24324f1e5f50d7f1ceb3f8ae4c5513fa27d89f5
blob - 65993a4ee46bf3d75153c371ee0fd4bed0a7543c
blob + f01329e0d66edab94097e8f83217870ca699193a
--- amused.h
+++ amused.h
@@ -133,7 +133,7 @@ __dead void	usage(void);
 __dead void	ctl(int, char **);
 
 /* player.c */
-int	player_setup(int, int);
+int	player_setup(int, int, int);
 void	player_senderr(void);
 void	player_sendeof(void);
 int	player_shouldstop(void);
blob - 80997945fe67bea2dae6ff24b54f4d8cc68721e2
blob + 8dcc0a356a2af59e38690e72bbf3256b173a97ea
--- player.c
+++ player.c
@@ -74,7 +74,7 @@ audio_init(void)
 }
 
 int
-player_setup(int rate, int channels)
+player_setup(int bits, int rate, int channels)
 {
 	struct sio_par par;
 
@@ -83,6 +83,7 @@ player_setup(int rate, int channels)
 	sio_stop(hdl);
 
 	sio_initpar(&par);
+	par.bits = bits;
 	par.rate = rate;
 	par.pchan = channels;
 	if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) {
@@ -90,7 +91,7 @@ player_setup(int rate, int channels)
 		return -1;
 	}
 
-	if (par.pchan != channels) {
+	if (par.bits != bits || par.pchan != channels) {
 		log_warnx("failed to set params");
 		return -1;
 	}
blob - c35eca5bd8922058df803e4188eade87e12029dc
blob + 94d91e32a4f6dd6d63588d491b2f7d7bafa94fe2
--- player_flac.c
+++ player_flac.c
@@ -74,7 +74,7 @@ metacb(const FLAC__StreamDecoder *decoder, const FLAC_
 		sample_rate = meta->data.stream_info.sample_rate;
 		channels = meta->data.stream_info.channels;
 
-		if (player_setup(sample_rate, channels) == -1)
+		if (player_setup(16, sample_rate, channels) == -1)
 			err(1, "player_setrate");
 	}
 }
blob - dde2aa7fba32e8e424d29c03237ab99aa53adb95
blob + 23565c675b73ec5687d981392dfc887517e8a07e
--- player_mad.c
+++ player_mad.c
@@ -99,7 +99,7 @@ output(void *data, const struct mad_header *header, st
 	    buffer->channels != pcm->channels) {
 		buffer->sample_rate = pcm->samplerate;
 		buffer->channels = pcm->channels;
-		if (player_setup(pcm->samplerate, pcm->channels) == -1)
+		if (player_setup(16, pcm->samplerate, pcm->channels) == -1)
 			err(1, "player_setrate");
 	}
 
blob - 1a021a064be20ce190396b037ba388863c132af9
blob + d6b64076b8d69170c9cf6c22d7cbb9ab80e72a7e
--- player_oggvorbis.c
+++ player_oggvorbis.c
@@ -63,7 +63,7 @@ play_oggvorbis(int fd)
 	 * previous revision of this file.
 	 */
 	vi = ov_info(&vf, -1);
-	if (player_setup(vi->rate, vi->channels) == -1)
+	if (player_setup(16, vi->rate, vi->channels) == -1)
 		err(1, "player_setrate");
 
 	while (!eof) {
blob - 9be3933fa1855c6fd8a26e08ea15b1171a530d11
blob + 4a2f92ba4db4355e132cb2d1e3059028b9bb5611
--- player_opus.c
+++ player_opus.c
@@ -82,7 +82,7 @@ play_opus(int fd)
 
 			head = op_head(of, li);
 			if (head->input_sample_rate &&
-			    player_setup(head->input_sample_rate, 2) == -1)
+			    player_setup(16, head->input_sample_rate, 2) == -1)
 				err(1, "player_setrate");
 		}