Commit Graph

447 Commits

Author SHA1 Message Date
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
Eric Pouech e8a7ad3040 Some code cleanups.
Better error handling.
Removed unneeded internal variables.
2003-01-11 22:47:21 +00:00
Dan Kegel 0fd521fee3 Change RECT to use LONG to match win32 standard headers and fix format
strings to use %ld for RECT elements.
2003-01-08 21:09:25 +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
Gerald Pfeifer 3af9641e6f #include <stdlib.h> instead of the non-standard <malloc.h>. 2003-01-03 22:32:47 +00:00
Dimitrie O. Paun cef5961d2b Eliminate lots of __WINE__ conditionals from the headers. 2003-01-03 19:12:55 +00:00
Patrik Stridvall 46304a7361 Fixed some issues found by winapi_check. 2003-01-02 19:28:09 +00:00
Eric Pouech 1d854a10b0 When unmapping a (wave|midi)-header unprepare message, make sure the
unpreparation was successful.
2003-01-02 17:56:41 +00:00
Francois Gouget 88a5cb569b Add support for WINETEST_INTERACTIVE. If set then tests can perform
additional explicitly interactive tests.
Modify the winmm test to use WINETEST_INTERACTIVE.
2003-01-02 17:52:05 +00:00
Jeff Smith b9f0fce668 Correct all instances of mixMessage to mxdMessage. 2002-12-23 02:05:30 +00:00
Francois Gouget 8c777a8c8c Add the capacity of playing a test tone using the 'play' option.
Factorize the regular and WAVE_FORMAT_DIRECT tests.
Test the new 48 and 96kHz formats.
2002-12-16 22:12:32 +00:00
Francois Gouget 8b97a3a391 In the latest sdk the {waveOut,midiOut}{Get,Set}Volume functions take
a handle as the first parameter.
2002-12-15 02:59:50 +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
Francois Gouget e385e5e467 Our resampling algorithm is quite primitive so try simple 8/16
mono/stereo conversions first. Only resample if we cannot avoid it.
2002-12-15 01:12:27 +00:00
Francois Gouget f650222131 If given a bad device id waveOutGetDevCapsA is supposed to return
MMSYSERR_BADDEVICEID. Fixes a todo_wine in the winmm test.
2002-12-15 01:11:41 +00:00
Chris Morgan 4691b18520 Add support for Jack audio server. 2002-12-13 02:26:18 +00:00
Francois Gouget a522385e7d Add support for the 48 and 96kHz formats. 2002-12-13 02:18:20 +00:00
Nikolay Stefanov 08ee2e1cc2 Fix issues with i810-based audio cards.
Support for user-selectable audio cards through the ALSA_CARD
environment variable (M.Miroslaw@elka.pw.edu.pl).
2002-12-13 00:36:22 +00:00
Jeff Smith f88d00a25d MMDRV_GetDescription32 fix + a few cosmetic improvements. 2002-12-12 22:26:01 +00:00
Francois Gouget 52574ed701 Fix error reporting in wavemap.c:wodOpen(); this solves the
waveOutOpen problem so that we can remove the todo_wine.
Win9x does not support WAVE_FORMAT_DIRECT.
Don't check the format if the waveOutOpen command failed.
Use trace, not winetest_trace!
2002-12-12 22:23:15 +00:00
Alexandre Julliard dbf8b78acd Added .spec.def files. 2002-12-12 22:04:04 +00:00
Rok Mandeljc 72a2c37076 Fixed some characters. 2002-12-11 01:29:10 +00:00
Vincent Béron 9c627aae6b Suppress some signed/unsigned comparison warning. 2002-12-10 19:10:46 +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
Jeff Smith 528ac6386e Fix for MIDI Mapper. 2002-12-02 18:57:00 +00:00
Jeff Smith 5e0bdcc4d1 Fixed 32 bit flag in midiOutShortMsg. 2002-11-30 01:51:56 +00:00
Eric Pouech f086286d4f Better support for multiple midi devices on the OSS interface. 2002-11-20 19:46:35 +00:00
Eric Pouech 689312b15e Now properly unloading multimedia drivers when winmm unloads. 2002-11-11 19:53:01 +00:00
Patrik Stridvall 517a93afe3 Fixed some issues found by winapi_check. 2002-11-06 19:57:49 +00:00
Alexandre Julliard 1e1313d54c Made the dll entry point default to DllMain and removed most of the
'init' spec file declarations.
2002-11-04 23:53:41 +00:00
Francois Gouget 4ce28377f7 Test sound format support with waveOutGetDevCaps and waveOutOpen. 2002-11-04 23:47:49 +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 cf2e57d0c7 Split out some more 16-bit code. 2002-10-31 22:06:53 +00:00
Alexandre Julliard 7a1cb65cb9 Moved 16-bit definitions out of mmddk.h into mmsystem16.h. 2002-10-31 02:23:43 +00:00
Eric Pouech ac5de27d1c winmm/mmsystem now compiles with -DSTRICT. 2002-10-31 01:02:41 +00:00
Eric Pouech 7efe3ff0d8 Return correct values for wave(In|Out)GetPosition even if playing non
PCM files.
2002-10-31 00:54:27 +00:00
Eric Pouech 10d312eac1 wavemap now compiles with -DSTRICT. 2002-10-30 20:25:38 +00:00
Eric Pouech f97ba160f9 Moved 16 bit joystick function to mmsystem.c. 2002-10-29 22:02:57 +00:00
Eric Pouech 50ade2b33d - internal renaming (no longer using MMSYSTEM prefixes for WINMM only
functions)
- moved time 16/32 conversions functions to 16 bit source files
- final Makefile changes (16 bit part can now really be not compiled
  when -disable-win16 is requested)
