*dlls/winmm/winearts, arts.c, arts.h, audio.c, winearts.drv.spec, Makefile.in: Chris Morgan cmorgan@alum.wpi.edu Added aRts driver to wine
*configure, configure.ac, dlls/Makefile.in, include/config.h.in, dlls/dsound/dsound_main.c, documentation/samples/config: Chris Morgan cmorgan@alum.wpi.edu Changes for aRts driver, added commented out entry to WinMM section of sample config file, added configure time checks for artsc support.
Fixed since the last patch thanks to Erics mail: - Stream now closed correctly, doh - Cleanups - Volume code handles mono/stereo 8/16 bit - Configure stuff is now no longer hardcoded
License is LGPL because I like Gavriel's code exchange idea and think it holds promise as a partial solution to license issues.
Again, comments about the patch are appreciated.
Thanks, Chris
Again, comments about the patch are appreciated.
you asked for it ;-)
- volume_effect8 is bogus. 8 bit samples range from 0 to 255 not -32768 to +32767 - as an optimization, you could + not alloc and fill the output buffer in each call to wodPlayer_WriteMaxFrags, but rather have a buffer ready for the currently played wavehdr, and fill this buffer only when the wavehdr advances + this would also to check whether the buffer can be reused for the next wavehdr instead of a free/alloc pair + IMO, it would be better also to pass the buffer to the volume conversion routine and to fill this buffer at once with the volume conversion
A+
Heh. My bad on the 8 bit range check... I thought about changing that and forgot about it. I'll add some code to optimize the memory allocation as well as have the volume routine do the copying as that should save some memory writes. I'll resubmit to wine-patches tonight if those are the only issues you see thus far.
Thanks, Chris
On Tue, 19 Mar 2002, Eric Pouech wrote:
Again, comments about the patch are appreciated.
you asked for it ;-)
- volume_effect8 is bogus. 8 bit samples range from 0 to 255 not -32768 to +32767
- as an optimization, you could
- not alloc and fill the output buffer in each call to wodPlayer_WriteMaxFrags, but rather have a buffer ready for the currently played wavehdr, and fill this buffer only when the wavehdr advances
- this would also to check whether the buffer can be reused for the next wavehdr instead of a free/alloc pair
- IMO, it would be better also to pass the buffer to the volume conversion routine and to fill this buffer at once with the volume conversion
A+
is this in CVS now ?
--- Eric Pouech eric.pouech@wanadoo.fr a écrit : >
Again, comments about the patch are appreciated. you asked for it ;-)
- volume_effect8 is bogus. 8 bit samples range from
0 to 255 not -32768 to +32767
- as an optimization, you could
- not alloc and fill the output buffer in each call
to wodPlayer_WriteMaxFrags, but rather have a buffer ready for the currently played wavehdr, and fill this buffer only when the wavehdr advances
- this would also to check whether the buffer can
be reused for the next wavehdr instead of a free/alloc pair
- IMO, it would be better also to pass the buffer
to the volume conversion routine and to fill this buffer at once with the volume conversion
A+
___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com
unsubsribe
Hi
Again, comments about the patch are appreciated.
Thanks, Chris
I am using the patch you submitted tuesday to wine-patches(the latest). I have kde 2.2.2 with the latest cvs wine installed.(+arts patch). I just tried to run it with half-life and planescape:torment.
Planescape: Torment: No sound at all.
Half-life: I didnt hear any sound at all. artscontrol didnt show any volume either. The driver doesnt crash wine though when opening and closing the waveout device in directsound. Here is some trace with trace+dsound
mcop warning: user defined signal handler found for SIG_PIPE, overriding fixme:animate:ANIMATE_Play Already playing ? what should I do ?? fixme:animate:ANIMATE_Play Already playing ? what should I do ?? fixme:animate:ANIMATE_Play Already playing ? what should I do ?? fixme:animate:ANIMATE_Play Already playing ? what should I do ?? trace:dsound:DirectSoundCreate DirectSoundCreate (0x466d7710) This sound card's driver does not support direct access The (slower) DirectSound HEL mode will be used instead. trace:dsound:DSOUND_callback entering at 12041, msg=000003bb trace:dsound:DSOUND_callback completed trace:dsound:IDirectSoundImpl_CreateSoundBuffer (0x403e70d8,0x405746a0,0x476d75a8,(nil)) trace:dsound:IDirectSoundImpl_CreateSoundBuffer (structsize=20) trace:dsound:IDirectSoundImpl_CreateSoundBuffer (flags=0x00000001: DSBCAPS_PRIMARYBUFFER ) trace:dsound:IDirectSoundImpl_CreateSoundBuffer (bufferbytes=0) trace:dsound:IDirectSoundImpl_CreateSoundBuffer (lpwfxFormat=0x403e744c) trace:dsound:IDirectSoundImpl_CreateSoundBuffer (formattag=0x0001,chans=2,samplerate=22050,bytespersec=44100,blockalign=2,bitspersamp=8,cbSize=23737) trace:dsound:IDirectSoundImpl_CreateSoundBuffer Created buffer at 0x403e7b38 trace:dsound:DSOUND_PrimaryOpen desired buflen=21120, old buffer=(nil) trace:dsound:DSOUND_PrimaryOpen fraglen=440 trace:dsound:DSOUND_WaveQueue queueing 5 buffers, starting at 0 trace:dsound:DSOUND_RecalcVolPan left = 10000, right = 10000 trace:dsound:IDirectSoundBufferImpl_AddRef (0x403e7b38) ref was 1, thread is 806ff90 trace:dsound:IDirectSoundImpl_GetCaps (0x403e70d8,0x40574708) trace:dsound:IDirectSoundImpl_GetCaps (flags=0x4737dad0) fixme:dsound:IDirectSoundImpl_SetCooperativeLevel (0x403e70d8,00030049,1):stub trace:dsound:IDirectSoundImpl_Release (0x403e70d8), ref was 2 trace:dsound:DSOUND_timer entered trace:dsound:DSOUND_PerformMix entering at 12073 trace:dsound:DSOUND_PerformMix primary playpos=0, writepos=0, clrpos=0, mixpos=0 trace:dsound:DSOUND_CheckReset premix adjust: 28 trace:dsound:DSOUND_MixToPrimary (0,0,12320) trace:dsound:DSOUND_PerformMix completed processing at 12073 trace:dsound:DSOUND_timer entered trace:dsound:DSOUND_PerformMix entering at 12093 trace:dsound:DSOUND_PerformMix primary playpos=0, writepos=0, clrpos=0, mixpos=0 trace:dsound:DSOUND_CheckReset premix adjust: 28 trace:dsound:DSOUND_MixToPrimary (0,0,12320) trace:dsound:DSOUND_PerformMix completed processing at 12093 trace:dsound:DSOUND_timer entered trace:dsound:DSOUND_PerformMix entering at 12093 trace:dsound:DSOUND_PerformMix primary playpos=0, writepos=0, clrpos=0, mixpos=0 trace:dsound:DSOUND_CheckReset premix adjust: 28 trace:dsound:DSOUND_MixToPrimary (0,0,12320) trace:dsound:DSOUND_PerformMix completed processing at 12093 trace:dsound:DSOUND_timer entered trace:dsound:DSOUND_PerformMix entering at 12113 trace:dsound:DSOUND_PerformMix primary playpos=0, writepos=0, clrpos=0, mixpos=0 trace:dsound:DSOUND_CheckReset premix adjust: 28 trace:dsound:DSOUND_MixToPrimary (0,0,12320) trace:dsound:DSOUND_PerformMix completed processing at 12113 trace:dsound:DSOUND_timer entered trace:dsound:DSOUND_PerformMix entering at 12113 trace:dsound:DSOUND_PerformMix primary playpos=0, writepos=0, clrpos=0, mixpos=0 trace:dsound:DSOUND_CheckReset premix adjust: 28 trace:dsound:DSOUND_MixToPrimary (0,0,12320) trace:dsound:DSOUND_PerformMix completed processing at 12113 trace:dsound:DSOUND_timer entered trace:dsound:DSOUND_PerformMix entering at 12133 trace:dsound:DSOUND_PerformMix primary playpos=0, writepos=0, clrpos=0, mixpos=0 trace:dsound:DSOUND_CheckReset premix adjust: 28 trace:dsound:DSOUND_MixToPrimary (0,0,12320) trace:dsound:DSOUND_PerformMix completed processing at 12133 trace:dsound:DSOUND_timer entered trace:dsound:DSOUND_PerformMix entering at 12133 trace:dsound:DSOUND_PerformMix primary playpos=0, writepos=0, clrpos=0, mixpos=0 trace:dsound:DSOUND_CheckReset premix adjust: 28 trace:dsound:DSOUND_MixToPrimary (0,0,12320) trace:dsound:DSOUND_PerformMix completed processing at 12133 trace:dsound:DSOUND_timer entered trace:dsound:DSOUND_PerformMix entering at 12153 trace:dsound:DSOUND_PerformMix primary playpos=0, writepos=0, clrpos=0, mixpos=0 trace:dsound:DSOUND_CheckReset premix adjust: 28 trace:dsound:DSOUND_MixToPrimary (0,0,12320) trace:dsound:DSOUND_PerformMix completed processing at 12153 trace:dsound:DSOUND_timer entered trace:dsound:DSOUND_PerformMix entering at 12153 trace:dsound:DSOUND_PerformMix primary playpos=0, writepos=0, clrpos=0, mixpos=0 trace:dsound:DSOUND_CheckReset premix adjust: 28 trace:dsound:DSOUND_MixToPrimary (0,0,12320) trace:dsound:DSOUND_PerformMix completed processing at 12153
and so on and so on
if you want more info or tests count me on. Enrico farmboy1@subdimension.com
Hi, trying the aRts driver under kde gives me very good results !
I used it successfully under :
- Dark Reign The Future of War 1.0 - Monster Truck Madness - Quake III Arena
___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com