CVS: rdesktop rdpsnd.h, 1.4, 1.5 rdpsnd_alsa.c, 1.4, 1.5 rdpsnd_dsp.c, 1.2, 1.3 rdpsnd_libao.c, 1.18, 1.19 rdpsnd_oss.c, 1.23, 1.24 rdpsnd_sgi.c, 1.12, 1.13 rdpsnd_sun.c, 1.19, 1.20
Michael Gernoth <[email protected]> Sun, 17 Sep 2006 08:25:12 -0700
| Newsgroups | gmane.network.rdesktop.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/rdesktop/rdesktop
In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv7979
Modified Files:
rdpsnd.h rdpsnd_alsa.c rdpsnd_dsp.c rdpsnd_libao.c
rdpsnd_oss.c rdpsnd_sgi.c rdpsnd_sun.c
Log Message:
unify audio-byteswapping as a dsp-function
Index: rdpsnd.h
===================================================================
RCS file: /cvsroot/rdesktop/rdesktop/rdpsnd.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** rdpsnd.h 17 Sep 2006 14:41:16 -0000 1.4
--- rdpsnd.h 17 Sep 2006 15:25:10 -0000 1.5
***************
*** 37,40 ****
--- 37,41 ----
char *name;
char *description;
+ int need_byteswap_on_be;
struct audio_driver *next;
};
Index: rdpsnd_alsa.c
===================================================================
RCS file: /cvsroot/rdesktop/rdesktop/rdpsnd_alsa.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** rdpsnd_alsa.c 17 Sep 2006 11:42:22 -0000 1.4
--- rdpsnd_alsa.c 17 Sep 2006 15:25:10 -0000 1.5
***************
*** 298,301 ****
--- 298,302 ----
alsa_driver.name = xstrdup("alsa");
alsa_driver.description = xstrdup("ALSA output driver, default device: " DEFAULTDEVICE);
+ alsa_driver.need_byteswap_on_be = 0;
alsa_driver.next = NULL;
Index: rdpsnd_dsp.c
===================================================================
RCS file: /cvsroot/rdesktop/rdesktop/rdpsnd_dsp.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** rdpsnd_dsp.c 17 Sep 2006 15:08:48 -0000 1.2
--- rdpsnd_dsp.c 17 Sep 2006 15:25:10 -0000 1.3
***************
*** 36,40 ****
}
! inline void
rdpsnd_dsp_softvol(unsigned char *buffer, unsigned int size, WAVEFORMATEX * format)
{
--- 36,40 ----
}
! void
rdpsnd_dsp_softvol(unsigned char *buffer, unsigned int size, WAVEFORMATEX * format)
{
***************
*** 97,100 ****
--- 97,117 ----
}
+ void
+ rdpsnd_dsp_swapbytes(unsigned char *buffer, unsigned int size, WAVEFORMATEX * format)
+ {
+ int i;
+ uint8 swap;
+
+ if (format->wBitsPerSample == 8)
+ return;
+
+ for (i = 0; i < size; i += 2)
+ {
+ swap = *(buffer + i);
+ *(buffer + i) = *(buffer + i + 1);
+ *(buffer + i + 1) = swap;
+ }
+ }
+
unsigned char *
rdpsnd_dsp_process(unsigned char *inbuffer, unsigned int size, struct audio_driver *current_driver,
***************
*** 109,115 ****
/* Software volume control */
if (current_driver->wave_out_volume == rdpsnd_dsp_softvol_set)
- {
rdpsnd_dsp_softvol(outbuffer, size, format);
! }
return outbuffer;
--- 126,135 ----
/* Software volume control */
if (current_driver->wave_out_volume == rdpsnd_dsp_softvol_set)
rdpsnd_dsp_softvol(outbuffer, size, format);
!
! #ifdef B_ENDIAN
! if (current_driver->need_byteswap_on_be)
! rdpsnd_dsp_swapbytes(outbuffer, size, format);
! #endif
return outbuffer;
Index: rdpsnd_libao.c
===================================================================
RCS file: /cvsroot/rdesktop/rdesktop/rdpsnd_libao.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** rdpsnd_libao.c 17 Sep 2006 14:41:16 -0000 1.18
--- rdpsnd_libao.c 17 Sep 2006 15:25:10 -0000 1.19
***************
*** 244,247 ****
--- 244,248 ----
libao_driver.name = xstrdup("libao");
libao_driver.description = xstrdup("libao output driver");
+ libao_driver.need_byteswap_on_be = 0;
libao_driver.next = NULL;
Index: rdpsnd_oss.c
===================================================================
RCS file: /cvsroot/rdesktop/rdesktop/rdpsnd_oss.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** rdpsnd_oss.c 17 Sep 2006 11:42:22 -0000 1.23
--- rdpsnd_oss.c 17 Sep 2006 15:25:10 -0000 1.24
***************
*** 268,271 ****
--- 268,272 ----
oss_driver.description =
xstrdup("OSS output driver, default device: " DEFAULTDEVICE " or $AUDIODEV");
+ oss_driver.need_byteswap_on_be = 0;
oss_driver.next = NULL;
Index: rdpsnd_sgi.c
===================================================================
RCS file: /cvsroot/rdesktop/rdesktop/rdpsnd_sgi.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** rdpsnd_sgi.c 17 Sep 2006 11:42:22 -0000 1.12
--- rdpsnd_sgi.c 17 Sep 2006 15:25:10 -0000 1.13
***************
*** 32,38 ****
ALport output_port;
- static BOOL g_swapaudio;
static int g_snd_rate;
- static BOOL g_swapaudio;
static int width = AL_SAMPLE_16;
static char *sgi_output_device = NULL;
--- 32,36 ----
***************
*** 142,158 ****
#endif
- g_swapaudio = False;
if (pwfx->wBitsPerSample == 8)
width = AL_SAMPLE_8;
else if (pwfx->wBitsPerSample == 16)
- {
width = AL_SAMPLE_16;
- /* Do we need to swap the 16bit values? (Are we BigEndian) */
- #if (defined(B_ENDIAN))
- g_swapaudio = 1;
- #else
- g_swapaudio = 0;
- #endif
- }
/* Limited support to configure an opened audio port in IRIX. The
--- 140,147 ----
***************
*** 254,260 ****
ssize_t len;
unsigned int i;
- uint8 swap;
STREAM out;
- static BOOL swapped = False;
int gf;
--- 243,247 ----
***************
*** 270,285 ****
out = &packet->s;
- /* Swap the current packet, but only once */
- if (g_swapaudio && !swapped)
- {
- for (i = 0; i < out->end - out->p; i += 2)
- {
- swap = *(out->p + i);
- *(out->p + i) = *(out->p + i + 1);
- *(out->p + i + 1) = swap;
- }
- swapped = True;
- }
-
len = out->end - out->p;
--- 257,260 ----
***************
*** 294,298 ****
rdpsnd_send_completion(packet->tick, packet->index);
rdpsnd_queue_next();
- swapped = False;
}
else
--- 269,272 ----
***************
*** 323,326 ****
--- 297,301 ----
sgi_driver.name = xstrdup("sgi");
sgi_driver.description = xstrdup("SGI output driver");
+ sgi_driver.need_byteswap_on_be = 1;
sgi_driver.next = NULL;
Index: rdpsnd_sun.c
===================================================================
RCS file: /cvsroot/rdesktop/rdesktop/rdpsnd_sun.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** rdpsnd_sun.c 17 Sep 2006 11:42:22 -0000 1.19
--- rdpsnd_sun.c 17 Sep 2006 15:25:10 -0000 1.20
***************
*** 36,40 ****
static BOOL g_reopened;
- static BOOL g_swapaudio;
static short g_samplewidth;
static char *dsp_dev;
--- 36,39 ----
***************
*** 98,102 ****
ioctl(g_dsp_fd, AUDIO_DRAIN, 0);
- g_swapaudio = False;
AUDIO_INITINFO(&info);
--- 97,100 ----
***************
*** 109,118 ****
{
info.play.encoding = AUDIO_ENCODING_LINEAR;
- /* Do we need to swap the 16bit values? (Are we BigEndian) */
- #ifdef B_ENDIAN
- g_swapaudio = 1;
- #else
- g_swapaudio = 0;
- #endif
}
--- 107,110 ----
***************
*** 185,191 ****
ssize_t len;
unsigned int i;
- uint8 swap;
STREAM out;
- static BOOL swapped = False;
static BOOL sentcompletion = True;
static uint32 samplecnt = 0;
--- 177,181 ----
***************
*** 198,202 ****
/* Device was just (re)openend */
samplecnt = 0;
- swapped = False;
sentcompletion = True;
g_reopened = False;
--- 188,191 ----
***************
*** 212,227 ****
out = &packet->s;
- /* Swap the current packet, but only once */
- if (g_swapaudio && !swapped)
- {
- for (i = 0; i < out->end - out->p; i += 2)
- {
- swap = *(out->p + i);
- *(out->p + i) = *(out->p + i + 1);
- *(out->p + i + 1) = swap;
- }
- swapped = True;
- }
-
if (sentcompletion)
{
--- 201,204 ----
***************
*** 261,265 ****
rdpsnd_send_completion(packet->tick + 50, packet->index);
rdpsnd_queue_next();
- swapped = False;
sentcompletion = True;
}
--- 238,241 ----
***************
*** 288,291 ****
--- 264,268 ----
sun_driver.description =
xstrdup("SUN/BSD output driver, default device: " DEFAULTDEVICE " or $AUDIODEV");
+ sun_driver.need_byteswap_on_be = 1;
sun_driver.next = NULL;
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642