Commit Graph

252 Commits

Author SHA1 Message Date
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Christian Costa 4b40180e38 Fix modLongData.
Enable opening of MOD_SYNTH type devices.
Add some comments.
2003-09-04 00:04:37 +00:00
Robert Reif 7d43d7bb3b Use the drivers to get device capabilities and property sets. 2003-09-03 19:28:20 +00:00
Mike Hearn 61402c64de Fixed the error message in Wave(In|Out)Init, it used to give a
confusing message, now uses strerror.
2003-08-29 22:12:15 +00:00
Robert Reif a9460b3dbe Use same GUIDs as win2k and xp for dsound drivers. 2003-07-28 19:02:29 +00:00
Francois Gouget 14a5d168e9 Fixed some common spelling errors. 2003-07-02 04:37:26 +00:00
Francois Gouget c5f775a9c7 Typos/spelling fixes. 2003-06-18 03:30:39 +00:00
Robert Reif a104d91ce8 Added a dynamically growing ring buffer for oss, alsa, arts, and nas. 2003-06-04 20:28:04 +00:00
Eric Pouech 639db3ef8b Stop wavemap lookup if a device isn't functional (spotted by Lionel
Ulmer).
2003-05-11 03:30:51 +00:00
Marcus Meissner dac51c005a Added include <errno.h>. 2003-05-06 18:25:11 +00:00
Robert Reif bcfff87be5 Added driver property set implementation.
Fixed notify release bug.
2003-05-02 20:16:20 +00:00
Robert Reif aa8559e84a Fixed a problem where OSS trigger support is inconsistent. 2003-04-29 22:54:09 +00:00
Robert Reif 144d7f5da2 Added driver notify implementation. 2003-04-29 22:47:59 +00:00
Robert Reif f64f69abe7 Fixed bug caused by OSS inconsistent trigger operation on different
hardware.
2003-04-26 02:09:20 +00:00
Robert Reif 303d93680d Better error messages. 2003-04-10 18:33:46 +00:00
Alexandre Julliard c2ebe1ff93 Removed uses of the non standard ICOM_VTBL macro. 2003-04-10 18:17:34 +00:00
Eric Pouech f5554c3236 Work around not implemented ioctl in BSD. 2003-04-05 05:09:57 +00:00
Alexandre Julliard 7c7bd1c359 Avoid warnings. 2003-03-17 00:00:53 +00:00
Alexandre Julliard 3453746aa1 Added #ifdef checks for SOUND_MIXER_INFO. 2003-03-15 22:23:27 +00:00
Robert Reif 89b469fefe Added support for multiple direct sound devices. 2003-03-15 00:54:11 +00:00
Robert Reif a20f86fc7b Fixed bug where the enable state of the output and input were not set
properly when doing full duplex.
Fixed bug where resetting the output would affect the capture when
doing full duplex.
2003-03-07 20:37:25 +00:00
Robert Reif f851a860fc Capture thread checks queue for more headers before giving error.
Capture driver work started.
2003-03-04 02:11:21 +00:00
Robert Reif bcc4bb2d06 Started to add support for a real direct sound capture driver.
Changed the capture fragment size but this still needs tuning for best
performance.
2003-02-14 23:59:15 +00:00
Alexandre Julliard f8aa3b506c Added -Wpointer-arith gcc flag, and fixed the resulting warnings. 2003-01-23 21:32:35 +00:00
Francois Gouget 9140349886 Warn if open_count is already 0 when OSS_CloseDevice is called.
Don't decrement it in that case.
2003-01-16 01:16:46 +00:00
Francois Gouget 2147b9f5da Return MMSYS_NOERROR even if we don't open the device with the
requested format, otherwise OSS_OpenDevice will not increment
open_count.
Use -1 to signal OSS_RawOpenDevice not to do ioctls because 0 is
ambiguous (also means mono as opposed to stereo).
2003-01-16 00:19:04 +00:00
Francois Gouget 6bbce6cd22 Initialize the pwave array whenever we don't have a hardware buffer.
Always create the wineoss thread.
Change the mmap ERR into a TRACE: there are normal circumstances where
mmap will fail and we can deal with them.
2003-01-15 00:44:50 +00:00
Francois Gouget ce0557fe8e Modify OSS_Wave{In,Out}Init to report the exact capabilities of the
OSS driver.
Add support for the 48kHz and 96kHz formats.
2003-01-11 22:47:51 +00:00
Francois Gouget ede0e8ae64 In OSS_RawOpenDevice, always retrieve the device format and store it
in the OSS_DEVICE structure.
Modify our internal functions so that they can be told to still open
the device even if the device format is not an exact match.
In wodOpen return the actual device format if the WAVE_DIRECTSOUND
flag is set.
Fixes DirectSound on i810 soundcards (i.e. cards supporting only
48000x16x2).
2003-01-07 23:08:05 +00:00
Dimitrie O. Paun 297f3d898d Define NONAMELESS{STRUCT,UNION} explicitly in the files that need them. 2003-01-07 20:36:20 +00:00
Francois Gouget 772cabeba9 Fix the BlockSize check. 2003-01-07 19:43:02 +00:00
Jeff Smith b9f0fce668 Correct all instances of mixMessage to mxdMessage. 2002-12-23 02:05:30 +00:00
Eric Pouech 59227d6b80 Fixed hangup condition at the end of some playback. 2002-12-15 02:59:13 +00:00
Francois Gouget e4eee61a3d If unable to set the desired format, OSS_RawOpenDevice should call
TRACE, not ERR.
2002-12-15 01:12:47 +00:00
Jeff Smith f88d00a25d MMDRV_GetDescription32 fix + a few cosmetic improvements. 2002-12-12 22:26:01 +00:00
Chris Morgan 50bd40c775 Reset the oss device before we try to close it. Fixes hang on startup
of Starcraft due to oss device being in a bad state.
2002-12-10 19:06:51 +00:00
Eric Pouech f086286d4f Better support for multiple midi devices on the OSS interface. 2002-11-20 19:46:35 +00:00
Francois Gouget ffd98e9c59 OSS_RawOpenDevice should return an error if the format is not
supported.
2002-11-04 22:39:19 +00:00
Alexandre Julliard b34fb35b31 Fixed warnings caused by conversion to -DSTRICT. 2002-10-18 23:48:57 +00:00
Eric Pouech 580235504d Fixed some multi-sound card related bugs. 2002-10-09 20:37:09 +00:00
Alexandre Julliard 6ac4da7efb Fixed file descriptor corruption. 2002-10-09 18:15:05 +00:00
Eric Pouech dcb44969b9 Added support for several soundcard.
Remove non full duplex mode in code.
OSS Commercial doesn't properly handle SNDCTL_DSP_RESET, so close/open
device to workaround this issue (by Ove Kaaven).
2002-10-07 18:23:40 +00:00
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
Alexandre Julliard db0747d095 Removed some unnecessary includes.
Got rid of ldt.h.
2000-12-13 20:23:41 +00:00
Andreas Mohr 1af53cbb2a - README update
- add offsets to ASPI struct defines
- spelling
2000-12-09 03:15:32 +00:00
David Elliott ea186796eb Remove libXXXX.so.1.0 lines from .cvsignore files. 2000-11-30 19:57:34 +00:00
Dimitrie O. Paun 529da54394 Require {DECLARE,DEFAULT}_DEBUG_CHANNEL statements to end in a ; 2000-11-27 23:54:25 +00:00
Marcus Meissner c7dd25420e WARN() about missing /dev/sequencer, it's too confusing for newbies. 2000-11-27 23:01:10 +00:00
Dimitrie O. Paun 5298812be1 Make sure all files using config.h constants actually #include "config.h" 2000-11-26 04:04:21 +00:00
Stephane Lussier cb2abbc2d3 - Read all the fragments available, not only one fragment before
going back to sleep.
- Use SNDCTL_DSP_SETTRIGGER ioctl command to trigger the start the
  recording. If this command is not supported by the device, read 4
  bytes in the sound device instead.
