summarylogtreecommitdiffstats
path: root/fix-pulseaudio.patch
blob: cb7464febc7b69a33e9ef3f4fe6098a1183e265d (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
--- EMULib/Unix/SndUnix.c.orig	2016-01-24 20:00:56.000000000 +0200
+++ EMULib/Unix/SndUnix.c	2017-09-14 14:32:07.611308693 +0300
@@ -100,7 +100,13 @@
 #define AUDIO_CONV(A) (128+(A))
 #endif
 
+#if defined(PULSE_AUDIO)
+#define SOUNDFD_INVALID NULL
+static pa_simple* SoundFD = NULL;
+#else
+#define SOUNDFD_INVALID (-1)
 static int SoundFD     = -1; /* Audio device descriptor      */
+#endif
 static int SndRate     = 0;  /* Audio sampling rate          */
 static int SndSize     = 0;  /* SndData[] size               */
 static sample *SndData = 0;  /* Audio buffers                */
@@ -118,7 +124,7 @@
   int J;
 
   /* Spin until audio has been trashed */
-  for(RPtr=WPtr=0;SndRate&&SndData&&(SoundFD>=0);)
+  for(RPtr=WPtr=0;SndRate&&SndData&&(SoundFD!=SOUNDFD_INVALID);)
   {
 #if defined(PULSE_AUDIO)
     if(SoundFD)
@@ -158,7 +164,7 @@
   /* Shut down audio, just to be sure */
   TrashAudio();
   SndRate     = 0;
-  SoundFD     = -1;
+  SoundFD     = SOUNDFD_INVALID;
   SndSize     = 0;
   SndData     = 0;
   RPtr        = 0;
@@ -182,7 +188,7 @@
     PASpec.channels = 1;
     /* Try opening PulseAudio */
     if(!(SoundFD=pa_simple_new(0,"EMULib",PA_STREAM_PLAYBACK,0,"playback",&PASpec,0,0,0)))
-    { SoundFD=-1;return(0); }
+    { SoundFD=SOUNDFD_INVALID;return(0); }
   }
 
 #elif defined(ESD_AUDIO)
@@ -266,7 +272,7 @@
   if(Thr) pthread_join(Thr,0);
 
   /* If audio was initialized... */
-  if(SoundFD>=0)
+  if(SoundFD!=SOUNDFD_INVALID)
   {
 #if defined(PULSE_AUDIO)
     if(SoundFD) pa_simple_free(SoundFD);
@@ -284,7 +290,7 @@
   if(SndData) free(SndData);
 
   /* Sound trashed */
-  SoundFD = -1;
+  SoundFD = SOUNDFD_INVALID;
   SndData = 0;
   SndSize = 0;
   RPtr    = 0;