2002-10-29 22:02:00 +00:00
Eric Pouech 8b7a45f4f7 - let all time related functions make use of low level drivers 16 bit
functions
- some renaming (prefixing internal time functions with TIME)
2002-10-29 21:59:24 +00:00
Eric Pouech 5942f98f92 All low level driver functions (internals for wave, midi, mixer and
aux) are now cleanly separated.
2002-10-29 21:55:25 +00:00
Eric Pouech 9becf85a2c All MCI functions are now cleanly separated. 2002-10-29 21:53:44 +00:00
Eric Pouech b4df16b3b2 All driver functions are now properly separated. 2002-10-29 21:51:24 +00:00
Eric Pouech 74b20fb8d8 - revisited mmsystem/winmm loading mechanism
- added WINMM_CheckMMSystem function (helps 32 bit code detect
  presence of our own mmsystem DLL)
- some internal renaming (MULTIMEDIA => WINMM)
2002-10-29 21:49:35 +00:00
Eric Pouech 2b0e56c8d8 Now only storing thread id for mci tasks (16 bit htask is now gotten
from WOW functions).
2002-10-29 21:44:23 +00:00
Eric Pouech 5e81d9a7ba - finish mmio separation
- no longer storing function pointers in global IData
2002-10-29 21:26:00 +00:00
Eric Pouech 1563fab4db Move low level multimedia message mapping out of 32 bit code. 2002-10-28 20:53:10 +00:00
Eric Pouech fdb623335a Move MCI message mapping out of 32 bit code. 2002-10-28 20:51:36 +00:00
Eric Pouech 894eedf5d3 Move driver message mapping out of 32 bit code. 2002-10-28 20:44:26 +00:00
Eric Pouech cfcc9e1094 Fixed mciSendString debug reporting when an error occurs (spotted by
Erland Lewin).
2002-10-28 20:05:25 +00:00
Andreas Mohr 6e256c72fe - fix some pselling
- enhance some TRACEs
2002-10-25 19:09:02 +00:00
Eric Pouech 1e3e87d430 Simplify the global internal data handling. 2002-10-25 19:00:12 +00:00
Eric Pouech fb8bad49d9 Unify the constant used for error codes reporting mapping functions
success/failures.
2002-10-25 03:51:40 +00:00
Vincent Béron d1d586e2a9 Bring some French resources in sync with English ones. 2002-10-23 23:34:32 +00:00
Eric Pouech b3854da29a Keep on moving 16 bit code out of winmm, now only using linear
addresses for buffers.
2002-10-21 18:21:26 +00:00
Alexandre Julliard 6fa2ac693e Removed DECLARE_OLD_HANDLE. Fixed a few remaining warnings. 2002-10-19 17:20:02 +00:00
Alexandre Julliard b34fb35b31 Fixed warnings caused by conversion to -DSTRICT. 2002-10-18 23:48:57 +00:00
Alexandre Julliard 23bb3715f7 Added support for building certain dlls with -DSTRICT.
Added -DWINE_NO_STRICT flag to dlls that don't support STRICT yet.
2002-10-18 23:46:28 +00:00
Alexandre Julliard 0ca051e555 Fixed wownt32.h to make it usable from inside Wine, and use it to
avoid some duplication of the handle conversion macros.
2002-10-17 16:43:42 +00:00
Malte Starostik 41a9b1bba6 Initialize winearts's volume level to full, so applications that don't
set the volume are audible.
2002-10-17 01:19:22 +00:00
Michael Stefaniuc 9444dd2541 Compile fix when all handles are converted to a void*. 2002-10-15 21:00:05 +00:00
Eric Pouech 240f09391a Keep on moving 16 bit code out of winmm. 2002-10-10 23:28:22 +00:00
Eric Pouech 46c49c6d79 Removed no longer needed list of instance data. 2002-10-10 22:47:25 +00:00
Francois Gouget 6f670b13f5 The NAS headers and libraries are sometimes stored in the X
directories.
2002-10-10 17:54:27 +00:00
Eric Pouech 57e6ba7009 Started putting all 16 bit code in separate files. 2002-10-10 03:43:53 +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
Eric Pouech 60f21c3d58 Got rid of recursion in sub device opening. 2002-10-07 18:22:57 +00:00
Eric Pouech b4ba9fa7df Let wave(Out|In)Open call the wave mapper when the low level device
doesn't handle the wave descriptor.
2002-10-07 18:22:41 +00:00
Alexandre Julliard beb1fb16f3 Removed error message that confuses users. 2002-10-03 19:43:10 +00:00
Alexandre Julliard c728efc3c9 Added --disable-win16 configure option. 2002-10-02 02:34:09 +00:00
Alexandre Julliard e969027104 Fixed warnings. 2002-10-02 01:34:17 +00:00
Jerry Jenkins e944bbb954 Modified volume_effect8 for taking unsigned data as signed data, and
wodPlayer_WriteMaxFrags because of wrong data length which lead to
strange noise and volume control working incorrectly.
2002-09-17 01:29:26 +00:00
Patrik Stridvall 9c1de6de30 Moved all the content of the DDK files ntdef.h and ntddk.h to
winternl.h.
2002-09-12 22:07:02 +00:00
Alexandre Julliard dd0bdbe44e Removed the __uint* types from basetsd.h since they don't exist under
Windows. Fixed a few other issues with type definitions.
2002-09-12 17:29:12 +00:00
Michael Stefaniuc 025c0b716b Prepare dlls/{comctl32,gdi,msvideo,setupapi,shell32,twain,winmm} for
the conversion of HWND to a void*.
2002-09-06 19:41:17 +00:00
David D. Hagood d6b6509301 Fixed Linux 2.2 event API code. 2002-09-04 18:43:05 +00:00
Marco Pietrobono 0e79a4128c Use alsa/asoundlib.h instead of sys/asoundlib.h if possible. 2002-08-29 01:51:31 +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 c8ff4da2ac Convert HMMIO to a void*. 2002-08-09 19:51:01 +00:00
Patrik Stridvall 4325554aef Fixed some issues found by winapi_check. 2002-08-09 01:07:29 +00:00
Michael Stefaniuc ec7d7b72b2 - Convert HDRVR to a void*.
- Fix declaration of DriverCallback().
2002-08-09 01:02:25 +00:00
Michael Stefaniuc c414344e2a Convert HMIXER, HMIXEROBJ to a void*. 2002-08-03 00:14:43 +00:00
Michael Stefaniuc bacc1b3b58 - Converted HWAVE, HWAVEIN, HWAVEOUT to void*.
- Fixed some HMIDI{IN,OUT}16 to HANDLE conversions.
- midiOutCacheDrumPatches16 called itself recursively in an infinite
  loop.
