/[rdesktop]/sourceforge.net/trunk/rdesktop/rdpsnd_oss.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_oss.c

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

revision 1254 by stargo, Sun Sep 17 10:32:18 2006 UTC revision 1255 by stargo, Sun Sep 17 11:04:50 2006 UTC
# Line 41  Line 41 
41    
42  static int snd_rate;  static int snd_rate;
43  static short samplewidth;  static short samplewidth;
44    static char *dsp_dev;
45    
46  BOOL  BOOL
47  wave_out_open(void)  oss_open(void)
48  {  {
         char *dsp_dev = getenv("AUDIODEV");  
   
         if (dsp_dev == NULL)  
         {  
                 dsp_dev = xstrdup(DEFAULTDEVICE);  
         }  
   
49          if ((g_dsp_fd = open(dsp_dev, O_WRONLY)) == -1)          if ((g_dsp_fd = open(dsp_dev, O_WRONLY)) == -1)
50          {          {
51                  perror(dsp_dev);                  perror(dsp_dev);
# Line 62  wave_out_open(void) Line 56  wave_out_open(void)
56  }  }
57    
58  void  void
59  wave_out_close(void)  oss_close(void)
60  {  {
61          close(g_dsp_fd);          close(g_dsp_fd);
62  }  }
63    
64  BOOL  BOOL
65  wave_out_format_supported(WAVEFORMATEX * pwfx)  oss_format_supported(WAVEFORMATEX * pwfx)
66  {  {
67          if (pwfx->wFormatTag != WAVE_FORMAT_PCM)          if (pwfx->wFormatTag != WAVE_FORMAT_PCM)
68                  return False;                  return False;
# Line 81  wave_out_format_supported(WAVEFORMATEX * Line 75  wave_out_format_supported(WAVEFORMATEX *
75  }  }
76    
77  BOOL  BOOL
78  wave_out_set_format(WAVEFORMATEX * pwfx)  oss_set_format(WAVEFORMATEX * pwfx)
79  {  {
80          int stereo, format, fragments;          int stereo, format, fragments;
81          static BOOL driver_broken = False;          static BOOL driver_broken = False;
# Line 157  wave_out_set_format(WAVEFORMATEX * pwfx) Line 151  wave_out_set_format(WAVEFORMATEX * pwfx)
151  }  }
152    
153  void  void
154  wave_out_volume(uint16 left, uint16 right)  oss_volume(uint16 left, uint16 right)
155  {  {
156          static BOOL use_dev_mixer = False;          static BOOL use_dev_mixer = False;
157          uint32 volume;          uint32 volume;
# Line 192  wave_out_volume(uint16 left, uint16 righ Line 186  wave_out_volume(uint16 left, uint16 righ
186  }  }
187    
188  void  void
189  wave_out_play(void)  oss_play(void)
190  {  {
191          struct audio_packet *packet;          struct audio_packet *packet;
192          ssize_t len;          ssize_t len;
# Line 257  wave_out_play(void) Line 251  wave_out_play(void)
251          g_dsp_busy = 1;          g_dsp_busy = 1;
252          return;          return;
253  }  }
254    
255    static struct audio_driver oss_driver = {
256          wave_out_write:rdpsnd_queue_write,
257          wave_out_open:oss_open,
258          wave_out_close:oss_close,
259          wave_out_format_supported:oss_format_supported,
260          wave_out_set_format:oss_set_format,
261          wave_out_volume:oss_volume,
262          wave_out_play:oss_play,
263          name:"oss",
264          description:"OSS output driver, default device: " DEFAULTDEVICE " or $AUDIODEV",
265          next:NULL,
266    };
267    
268    struct audio_driver *
269    oss_register(char *options)
270    {
271            if (options)
272            {
273                    dsp_dev = xstrdup(options);
274            }
275            else
276            {
277                    dsp_dev = getenv("AUDIODEV");
278    
279                    if (dsp_dev == NULL)
280                    {
281                            dsp_dev = xstrdup(DEFAULTDEVICE);
282                    }
283            }
284    
285            return &oss_driver;
286    }

Legend:
Removed from v.1254  
changed lines
  Added in v.1255

  ViewVC Help
Powered by ViewVC 1.1.26