Re: ALSA implementation

2006-09-21 Thread Jan Zerebecki
On Mon, Sep 18, 2006 at 01:58:59AM +0200, Jan Zerebecki wrote:
> I explained in a different mail to this thread what bugs are in
> winealsa. (Archive link to that mail is:
> http://www.winehq.org/pipermail/wine-devel/2006-September/050826.html )

> It seems I just found out how to fix the other winealsa problem I
> mentioned in that mail, I'm currently testing if it works.

The intention is to get the same buffer size (in bytes) for different
formats, because dsound expects this (according to our dsound tests).

I tried with the attached patch but
snd_pcm_hw_params_set_buffer_size_near sets different than the
requested size and snd_pcm_hw_params_set_buffer_size doesn't work
at all. I don't know if this is because I am not familiar with
the api or because of a bug in it. Can anyone shed some light on
this who is more familiar with the alsa-lib api?


Jan

From: Jan Zerebecki <[EMAIL PROTECTED]>
Changelog:
winmm/winealsa: set buffer size
---

 dlls/winmm/winealsa/audio.c |   17 -
 1 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/dlls/winmm/winealsa/audio.c b/dlls/winmm/winealsa/audio.c
index 9eec364..d29e596 100644
--- a/dlls/winmm/winealsa/audio.c
+++ b/dlls/winmm/winealsa/audio.c
@@ -2334,10 +2334,8 @@ static DWORD wodOpen(WORD wDevID, LPWAVE
 snd_pcm_access_taccess;
 snd_pcm_format_tformat = -1;
 unsigned intrate;
-unsigned intbuffer_time = 50;
-unsigned intperiod_time = 1;
-snd_pcm_uframes_t   buffer_size;
-snd_pcm_uframes_t   period_size;
+snd_pcm_uframes_t   buffer_size = 48000;
+snd_pcm_uframes_t   period_size = 1024;
 int flags;
 int err=0;
 int dir=0;
@@ -2561,15 +2559,16 @@ #define EXIT_ON_ERROR(f,e,txt) do \
   wwo->format.Format.nChannels,
   getFormat(wwo->format.Format.wFormatTag));
 
-dir=0; 
-EXIT_ON_ERROR( snd_pcm_hw_params_set_buffer_time_near(pcm, hw_params, 
&buffer_time, &dir), MMSYSERR_INVALPARAM, "unable to set buffer time");
-dir=0; 
-EXIT_ON_ERROR( snd_pcm_hw_params_set_period_time_near(pcm, hw_params, 
&period_time, &dir), MMSYSERR_INVALPARAM, "unable to set period time");
+buffer_size = buffer_size / ( snd_pcm_format_physical_width(format) * 
wwo->format.Format.nChannels );
+snd_pcm_uframes_t   buffer_size_old = buffer_size;
+EXIT_ON_ERROR( snd_pcm_hw_params_set_buffer_size_near(pcm, hw_params, 
&buffer_size), MMSYSERR_INVALPARAM, "unable to set buffer size");
+dir=0;
+EXIT_ON_ERROR( snd_pcm_hw_params_set_period_size_near(pcm, hw_params, 
&period_size, &dir), MMSYSERR_INVALPARAM, "unable to set period time");
+if(buffer_size != buffer_size_old) ERR("buffer_size:%i 
buffer_size_old:%i\n", (int)buffer_size, (int)buffer_size_old);
 
 EXIT_ON_ERROR( snd_pcm_hw_params(pcm, hw_params), MMSYSERR_INVALPARAM, 
"unable to set hw params for playback");
 
 err = snd_pcm_hw_params_get_period_size(hw_params, &period_size, &dir);
-err = snd_pcm_hw_params_get_buffer_size(hw_params, &buffer_size);
 
 snd_pcm_sw_params_current(pcm, sw_params);
 EXIT_ON_ERROR( snd_pcm_sw_params_set_start_threshold(pcm, sw_params, 
dwFlags & WAVE_DIRECTSOUND ? INT_MAX : 1 ), MMSYSERR_ERROR, "unable to set 
start threshold");



Re: compiling wine for amd64

2006-09-21 Thread Neil Skrypuch
On Thursday, September 21, 2006 15:30, Gerald Britton wrote:
> Hi  --  I'm running ubuntu dapper on amd64.  I want to compile wine
> but am hitting problems.  I got the dependencies just fine, but the
> compile died.  Here's what I get:
>
> $ sudo apt-get -y --build source wine
> Reading package lists... Done
> Building dependency tree... Done
> Skipping the already downloaded file
> 'wine_0.9.21~winehq0~ubuntu~6.06-1.dsc' Skipping the already downloaded
> file
> 'wine_0.9.21~winehq0~ubuntu~6.06.orig.tar.gz'
> Skipping the already downloaded file
> 'wine_0.9.21~winehq0~ubuntu~6.06-1.diff.gz' Need to get 0B of source
> archives.
> Skipping unpack of already unpacked source in
> wine-0.9.21~winehq0~ubuntu~6.06 dpkg-buildpackage: source package is wine
> dpkg-buildpackage: source version is 0.9.21~winehq0~ubuntu~6.06-1
> dpkg-buildpackage: source changed by Scott Ritchie <[EMAIL PROTECTED]>
> dpkg-buildpackage: host architecture amd64
>  debian/rules clean
> dh_testdir
> dh_testroot
> rm -f build-stamp
> # Add here commands to clean up after the build process.
> /usr/bin/make distclean
> make[1]: Entering directory `/home/jerryb/wine-0.9.21~winehq0~ubuntu~6.06'
> make[1]: *** No rule to make target `distclean'.  Stop.
> make[1]: Leaving directory `/home/jerryb/wine-0.9.21~winehq0~ubuntu~6.06'
> make: [clean] Error 2 (ignored)
> #-/usr/bin/make -C documentation clean
> cp -f /usr/share/misc/config.sub config.sub
> cp -f /usr/share/misc/config.guess config.guess
> dh_clean
>  debian/rules build
> dh_testdir
> # Add here commands to configure the package.
> CFLAGS="-Wall -g -O2" ./configure --host=x86_64-linux-gnu
> --build=x86_64-linux-gnu --prefix=/usr --mandir=\${prefix}/share/man
> --infodir=\${prefix}/share/info
> checking build system type... x86_64-pc-linux-gnu
> checking host system type... x86_64-pc-linux-gnu
> checking whether make sets $(MAKE)... yes
> checking for x86_64-linux-gnu-gcc... gcc -m32
> checking for C compiler default output file name...
> configure: error: C compiler cannot create executables
> See `config.log' for more details.
> make: *** [config.status] Error 77
> Build command 'cd wine-0.9.21~winehq0~ubuntu~6.06 && dpkg-buildpackage
> -b -uc' failed.
> E: Child process failed
>
>
> I attached the config.log.  What must I do to complete the compiles?

You probably don't have any 32 bit emul libraries installed. See 
http://wiki.winehq.org/WineOn64bit for more details.

- Neil




Re: ALSA implementation

2006-09-21 Thread James Courtier-Dutton

Molle Bestefich wrote:

James Courtier-Dutton wrote:

I have not looked at the wine source code lately, but I would advise you
that it would be sensible to talk to the sound card at only the 48000 Hz
rate.



alsa-lib does do resampling currently, but it has some importance
constraints that I think are incompatible with wine. I would therefore
recommend that wine does it's own resampling to 48kHz before
passing sound to alsa-lib.


What are the constraints?


In time alsa will remove the resampling constraints present in alsa-lib,
but that fix is not expected any time soon.


Seems to me that it would take less development resources to fix an
existing resampling implementation with known restraints, than to code
a new one.  Also it would end up helping more people.

If someone from the Wine community wants to fix the existing ALSA
resampler, what needs to be done?


As most windows applications running on wine tend to use the 44.1kHz
rate, that will cause problems with the current alsa-lib. So, if wine
want windows games to work better with sound when using alsa-lib, I
would recommend wine doing the resampling.


What sound API is used on Mac OS X?
Does that API require Wine to do resampling, or do things work OOTB there?


The possible so called "fix" is still a long way off. It requires a lot 
of work. As there are only a few alsa developers, that means it will 
take a long time. We each have rather long TODO lists currently and 
would welcome any offer to help ALSA development. Resampling is not a 
simple problem to fix. The technically best solution is for the 
application to do the resampling before passing it to the sound card, so 
any effort to do it in the sound drivers is always going to be 
sub-optimal, with sound quality suffering. The current alsa method 
achieves resampling with minimal effort, but presents some constraints 
to the application. These "constraints" are only a problem for closed 
source applications. In order to reduce the "constraints" so that ALSA 
works better with wine will result in trade offs. I.e. better 
compatibility with binary only application, but increased sound latency 
due to the required extra double buffers.

I will document the "constraints" when I get a moment.

James











Re: WineD3D: glBlend* fixes

2006-09-21 Thread Jesse Allen

On 9/21/06, Roderick Colenbrander <[EMAIL PROTECTED]> wrote:

Hi,

This patch changes the detection extension detection for 
glBlendColor/glBlendEquation. The function glBlendColor is part of OpenGL 1.1 
and is supported on all OpenGL implementations. Officially it is part of the 
GL_ARB_imaging extension but not all vendors fully implement it and that's why 
only Nvidia and 3dlabs advertise it. This causes glBlendColor not to work on 
other implementations. So in case of GL 1.1, the detection is dropped.

Further glBlendEquation is part of GL_ARB_imaging aswell. For the same reason 
GL_ARB_imaging can't be used to detect glBlendEquation. This call isn't 
supported on all OpenGL implementations. Luckily it is part of 
'GL_EXT_blend_min_max' so that is used now.




Roderick, Mesa calls the extension "GL_EXT_blend_minmax", and so does
the spec. I don't know what exactly uses the min_max form. Is this a
typo?
http://www.opengl.org/registry/specs/EXT/blend_minmax.txt
http://www.google.com/search?hl=en&lr=&q=GL_EXT_blend_min_max&btnG=Search

Also, the TRACE call in device.c:4513 needs a \n added too ;)

Jesse




Re: Governance revisited (Wineconf report)

2006-09-21 Thread Jeff Latimer

Andreas Mohr wrote:


Why reinvent the wheel? If such people can spend their time chasing down the 
problem
and developing a fix for it, they sure can open a bug in bugzilla, describe 
theproblem
and attach a patch they made. How more simple can it be?

No patches lost, no extra places to look for. And all the information 
describing the
problem. Everything in one place.
   



And exactly this information should probably be stated in the wine-patches
subscription welcome mail.

"If for some reason the Wine patches you submit fail to get applied,
then we'd appreciate you taking the effort of submitting your current patch
as a new item at bugzilla to help us track your work properly until it's
fully applied."

 

The next question is how long does someone wait till resorting to 
Bugzilla.  Depending on the criteria it could generate a fair bit of 
noise in the database with a lot of patches that would normally be 
accepted after a couple of goes.  Who is responsible for clearing the 
bug report after acceptance?   Unless you are actually actively pushing 
the patch for acceptance, the submitter of a patch to Bugzilla would 
probably be unaware that it had been accepted.


Jeff Latimer




Re: Status of dlls that you maintain

2006-09-21 Thread Jeff Latimer

Tom Wickline wrote:


On 9/21/06, Jeff L <[EMAIL PROTECTED]> wrote:



BTW, the WWN #292 looks to be out of date as those functions are now
implemented. 



Hmm, Brian Vincent does the WWN and I just link the WWN articles to 
the status

pages..
Tom

Brian, I have successfully run Notes 7 on wine and the problems 
mentioned in WWN #292 have been fixed.


Jeff Latimer




Re: [c2man] remove hardcoded extension (try#2)

2006-09-21 Thread Kuba Ober
On Wednesday 20 September 2006 15:25, Vijay Kiran Kamuju wrote:
> Well then will this do good, if the file extension is 'spec', then we
> will take the default value as 'dll'.
> As the logic i am using to parse the filenames is, I am checking using
> the first part of the extension.
> Can you tell me a better method other than this?

Maybe he meant for you to use the file contentes to determine what it is, not 
the file name. Say, assume that file names are random gibberish, and work 
from there.

Cheers, Kuba




Re: ALSA implementation

2006-09-21 Thread Eric Pouech

Jan Zerebecki wrote:


On Wed, Sep 20, 2006 at 05:55:03PM +0200, Marcus Meissner wrote:
 


On Wed, Sep 20, 2006 at 05:54:06PM +0200, Tomas Carnecky wrote:
   


Jan Zerebecki wrote:
 


As explained in the mail refrenced above the main problem is that
in wine the alsa callback signal (that we currently use) won't
work properly without special care, but the fd based method (for
example with select) should work as expected. 
   

Why won't it work without special care? Is it because of the SIGIO 
signal? Wouldn't the fd-method require a separate thread?
 



It is because how (all) signals work and how wine works. The fd method
may not require a separate thread when we can combine the event loop of
the currently used sound thread with e.g. the select for the alsa-lib
fd(s), thu I didn't look at that and it might not be possible. 
 


this looks very possible to me... and likely the cleanest solution
in the event loop we only wait on a single item (the fd used for 
signaling a new event to be handled by the thread), so adding a poll on 
a second fd seems very feasible
(alternative coding with win32 objects is also possible, though a bit 
more trickier, but this could be dropped IMO, as it's currently broken 
-> on event is lost if two are pushed before the playback thread gets a 
chance to get them)






Re: ATI and GL_ARB_Imaging support

2006-09-21 Thread Roderick Colenbrander
This should indeed be changed. I quickly checked a GL extension database and it 
appears that mainly 3dlabs and Nvidia are advertising the extension. We could 
just drop the extension check as glBlendColor and friends are part of OpenGL 
1.1 or move to GL_EXT_blend_color and friends. I think dropping the check is 
fine. I need to ask some others, if it is fine I'll post a patch for it.

Roderick

> Hi all,
> 
> I noticed, that wine checks for GL_ARB_imaging, before performing
> operations like glBlendColor, glBlendEquation etc. However it appears
> that the ATI drivers do not support this extension, though they do
> support the blending operations.
> 
> I posted about this on the Rage3d linux driver boards, and the response
> seems to suggest that it would be better to check for the individual
> operations rather than the GL_ARB_imaging extension.
> 
> See bottom of http://rage3d.com/board/showthread.php?t=33814685
> 
> What do you guys think?
> 
> Kap.
> 
> 

-- 
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! 
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer




ATI and GL_ARB_Imaging support

2006-09-21 Thread Kapila De Silva
Hi all,

I noticed, that wine checks for GL_ARB_imaging, before performing
operations like glBlendColor, glBlendEquation etc. However it appears
that the ATI drivers do not support this extension, though they do
support the blending operations.

I posted about this on the Rage3d linux driver boards, and the response
seems to suggest that it would be better to check for the individual
operations rather than the GL_ARB_imaging extension.

See bottom of http://rage3d.com/board/showthread.php?t=33814685

What do you guys think?

Kap.





compiling wine for amd64

2006-09-21 Thread Gerald Britton

Hi  --  I'm running ubuntu dapper on amd64.  I want to compile wine
but am hitting problems.  I got the dependencies just fine, but the
compile died.  Here's what I get:

$ sudo apt-get -y --build source wine
Reading package lists... Done
Building dependency tree... Done
Skipping the already downloaded file 'wine_0.9.21~winehq0~ubuntu~6.06-1.dsc'
Skipping the already downloaded file
'wine_0.9.21~winehq0~ubuntu~6.06.orig.tar.gz'
Skipping the already downloaded file 'wine_0.9.21~winehq0~ubuntu~6.06-1.diff.gz'
Need to get 0B of source archives.
Skipping unpack of already unpacked source in wine-0.9.21~winehq0~ubuntu~6.06
dpkg-buildpackage: source package is wine
dpkg-buildpackage: source version is 0.9.21~winehq0~ubuntu~6.06-1
dpkg-buildpackage: source changed by Scott Ritchie <[EMAIL PROTECTED]>
dpkg-buildpackage: host architecture amd64
debian/rules clean
dh_testdir
dh_testroot
rm -f build-stamp
# Add here commands to clean up after the build process.
/usr/bin/make distclean
make[1]: Entering directory `/home/jerryb/wine-0.9.21~winehq0~ubuntu~6.06'
make[1]: *** No rule to make target `distclean'.  Stop.
make[1]: Leaving directory `/home/jerryb/wine-0.9.21~winehq0~ubuntu~6.06'
make: [clean] Error 2 (ignored)
#-/usr/bin/make -C documentation clean
cp -f /usr/share/misc/config.sub config.sub
cp -f /usr/share/misc/config.guess config.guess
dh_clean
debian/rules build
dh_testdir
# Add here commands to configure the package.
CFLAGS="-Wall -g -O2" ./configure --host=x86_64-linux-gnu
--build=x86_64-linux-gnu --prefix=/usr --mandir=\${prefix}/share/man
--infodir=\${prefix}/share/info
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking whether make sets $(MAKE)... yes
checking for x86_64-linux-gnu-gcc... gcc -m32
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.
make: *** [config.status] Error 77
Build command 'cd wine-0.9.21~winehq0~ubuntu~6.06 && dpkg-buildpackage
-b -uc' failed.
E: Child process failed


I attached the config.log.  What must I do to complete the compiles?


config.log
Description: Binary data



Re: msi [6/7]: Translate the INSTALLSTATE_UNKNOWN index into the INSTALLSTATE_ABSENT image index

2006-09-21 Thread James Hawkins

On 9/20/06, Juan Lang <[EMAIL PROTECTED]> wrote:

Hiya James,

-TRACE("Feature %s -> %d %d %d\n", debugstr_w(feature->Title),
+printf("Feature %s -> %d %d %d\n", debugstr_w(feature->Title),

I don't think you meant that to slip in.



Thanks for catching this Juan.  I even said to myself, "Don't forget
to put the TRACE back"!

--
James Hawkins




Re: Text Layout Summit

2006-09-21 Thread Jeff Latimer

Daniel Glassey wrote:


It would be great if someone from wine and mono could be there. If that
wouldn't be possible we would appreciate your input on what you would need.
 

Daniel, your not entirely correct.  We have some uniscribe support in 
wine and it is improving however a clearer architecture would be great.


Jeff Latimer




Re: Governance revisited (Wineconf report)

2006-09-21 Thread Dr J A Gow
Andreas Mohr wrote:

> And exactly this information should probably be stated in the wine-patches
> subscription welcome mail.
> 
> "If for some reason the Wine patches you submit fail to get applied,
> then we'd appreciate you taking the effort of submitting your current patch
> as a new item at bugzilla to help us track your work properly until it's
> fully applied."
> 
> Or, for improved visibility, even state this in the footer of every 
> wine-patches mail
> sent (probably bad idea, though).
> 
> Oh, and a DNS alias (or preferrably forwarder) bugzilla.winehq.org might be
> useful (after all it's quite common to have that site name, see e.g.
> bugzilla.kernel.org or bugzilla.mozilla.org etc.).
> 

This would be an excellent idea - it would simply highlight the fact that there
is an alternative route to providing visibility for patches that are not
accepted. I must admit I had always thought of bugzilla as a bug-reporting
mechanism and I hadn't thought of using it in this manner: to open a bug
specifically in order to present your own fix!

John.




Re: gdi32: GetTextExtentPoint and GetTextExtentExPoint behavedifferently if there's a \n in the string.

2006-09-21 Thread Huw Davies
On Thu, Sep 21, 2006 at 06:09:10PM +0900, Dmitry Timoshkov wrote:
> I accidently left 2 tests in my comment, that may have been misleading.
> Just to clarify things: an actual test which fails for me is the one in
> the todo_wine block.

Yup, I guessed that's what you meant.  I've just sent a patch which
removes that test.

Thanks,
Huw.
-- 
Huw Davies
[EMAIL PROTECTED]




Re: gdi32: GetTextExtentPoint and GetTextExtentExPoint behavedifferently if there's a \n in the string.

2006-09-21 Thread Dmitry Timoshkov

"Huw Davies" <[EMAIL PROTECTED]> wrote:


>+todo_wine {
>+/* The \n in the string is apparently handled differently in 
>GetTextExtentPoint and GetTextExtentExPoint */

>+ok(sz1.cx != sz2.cx,
>+   "cx from GetTextExtentExPointW (%ld) and GetTextExtentPointW (%ld) 
>are the same\n", sz1.cx, sz2.cx);

>+ }

This test fails for me (i.e. sz1.cx == sz2.cx) under XP (SP2+all the latest 
fixes).


Thanks, guess I'll just get rid of that test altogether then.


I accidently left 2 tests in my comment, that may have been misleading.
Just to clarify things: an actual test which fails for me is the one in
the todo_wine block.

--
Dmitry.




Re: gdi32: GetTextExtentPoint and GetTextExtentExPoint behavedifferently if there's a \n in the string.

2006-09-21 Thread Huw Davies
On Thu, Sep 21, 2006 at 01:34:09PM +0900, Dmitry Timoshkov wrote:
> "Huw Davies" <[EMAIL PROTECTED]> wrote:
> 
> >-ok(sz1.cx == sz2.cx && sz1.cy == sz2.cy,
> >-   "results from GetTextExtentExPointW and GetTextExtentPointW 
> >differ\n");
> >+ok(sz1.cy == sz2.cy,
> >+   "cy from GetTextExtentExPointW (%ld) and GetTextExtentPointW (%ld) 
> >differ\n", sz1.cy, sz2.cy);
> >+todo_wine {
> >+/* The \n in the string is apparently handled differently in 
> >GetTextExtentPoint and GetTextExtentExPoint */
> >+ok(sz1.cx != sz2.cx,
> >+   "cx from GetTextExtentExPointW (%ld) and GetTextExtentPointW (%ld) 
> >are the same\n", sz1.cx, sz2.cx);
> >+ }
> 
> This test fails for me (i.e. sz1.cx == sz2.cx) under XP (SP2+all the latest 
> fixes).

Thanks, guess I'll just get rid of that test altogether then.

Huw.
-- 
Huw Davies
[EMAIL PROTECTED]




Re: Governance revisited (Wineconf report)

2006-09-21 Thread Andreas Mohr
Hi,

On Wed, Sep 20, 2006 at 08:52:45PM -0600, Vitaliy Margolen wrote:
> Dr J A Gow wrote:
> > How to capture these 'lost' contributions is a difficult issue. Maybe a
> > centralized repository for patches could be maintained separate from the 
> > main
> > Wine tree and with a very loose method of acceptance (maybe just ensure 
> > that it
> > is clearly indicated what the patch is for and what version it can be 
> > applied
> > to). This way it would be very easy for a contributor to place a patch 
> > somewhere
> > where it is easily accessed by the community. A developer with more time 
> > who is
> > interested in it may pick it up and clean it up for inclusion in the tree, 
> > but
> > at least the patch is available for others to use, saving re-invention of 
> > the wheel.
> > 
> Why reinvent the wheel? If such people can spend their time chasing down the 
> problem
> and developing a fix for it, they sure can open a bug in bugzilla, describe 
> theproblem
> and attach a patch they made. How more simple can it be?
> 
> No patches lost, no extra places to look for. And all the information 
> describing the
> problem. Everything in one place.

And exactly this information should probably be stated in the wine-patches
subscription welcome mail.

"If for some reason the Wine patches you submit fail to get applied,
then we'd appreciate you taking the effort of submitting your current patch
as a new item at bugzilla to help us track your work properly until it's
fully applied."

Or, for improved visibility, even state this in the footer of every 
wine-patches mail
sent (probably bad idea, though).

Oh, and a DNS alias (or preferrably forwarder) bugzilla.winehq.org might be
useful (after all it's quite common to have that site name, see e.g.
bugzilla.kernel.org or bugzilla.mozilla.org etc.).

Andreas

-- 
GNU/Linux. It's not the software that's free, it's you.




Re: ALSA implementation

2006-09-21 Thread Molle Bestefich

James Courtier-Dutton wrote:

I have not looked at the wine source code lately, but I would advise you
that it would be sensible to talk to the sound card at only the 48000 Hz
rate.



alsa-lib does do resampling currently, but it has some importance
constraints that I think are incompatible with wine. I would therefore
recommend that wine does it's own resampling to 48kHz before
passing sound to alsa-lib.


What are the constraints?


In time alsa will remove the resampling constraints present in alsa-lib,
but that fix is not expected any time soon.


Seems to me that it would take less development resources to fix an
existing resampling implementation with known restraints, than to code
a new one.  Also it would end up helping more people.

If someone from the Wine community wants to fix the existing ALSA
resampler, what needs to be done?


As most windows applications running on wine tend to use the 44.1kHz
rate, that will cause problems with the current alsa-lib. So, if wine
want windows games to work better with sound when using alsa-lib, I
would recommend wine doing the resampling.


What sound API is used on Mac OS X?
Does that API require Wine to do resampling, or do things work OOTB there?