2000-11-25 02:10:53 +00:00
Alexandre Julliard 27939f00fd Start using import tables for dlls that can already support it. 2000-11-12 03:50:10 +00:00
Alexandre Julliard eb58e1d597 Declare debug channels in all dlls that need them; added imports of
ntdll where necessary.
2000-11-05 04:53:07 +00:00
Dimitrie O. Paun 334a42f521 Fixed a few compilation warnings 2000-10-29 18:07:04 +00:00
Andreas Mohr 4ff660838f Transform device open error TRACE()s into WARN(); better error msgs. 2000-10-25 20:29:39 +00:00
Francois Jacques 0282825f63 - All audio device handles are initialized to -1 and set to -1 when closed.
- WINE_WM_HEADER event should *NOT* make the recording thread start. The
  thread should only start through waveInStart. The application calling
  waveInAddBuffer might not be in a state to provide another buffer in
  a period of time short enough to avoid buffer underrun in widRecorder
  thread.
- widRecorder - improved robustness of widRecorder to avoid some data
  loss that occured when not reading one full fragment from the OSS
  audio driver.
2000-10-24 02:20:01 +00:00
Andreas Mohr c472708f69 Added sleep time calculation for the wodPlayer thread.
Changed the wodPlayer thread messaging to use its own fast 30 entries
ring buffer list.
2000-10-22 23:43:15 +00:00
Andreas Mohr d747b76cb6 Sequencer error message fix. 2000-10-19 22:31:37 +00:00
Francois Jacques 11805e0a4b Should test unixdev against -1 (see wodOpen/widOpen).
widRecorder: bytesRead is now tested against (DWORD) -1.
2000-10-19 20:26:04 +00:00
Andreas Mohr 1563abe8ec - stupid spelling fixes
- some more loadorder array work
2000-10-13 20:26:52 +00:00
Chris Morgan 3b37e7ae6a Indicate that the MIDI error message only affects programs that need MIDI. 2000-10-13 20:21:27 +00:00
Marcus Meissner 0d30481a31 Suppress junk noise at startup of DirectSound on SB Live! and ES 1371. 2000-10-12 20:37:51 +00:00
Eric Pouech 96d920fd25 Store a copy of MIDIOPENDESC information instead of pointer. 2000-09-27 22:28:51 +00:00
Huw D M Davies 044e082cf5 Set close on exec() flag at times when we leave /dev/dsp and
/dev/sequencer open.
2000-09-22 20:54:51 +00:00
Andreas Mohr 349655636b - made the MIDI sequencer error message much better for confused users
to be found on #WineHQ
- use strerror instead of errno at important places
- got rid of HAVE_STRERROR macro
- removed some #include:s (hopefully I didn't break anything)
2000-08-26 20:31:48 +00:00
Eric Pouech c70082fb22 Fixed recording format settings (16 bit was broken) and reentrancy
issues.
2000-08-25 21:33:45 +00:00
Ed Snow 909b677e83 Clean out the hack on BASS/TREBLE and suppress them in the mask as was
recommended oh so long ago.
2000-08-18 23:42:43 +00:00
Alexandre Julliard 6c9d83aa4c Added imports of user32/gdi32/kernel32 wherever necessary. 2000-08-03 00:04:24 +00:00
Eric Pouech 731e9f5309 - removed (now obsolete) driver.h file (it's content is now in mmsystem.h)
- upgraded vfw.h content
2000-07-26 18:07:04 +00:00
Eric Pouech eef1fb8f41 Fixed first seek on MEM mmio files. 2000-07-23 13:35:39 +00:00
Patrik Stridvall 6314ad696b Fixed some warnings. 2000-07-15 21:33:38 +00:00
Ed Snow 276495e3af Fixes unmuting when unmuted.
Unifies scale reported with scale used for volume control.
Hack for Bass/Treble until better fix is complete.
2000-07-15 21:28:51 +00:00
Eric Pouech b4905d2241 Cleaned up loading/init code in OSS.
Cleaned up getDevCaps in midi part.
Implemented asynchronous waveIn recording using a thread.
2000-06-24 17:54:43 +00:00
Ove Kaaven fd92ebdb4c Implemented the DirectSound HAL in winmm's wineoss (Open Sound System)
driver, and winmm's interface for DirectSound to access it. It
requires the ability to mmap /dev/dsp, to trigger playback, and
sample-accurate position readouts. (If the soundcard's device driver
does not report these capabilities, wineoss will report the HAL as
unavailable and force DirectSound to use its HEL instead.)
2000-06-24 12:55:33 +00:00
Gerald Pfeifer e6ba02e57a Fixed format strings. 2000-06-20 20:34:41 +00:00
Alexandre Julliard 6953d6756c For dlls, derive SPEC_SRCS from MODULE and ALTNAMES. 2000-06-20 20:24:14 +00:00
Ove Kaaven df0dd9ab49 Fixed WHDR_DONE race condition. 2000-06-20 20:18:09 +00:00
Andreas Mohr 2e011a5243 Lots of spelling fixes that accumulated in my tree again, made several
error msgs more verbose, doc updates.
2000-06-01 23:28:25 +00:00
Andreas Mohr 7aa70d3397 More verbose errors. 2000-05-14 23:45:03 +00:00
Eric Pouech 3de3cad9ce Fixed division by zero. 2000-05-11 21:42:52 +00:00
Eric Pouech a1894523b4 Changed WAVEHDR notification heuristic.
Added preliminary support for loops in WAVEHDRs.
Fixed issues when mixing open and getCaps calls.
2000-05-09 22:35:47 +00:00
Alexandre Julliard 84eb8334da Added some missing import directives. 2000-04-19 16:54:02 +00:00
Marcus Meissner 502e15b6e7 open() the OSS sounddevice non-blocking in case another process has it
open already.
2000-03-30 20:22:12 +00:00
Francois Gouget 6d77d3a1df Use min/max instead of MIN/MAX. 2000-03-25 21:44:35 +00:00
Patrik Stridvall fcfacb95a7 Added/fixed some documentation reported by winapi_check. 2000-03-24 20:46:04 +00:00
Alexandre Julliard d0edc5fecd Moved dll-specific make rules to a separate Makedll.rules file. 2000-03-04 22:31:27 +00:00
Alexandre Julliard e1d78899ea Made winmm a separate shared library. 2000-02-26 13:45:34 +00:00
Alexandre Julliard 90476d6b4a Moved SystemHeap allocations to the process heap. 2000-02-16 22:47:24 +00:00
Alexandre Julliard 383da68cf9 Optimized debugging API to reduce code size. 2000-02-10 22:15:21 +00:00
Jeremy White d3e22d9d55 Removed #include of wingdi.h and windef.h from winuser.h (and resolved
the resulting compilation failures).
2000-02-10 19:03:02 +00:00
Alexandre Julliard 318f4cefd2 Build most dlls as separate shared libraries. 2000-01-31 05:02:49 +00:00
Uwe Bonnes d0b0dbdc17 Always initialize lpWaveHdr->lpNext to NULL.
Don't fail on strange fragment sizes.
2000-01-18 01:09:45 +00:00
Eric Pouech 0adb3c23ad Use a uniform naming scheme for driver modules. 2000-01-04 00:27:39 +00:00
Eric Pouech 1bf5dea29a Removed extraneous ERR message. 2000-01-04 00:25:39 +00:00
Francois Gouget baa9bf9a23 Buffer overflows and strncpy fixes. 1999-12-27 05:24:06 +00:00
Marcus Meissner bac7be750b Cast the unsigned int to signed, or NEAR_MATCH will not work. 1999-12-25 22:55:40 +00:00
Eric Pouech 29ebdb7690 Fake MIDI_IO_STATUS support in midi in open
Fixed bug in midi in while reading data
1999-12-05 02:19:24 +00:00
Eric Pouech 6ff83ad45f Fixed infinite loop for 0-length wavehdrs. 1999-12-05 02:18:59 +00:00
Marcus Meissner f95df54d1c Allow 1% deviation from specified sampling rate for some soundcards. 1999-12-04 03:58:37 +00:00
Patrik Stridvall 2c92835f7b Added missing configuration #if:s and #includes:s. 1999-10-31 02:07:54 +00:00
Eric Pouech 3b8e9b43d4 Fix (some) bad behavior with buffer underrun. 1999-10-31 01:53:47 +00:00
Eric Pouech 68944c205c Split the multimedia/ directory into dlls/ subdirectories. 1999-10-24 18:42:42 +00:00