/[rdesktop]/sourceforge.net/trunk/rdesktop/rdpsnd_sun.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /sourceforge.net/trunk/rdesktop/rdpsnd_sun.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 510 by stargo, Thu Oct 23 11:11:31 2003 UTC revision 694 by stargo, Fri May 7 12:01:53 2004 UTC
# Line 26  Line 26 
26  #include <errno.h>  #include <errno.h>
27  #include <sys/ioctl.h>  #include <sys/ioctl.h>
28  #include <sys/audioio.h>  #include <sys/audioio.h>
29    
30    #if (defined(sun) && (defined(__svr4__) || defined(__SVR4)))
31  #include <stropts.h>  #include <stropts.h>
32    #endif
33    
34  #define MAX_QUEUE       10  #define MAX_QUEUE       10
35    
# Line 80  wave_out_close(void) Line 83  wave_out_close(void)
83                  queue_lo = (queue_lo + 1) % MAX_QUEUE;                  queue_lo = (queue_lo + 1) % MAX_QUEUE;
84          }          }
85    
86    #if defined I_FLUSH && defined FLUSHW
87          /* Flush the audiobuffer */          /* Flush the audiobuffer */
88          ioctl(g_dsp_fd, I_FLUSH, FLUSHW);          ioctl(g_dsp_fd, I_FLUSH, FLUSHW);
89    #endif
90    #if defined AUDIO_FLUSH
91            ioctl(g_dsp_fd, AUDIO_FLUSH, NULL);
92    #endif
93          close(g_dsp_fd);          close(g_dsp_fd);
94  }  }
95    
# Line 102  BOOL Line 110  BOOL
110  wave_out_set_format(WAVEFORMATEX * pwfx)  wave_out_set_format(WAVEFORMATEX * pwfx)
111  {  {
112          audio_info_t info;          audio_info_t info;
         int test = 1;  
113    
114          ioctl(g_dsp_fd, AUDIO_DRAIN, 0);          ioctl(g_dsp_fd, AUDIO_DRAIN, 0);
115          g_swapaudio = False;          g_swapaudio = False;
# Line 117  wave_out_set_format(WAVEFORMATEX * pwfx) Line 124  wave_out_set_format(WAVEFORMATEX * pwfx)
124          {          {
125                  info.play.encoding = AUDIO_ENCODING_LINEAR;                  info.play.encoding = AUDIO_ENCODING_LINEAR;
126                  /* Do we need to swap the 16bit values? (Are we BigEndian) */                  /* Do we need to swap the 16bit values? (Are we BigEndian) */
127                  g_swapaudio = !(*(uint8 *) (&test));  #ifdef B_ENDIAN
128                    g_swapaudio = 1;
129    #else
130                    g_swapaudio = 0;
131    #endif
132          }          }
133    
134          g_samplewidth = pwfx->wBitsPerSample / 8;          g_samplewidth = pwfx->wBitsPerSample / 8;
135    
136          if (pwfx->nChannels == 1)          if (pwfx->nChannels == 1)
137          {          {
138                  info.play.channels = AUDIO_CHANNELS_MONO;                  info.play.channels = 1;
139          }          }
140          else if (pwfx->nChannels == 2)          else if (pwfx->nChannels == 2)
141          {          {
142                  info.play.channels = AUDIO_CHANNELS_STEREO;                  info.play.channels = 2;
143                  g_samplewidth *= 2;                  g_samplewidth *= 2;
144          }          }
145    

Legend:
Removed from v.510  
changed lines
  Added in v.694

  ViewVC Help
Powered by ViewVC 1.1.26