2002-08-02 19:02:49 +00:00
Alexandre Julliard 526531eb6c Create at most one glue file for a single dll.
Avoid the intermediate .tmp.o file when building programs.
2002-08-01 18:36:58 +00:00
Robert Lunnon 2a91e3f99b Preliminary audio driver for Solaris Libaudioio. 2002-08-01 18:22:38 +00:00
Alexandre Julliard 7cae201e3f Authors: Eric Pouech <eric.pouech@wanadoo.fr>, Michael Stefaniuc <mstefani@redhat.com>
Convert HMIDI, HMIDIIN, HMIDIOUT, HMIDISTRM to void*.
2002-08-01 18:17:51 +00:00
Nicolas Escuder 2a0dd0be05 Speed and buffer improvement, code clean up, and fix some bug
on close / reset waveout.
2002-07-31 17:23:47 +00:00
Alexandre Julliard 04b5a86c46 Merged the NAS driver written by Nicolas
Escuder <n.escuder@alineanet.com>.
2002-07-30 02:44:19 +00:00
Chris Morgan 6ecade7c84 Some dos VGA error handling. Misc TRACE changes. 2002-07-29 23:51:57 +00:00
Gerald Pfeifer 22780c814d Fixed format string. 2002-07-29 23:29:23 +00:00
Alexandre Julliard 13f2a17eb2 Convert HTASK to void* (based on a patch by Michael Stefaniuc). 2002-07-28 23:48:27 +00:00