aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_oss.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-08-12 03:19:19 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-08-12 03:19:19 +0000
commit65b2c011443b98ae19b2538b8a61b828cb650ee4 (patch)
tree8b84f2cf331145a921476ecd0bb42d310cf70b25 /channels/chan_oss.c
parentb814d3047641e7f2b0da752ec47b1b980a768c4b (diff)
Fix duplex code for FreeBSD
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3601 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_oss.c')
-rwxr-xr-xchannels/chan_oss.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/channels/chan_oss.c b/channels/chan_oss.c
index 86370f971..0068a0fc3 100755
--- a/channels/chan_oss.c
+++ b/channels/chan_oss.c
@@ -329,7 +329,11 @@ static int setformat(void)
return -1;
}
res = ioctl(fd, SNDCTL_DSP_SETDUPLEX, 0);
- if (res >= 0) {
+
+ /* Check to see if duplex set (FreeBSD Bug)*/
+ res = ioctl(fd, SNDCTL_DSP_GETCAPS, &fmt);
+
+ if ((fmt & DSP_CAP_DUPLEX) && !res) {
if (option_verbose > 1)
ast_verbose(VERBOSE_PREFIX_2 "Console is full duplex\n");
full_duplex = -1;