Commit Graph

110 Commits

Author SHA1 Message Date
Ove Kaaven 9fd3538b45 Tweaks to improve playback performance and reduce sound glitches:
- wodGetPosition does not send an update message to the player thread;
this reduces the accuracy of the readout from byte-accuracy to near
fragment-accuracy, but we save 2-4 context switches and kernel
scheduling penalties.
- if FeedDSP runs out of data, do not flush output buffers before
notifications are sent and given the chance to provide more sound data.
Do not flush before we're down to the last fragment.
- messages to the player thread are signaled using Unix pipes instead
of Win32 synchronization primitives, to avoid having the player thread
wait for the wineserver (and context switches from/to it) before the
it can feed more data to the sound card.
- ring buffer size is increased from 30 to 192 to support some games
that fires 128 messages at once to determine DMA buffer size.
2002-08-26 21:49:42 +00:00
Patrik Stridvall d016f819f1 Added include protection for unistd.h and sys/time.h. 2002-08-17 00:43:16 +00:00
Michael Stefaniuc ec7d7b72b2 - Convert HDRVR to a void*.
- Fix declaration of DriverCallback().
2002-08-09 01:02:25 +00:00
Eric Pouech d075eff2e9 Ensured full duplex mode is only used with same parameters in in/out
streams.
Some more work towards multiple audio cards support.
2002-06-28 17:31:31 +00:00
Alexandre Julliard 77afd6c47e Made some more spec file entries optional or unnecessary.
Fixed a few DLLName/DLLFileName mismatches.
2002-06-21 19:15:45 +00:00
Vincent Béron 9a62491660 Removed trailing whitespace. 2002-05-31 23:06:46 +00:00
Patrik Stridvall 5e6943f421 Fixed some issues found by winapi_check. 2002-05-22 01:55:18 +00:00
Alexandre Julliard 2ab7625934 Removed most imports of ntdll since we no longer import Wine internal
functions from there.
2002-05-17 03:37:12 +00:00
Alexandre Julliard ad53383f9b Added winebuild support for generating a .dbg.c file containing the
debug channels definitions.
Made win32 the default type for spec files.
Ignore C compiler in winebuild so we can simply pass it $(DEFS).
Removed type win32 and debug_channels from spec files.
Fixed winebuild to always generate correct C identifiers (reported by
Vincent Béron).
2002-05-14 20:54:58 +00:00
Alexandre Julliard 67371bcc8d Added -res option to specify resources on winebuild command-line.
Added -exe mode to generate a .spec.c for an exe without having to
provide a .spec.
Removed some no longer needed spec files.
Removed .dll extension in makefiles import specifications.
2002-05-11 23:06:32 +00:00
Alexandre Julliard 32459912dc Moved imports specification from the .spec into the Makefile so that
it can be used on platforms that don't build a .spec.c file.
2002-05-09 00:05:48 +00:00
Eric Pouech 90b71b5191 Fixed multi-thread access to local variables (mainly fd for
/dev/dsp).
God rid of obsolete macro.
Fixed some slight init issues.
2002-04-22 22:35:30 +00:00
Eric Pouech a1e57324e4 More robust and less time consuming playback. 2002-04-01 21:02:49 +00:00
Alexandre Julliard 0799c1a780 Added LGPL standard comment, and copyright notices where necessary.
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Patrik Stridvall 74e4d21ebe Avoid wildcards in .cvsignore. 2002-01-29 03:05:12 +00:00
Andreas Mohr bfbe3b5c62 Fixed ==/!= mismatch. 2002-01-29 02:56:50 +00:00
Francois Gouget 54697dd302 Print the strerror instead of just the errno. 2002-01-21 18:00:42 +00:00
Eric Pouech 738669a709 Fixed the wodReset implementation, internal messages priority, full
duplex code, wait algorithm for feeding the OSS buffer.
2002-01-12 21:15:08 +00:00
Eric Pouech d547450b35 Added full-duplex capability.
Added missing init for wave-in.
Fixed pause behavior in wave-out.
Added message-ring deletion.
Added experimental full-duplex capability.
2001-12-21 20:28:43 +00:00
Eric Pouech 37083176e8 Thawed some freezes.
Cleaned up time and notification handling.
Typos fixes (Gerard).
Added breakloop support.
2001-12-14 22:44:29 +00:00
Simon Britnell 5ba7438df1 Fix a loop playing failure and a problem with choppy sound. 2001-11-19 02:10:50 +00:00
Eric Pouech fa7a8c6306 Fixed some race conditions in notification vs. operation
synchronization using the same in process message ring in waveIn as in
waveOut.
2001-11-12 15:55:37 +00:00
Simon Britnell 78bae03241 Cleaned up the wodPlayer functionality to make it easier to follow.
Changed notification to be calculated from bytes played rather than
time elapsed.
2001-11-09 20:26:59 +00:00
François Gouget 1425941e29 Fix the #include order for config.h.
Add #include "config.h" directives where needed.
2001-11-06 20:57:11 +00:00
Eric Pouech 2f9eb3b0cb Fixed dst / src lines implementation.
Added mux/mixer control for master rec.
Added framework for multiple mixers.
2001-11-05 23:53:48 +00:00
Francois Gouget 3bb9a36ee0 Spelling, grammar and a bit of comment formatting fixes. 2001-10-22 19:04:32 +00:00
Francois Gouget 588ff3743a Documentation updates (mainly thru vs. through). 2001-08-21 17:07:17 +00:00
Eric Pouech 96c514bdf8 Replaced memset by hand made equivalent to work around some buggy
memset implementations.
2001-08-18 16:09:41 +00:00
Alexandre Julliard 1922c72b8a Removed unnecessary inclusion of heap.h. 2001-07-25 00:43:29 +00:00
Patrik Stridvall 044855c6ec Documentation fixes. 2001-07-11 18:56:41 +00:00
Patrik Stridvall 01d5e5b071 Documentation fixes. 2001-07-02 19:59:40 +00:00
Huw D M Davies 738e2461f0 Attempt to write fragments and check whether we can notify the client
after every message.
2001-05-29 20:52:23 +00:00
Francois Gouget e76218dd61 Add '\n' at the end of traces. 2001-05-09 17:31:31 +00:00
Bang Jun-Young d52e89ac36 Call OSS_MidiInit() only if HAVE_OSS_MIDI is defined. 2001-05-07 18:16:57 +00:00
Bang Jun-Young 31031abaa1 Include missing errno.h. 2001-05-07 18:16:38 +00:00
James Hatheway 8290c3e1e7 Make sure to return our variable with the correct return value. 2001-04-20 18:28:38 +00:00
Eric Pouech 7a3ec5d705 Fixed some buffers issue in recording.
Zeroed unnecessary second parameter for WIM_DATA notification.
2001-04-13 22:26:51 +00:00
Ove Kaaven e746f665ef Show an error if small enough fragment sizes couldn't be set.
Force a complete close/reopen of the sound device if pause is
requested in DirectSound mode (many drivers require this).
2001-03-21 03:37:33 +00:00
Andreas Mohr 8c2f4b18fa Some more message cleanups. 2001-03-03 00:22:50 +00:00
Andreas Mohr 1ea771c218 Don't touch WAVEHDRs dwLoops variable. 2001-02-12 01:24:18 +00:00
Patrik Stridvall d5f824b482 Fixed some issues found by winapi_check. 2001-01-25 22:23:08 +00:00
Huw D M Davies 53cb7cecc5 Fix off by one error in buffer length check. 2001-01-18 20:29:41 +00:00
Alexandre Julliard d8e9a09d9b Removed unnecessary headers. 2001-01-15 20:22:30 +00:00
Eric Pouech ad250aac34 Now using manifest constant instead of raw values for all the
DRV_QUERY??? values.
2001-01-04 19:53:51 +00:00
Marcus Meissner f7e09367bf Set fragments for wave input to 7 x 1024 byte. 2001-01-04 19:28:14 +00:00
Marcus Meissner 7a01b38321 Read 4 bytes to wake up GETISPACE. 2001-01-02 20:32:33 +00:00
Ulrich Weigand d34bc744f8 Compile fix if HAVE_OSS is not defined. 2000-12-27 18:43:30 +00:00
Marcus Meissner eba8cee584 Handle errors for IDsDriver_GetPosition.
Report DSERR_UNINITIALIZED on non-opened WineOSS audio device.
2000-12-21 20:49:26 +00:00
Ove Kaaven 96f9a8d609 Enable the DirectSound HAL for sound drivers that do not report
DSP_CAP_REALTIME. Set precision of these to 256 bytes (about 3ms).
2000-12-21 20:20:34 +00:00
François Gouget 44a182229b winuser.h now requires that we include winbase.h first. 2000-12-19 04:53:20 +00:00