From e2513e5415199fa6b0bbeaf06a8eb827debbbb0b Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Fri, 1 Oct 2004 11:44:22 +0000 Subject: sys/sunaudio/gstsunaudio.c: Solve #152805. Original commit message from CVS: Reviewed by: Ronald S. Bultje * sys/sunaudio/gstsunaudio.c: (gst_sunaudiosink_setparams): Solve #152805. * sys/sunaudio/gstsunmixer.c: (gst_sunaudiomixer_set_mute): Solve 152806. --- sys/sunaudio/gstsunaudio.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'sys/sunaudio/gstsunaudio.c') diff --git a/sys/sunaudio/gstsunaudio.c b/sys/sunaudio/gstsunaudio.c index 057ec2bc..42c8bc86 100644 --- a/sys/sunaudio/gstsunaudio.c +++ b/sys/sunaudio/gstsunaudio.c @@ -276,6 +276,19 @@ gst_sunaudiosink_setparams (GstSunAudioSink * sunaudiosink) { audio_info_t ainfo; int ret; + int ports; + + ret = ioctl (sunaudiosink->fd, AUDIO_GETINFO, &ainfo); + if (ret == -1) { + GST_ELEMENT_ERROR (sunaudiosink, RESOURCE, SETTINGS, (NULL), ("%s", + strerror (errno))); + return FALSE; + } + + ports = ainfo.play.port; + if (!(ports & AUDIO_SPEAKER) && (ainfo.play.avail_ports & AUDIO_SPEAKER)) { + ports = ports | AUDIO_SPEAKER; + } AUDIO_INITINFO (&ainfo); @@ -283,7 +296,7 @@ gst_sunaudiosink_setparams (GstSunAudioSink * sunaudiosink) ainfo.play.channels = sunaudiosink->channels; ainfo.play.precision = sunaudiosink->width; ainfo.play.encoding = AUDIO_ENCODING_LINEAR; - ainfo.play.port = AUDIO_SPEAKER; + ainfo.play.port = ports; ainfo.play.buffer_size = sunaudiosink->buffer_size; ainfo.output_muted = 0; -- cgit v1.2.1