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

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

revision 1260 by stargo, Sun Sep 17 15:25:10 2006 UTC revision 1263 by stargo, Sun Sep 17 18:08:51 2006 UTC
# Line 55  rdpsnd_dsp_softvol(unsigned char *buffer Line 55  rdpsnd_dsp_softvol(unsigned char *buffer
55    
56          if (format->wBitsPerSample == 8)          if (format->wBitsPerSample == 8)
57          {          {
58                  char val;                  sint8 val;
59    
60                  while (posout < buffer + size)                  while (posout < buffer + size)
61                  {                  {
# Line 72  rdpsnd_dsp_softvol(unsigned char *buffer Line 72  rdpsnd_dsp_softvol(unsigned char *buffer
72          }          }
73          else          else
74          {          {
75                  short val;                  sint16 val;
76    
77                  while (posout < buffer + size)                  while (posout < buffer + size)
78                  {                  {
# Line 92  rdpsnd_dsp_softvol(unsigned char *buffer Line 92  rdpsnd_dsp_softvol(unsigned char *buffer
92                  }                  }
93          }          }
94    
95          DEBUG(("using softvol with shifts left: %d, right: %d (%d/%d)\n", factor_left, factor_right,          DEBUG(("using softvol with factors left: %d, right: %d (%d/%d)\n", factor_left,
96                 format->wBitsPerSample, format->nChannels));                 factor_right, format->wBitsPerSample, format->nChannels));
97  }  }
98    
99  void  void
# Line 113  rdpsnd_dsp_swapbytes(unsigned char *buff Line 113  rdpsnd_dsp_swapbytes(unsigned char *buff
113          }          }
114  }  }
115    
 unsigned char *  
 rdpsnd_dsp_process(unsigned char *inbuffer, unsigned int size, struct audio_driver *current_driver,  
                    WAVEFORMATEX * format)  
 {  
         unsigned char *outbuffer;  
   
         outbuffer = xmalloc(size);  
116    
117          memcpy(outbuffer, inbuffer, size);  STREAM
118    rdpsnd_dsp_process(STREAM s, struct audio_driver *current_driver, WAVEFORMATEX * format)
119    {
120            static struct stream out;
121    
122          /* Software volume control */          /* softvol and byteswap do not change the amount of data they
123               return, so they can operate on the input-stream */
124          if (current_driver->wave_out_volume == rdpsnd_dsp_softvol_set)          if (current_driver->wave_out_volume == rdpsnd_dsp_softvol_set)
125                  rdpsnd_dsp_softvol(outbuffer, size, format);                  rdpsnd_dsp_softvol(s->data, s->size, format);
126    
127  #ifdef B_ENDIAN  #ifdef B_ENDIAN
128          if (current_driver->need_byteswap_on_be)          if (current_driver->need_byteswap_on_be)
129                  rdpsnd_dsp_swapbytes(outbuffer, size, format);                  rdpsnd_dsp_swapbytes(s->data, s->size, format);
130  #endif  #endif
131    
132          return outbuffer;          /* FIXME: where do we lose the 4 bytes referenced here? */
133            out.data = xmalloc(s->size - 4);
134    
135            memcpy(out.data, s->data + 4, s->size - 4);
136    
137            out.size = s->size - 4;
138            out.p = out.data;
139            out.end = out.p + out.size;
140    
141            return &out;
142  }  }

Legend:
Removed from v.1260  
changed lines
  Added in v.1263

  ViewVC Help
Powered by ViewVC 1.1.26