summaryrefslogtreecommitdiff
path: root/audio/libsndfile/patches/patch-ac
blob: 4859db982ca428ab6a6db16f3161d81b06624c71 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
$NetBSD: patch-ac,v 1.9 2008/04/07 15:36:19 bjs Exp $

--- examples/sndfile-play.c.orig	2006-08-31 05:22:07.000000000 -0400
+++ examples/sndfile-play.c
@@ -34,16 +34,21 @@
 	#include <sys/time.h>
 #endif
 
-#if defined (__linux__)
+#if defined (__linux__) || defined(USE_OSS)
 	#include 	<fcntl.h>
 	#include 	<sys/ioctl.h>
 	#include 	<sys/soundcard.h>
 
+	#ifndef DEV_DSP
+	#define DEV_DSP	"/dev/dsp"
+	#endif
+
 #elif (defined (__MACH__) && defined (__APPLE__))
 	#include <Carbon.h>
 	#include <CoreAudio/AudioHardware.h>
 
-#elif (defined (sun) && defined (unix))
+#elif (defined (sun) && defined (unix)) || \
+      defined (USE_SUN)
 	#include <fcntl.h>
 	#include <sys/ioctl.h>
 	#include <sys/audioio.h>
@@ -339,7 +344,7 @@ alsa_write_float (snd_pcm_t *alsa_dev, f
 **	Linux/OSS functions for playing a sound.
 */
 
-#if defined (__linux__)
+#if defined (__linux__) || defined(USE_OSS)
 
 static	int	linux_open_dsp_device (int channels, int srate) ;
 
@@ -408,7 +413,7 @@ static int
 linux_open_dsp_device (int channels, int srate)
 {	int fd, stereo, fmt ;
 
-	if ((fd = open ("/dev/dsp", O_WRONLY, 0)) == -1 &&
+	if ((fd = open (DEV_DSP, O_WRONLY, 0)) == -1 &&
 		(fd = open ("/dev/sound/dsp", O_WRONLY, 0)) == -1)
 	{	perror ("linux_open_dsp_device : open ") ;
 		exit (1) ;
@@ -819,7 +824,12 @@ win32_play (int argc, char *argv [])
 **	Solaris.
 */
 
-#if (defined (sun) && defined (unix)) /* ie Solaris */
+#if (defined (sun) && defined (unix)) || \
+    defined (USE_SUN)
+
+#ifndef SUN_DEV
+#define SUN_DEV "/dev/audio"
+#endif
 
 static void
 solaris_play (int argc, char *argv [])
@@ -844,8 +854,8 @@ solaris_play (int argc, char *argv [])
 			} ;
 
 		/* open the audio device - write only, non-blocking */
-		if ((audio_fd = open ("/dev/audio", O_WRONLY | O_NONBLOCK)) < 0)
-		{	perror ("open (/dev/audio) failed") ;
+		if ((audio_fd = open (SUN_DEV, O_WRONLY | O_NONBLOCK)) < 0)
+		{	perror ("open ("SUN_DEV") failed") ;
 			return ;
 			} ;
 
@@ -858,6 +868,9 @@ solaris_play (int argc, char *argv [])
 		audio_info.play.encoding = AUDIO_ENCODING_LINEAR ;
 		audio_info.play.gain = AUDIO_MAX_GAIN ;
 		audio_info.play.balance = AUDIO_MID_BALANCE ;
+#if defined(__NetBSD__) || defined(__OpenBSD__)
+		audio_info.mode = AUMODE_PLAY | AUMODE_PLAY_ALL;
+#endif
 
 		if ((error = ioctl (audio_fd, AUDIO_SETINFO, &audio_info)))
 		{	perror ("ioctl (AUDIO_SETINFO) failed") ;
@@ -926,7 +939,7 @@ main (int argc, char *argv [])
 		return 1 ;
 		} ;
 
-#if defined (__linux__)
+#if defined (__linux__) || defined (USE_OSS)
 	#if HAVE_ALSA_ASOUNDLIB_H
 		if (access ("/proc/asound/cards", R_OK) == 0)
 			alsa_play (argc, argv) ;
@@ -935,7 +948,8 @@ main (int argc, char *argv [])
 		linux_play (argc, argv) ;
 #elif (defined (__MACH__) && defined (__APPLE__))
 	macosx_play (argc, argv) ;
-#elif (defined (sun) && defined (unix))
+#elif (defined (sun) && defined (unix)) || \
+      defined (USE_SUN)
 	solaris_play (argc, argv) ;
 #elif (OS_IS_WIN32 == 1)
 	win32_play (argc, argv) ;