summaryrefslogtreecommitdiff
path: root/mbone/speak_freely/files/patch-ae
diff options
context:
space:
mode:
Diffstat (limited to 'mbone/speak_freely/files/patch-ae')
-rw-r--r--mbone/speak_freely/files/patch-ae101
1 files changed, 101 insertions, 0 deletions
diff --git a/mbone/speak_freely/files/patch-ae b/mbone/speak_freely/files/patch-ae
new file mode 100644
index 000000000000..63da3ff0d3cb
--- /dev/null
+++ b/mbone/speak_freely/files/patch-ae
@@ -0,0 +1,101 @@
+*** soundbyte.c.orig Mon Apr 8 17:39:41 1996
+--- soundbyte.c Fri Oct 25 20:36:06 1996
+***************
+*** 96,101 ****
+--- 96,106 ----
+ }
+ #endif
+
++ #ifndef sun
++ #ifdef HALF_DUPLEX
++ static int oldvol = -1;
++ #endif
++ #endif
+
+ /* SOUNDINIT -- Open the sound peripheral and initialise for
+ access. Return TRUE if successful, FALSE
+***************
+*** 145,150 ****
+--- 150,170 ----
+ }
+ ioctl(Audio_fd, AUDIO_SETINFO, &Audio_info);
+ #endif
++ #ifndef sun
++ #ifdef HALF_DUPLEX
++ if (iomode == O_RDONLY) {
++ if (oldvol == -1)
++ oldvol = soundgetvol();
++ soundplayvol(0);
++ } else if ( iomode == O_WRONLY
++ && oldvol != -1
++ ) {
++ if (soundgetvol() == 0)
++ soundplayvol(oldvol);
++ oldvol = -1;
++ }
++ #endif
++ #endif
+ return TRUE;
+ }
+ if (errno != EINTR) {
+***************
+*** 160,165 ****
+--- 180,194 ----
+ void soundterm()
+ {
+ if (audiof >= 0) {
++ #ifndef sun
++ #ifdef HALF_DUPLEX
++ if (oldvol != -1) {
++ if (soundgetvol() == 0)
++ soundplayvol(oldvol);
++ oldvol = -1;
++ }
++ #endif
++ #endif
+ if (close(audiof) < 0) {
+ perror("closing audio device");
+ }
+***************
+*** 210,219 ****
+
+ arg = (value << 8) | value;
+
+! if (ioctl(Audio_fd, MIXER_WRITE(SOUND_MIXER_PCM), &arg) < 0)
+! perror("SOUND_MIXER_PCM");
+ #endif
+ }
+
+ /* SOUNDRECGAIN -- Set recording gain from 0 (minimum) to 100 (maximum). */
+
+--- 239,268 ----
+
+ arg = (value << 8) | value;
+
+! if (ioctl(Audio_fd, SOUND_MIXER_WRITE_PCM, &arg) < 0)
+! perror("SOUND_MIXER_WRITE_PCM");
+ #endif
+ }
++
++ #ifndef sun
++ #ifdef HALF_DUPLEX
++
++ /* SOUNDGETVOL -- Get current playback volume. */
++
++ int soundgetvol()
++ {
++ int arg, v1, v2;
++
++ if (ioctl(Audio_fd, SOUND_MIXER_READ_PCM, &arg) < 0) {
++ perror("SOUND_MIXER_READ_PCM");
++ return -1;
++ }
++ v1 = arg & 0xFF;
++ v2 = (arg >> 8) & 0xFF;
++ return (v1 > v2) ? v1 : v2;
++ }
++ #endif
++ #endif
+
+ /* SOUNDRECGAIN -- Set recording gain from 0 (minimum) to 100 (maximum). */
+