comparison src/audio/SDL_audiodev.c @ 3809:7852b5b78af5 SDL-ryan-multiple-audio-device

Cleaning out SDL_audiodev.c and related references ...
author Ryan C. Gordon <icculus@icculus.org>
date Thu, 05 Oct 2006 01:13:47 +0000
parents c121d94672cb
children 2c5387c0a642
comparison
equal deleted inserted replaced
3808:e630f5fe29d8 3809:7852b5b78af5
97 path[maxlen - 1] = '\0'; 97 path[maxlen - 1] = '\0';
98 } 98 }
99 return (audio_fd); 99 return (audio_fd);
100 } 100 }
101 101
102 #elif SDL_AUDIO_DRIVER_PAUD
103
104 /* Get the name of the audio device we use for output */
105
106 #include <sys/types.h>
107 #include <sys/stat.h>
108
109 #include "SDL_stdinc.h"
110 #include "SDL_audiodev_c.h"
111
112 #ifndef _PATH_DEV_DSP
113 #define _PATH_DEV_DSP "/dev/%caud%c/%c"
114 #endif
115
116 char devsettings[][3] = {
117 {'p', '0', '1'}, {'p', '0', '2'}, {'p', '0', '3'}, {'p', '0', '4'},
118 {'p', '1', '1'}, {'p', '1', '2'}, {'p', '1', '3'}, {'p', '1', '4'},
119 {'p', '2', '1'}, {'p', '2', '2'}, {'p', '2', '3'}, {'p', '2', '4'},
120 {'p', '3', '1'}, {'p', '3', '2'}, {'p', '3', '3'}, {'p', '3', '4'},
121 {'b', '0', '1'}, {'b', '0', '2'}, {'b', '0', '3'}, {'b', '0', '4'},
122 {'b', '1', '1'}, {'b', '1', '2'}, {'b', '1', '3'}, {'b', '1', '4'},
123 {'b', '2', '1'}, {'b', '2', '2'}, {'b', '2', '3'}, {'b', '2', '4'},
124 {'b', '3', '1'}, {'b', '3', '2'}, {'b', '3', '3'}, {'b', '3', '4'},
125 {'\0', '\0', '\0'}
126 };
127
128 static int
129 OpenUserDefinedDevice(char *path, int maxlen, int flags)
130 {
131 const char *audiodev;
132 int audio_fd;
133
134 /* Figure out what our audio device is */
135 if ((audiodev = SDL_getenv("SDL_PATH_DSP")) == NULL) {
136 audiodev = SDL_getenv("AUDIODEV");
137 }
138 if (audiodev == NULL) {
139 return -1;
140 }
141 audio_fd = open(audiodev, flags, 0);
142 if (path != NULL) {
143 SDL_strlcpy(path, audiodev, maxlen);
144 path[maxlen - 1] = '\0';
145 }
146 return audio_fd;
147 }
148
149 int
150 SDL_OpenAudioPath(char *path, int maxlen, int flags, int classic)
151 {
152 struct stat sb;
153 int audio_fd;
154 char audiopath[1024];
155 int cycle;
156
157 audio_fd = OpenUserDefinedDevice(path, maxlen, flags);
158 if (audio_fd != -1) {
159 return audio_fd;
160 }
161
162 cycle = 0;
163 while (devsettings[cycle][0] != '\0') {
164 SDL_snprintf(audiopath, SDL_arraysize(audiopath),
165 _PATH_DEV_DSP,
166 devsettings[cycle][0],
167 devsettings[cycle][1], devsettings[cycle][2]);
168
169 if (stat(audiopath, &sb) == 0) {
170 audio_fd = open(audiopath, flags, 0);
171 if (audio_fd > 0) {
172 if (path != NULL) {
173 SDL_strlcpy(path, audiopath, maxlen);
174 }
175 return audio_fd;
176 }
177 }
178 }
179 return -1;
180 }
181
182 #endif /* Audio driver selection */ 102 #endif /* Audio driver selection */
183 /* vi: set ts=4 sw=4 expandtab: */ 103 /* vi: set ts=4 sw=4 expandtab: */