Commit Graph

1591 Commits

Author SHA1 Message Date
Bruno Jesus 2a5f5b89fd winmm/tests: Add joystick tests. 2014-12-11 11:59:39 +01:00
Bruno Jesus 125b0f74c5 winmm: Handle invalid threshold values in joySetThreshold. 2014-12-11 11:57:59 +01:00
Bruno Jesus 9c8978cf5c winmm: Allow any period value for setJoyCapture. 2014-12-11 11:57:56 +01:00
Bruno Jesus 135f929a39 winmm: The dwSize paramater of JOYINFOEX must be set correctly. 2014-12-11 11:57:51 +01:00
Bruno Jesus 3db2e9113e winmm: Allow calling joyReleaseCapture multiple times. 2014-12-11 11:57:47 +01:00
Bruno Jesus 45f46bd359 winmm: Handle NULL parameter in joyGetPos/joyGetPosEx. 2014-12-11 11:57:42 +01:00
Andrew Eikum 5b7e49e84a Revert "winmm: Increase mmdevapi buffer sizes.".
This reverts commit fdfff7cf60.

In theory, this commit should have had no affect on winmm-using
applications and just prevented underruns on the mmdevapi side. But
Patrol Falcon abuses the winmm API by modifying the buffer after
passing it to waveOutWrite, and this patch breaks that behavior. We've
improved the winecoreaudio driver since this patch was sent, and so
large buffers should no longer be necessary to avoid underruns.
2014-12-04 11:10:22 +01:00
Qian Hong b3ebdd904c winmm: Also initialize sound device thread in mixerGetControlDetails.
Fixed volume control in EveryonePiano.
2014-09-29 18:56:00 +02:00
Akihiro Sagawa e2779a4c9a winmm: Don't call the custom MMIOM_SEEK handler while opening. 2014-09-01 21:10:12 +02:00
Akihiro Sagawa d5345e64f1 winmm: Avoid sending MMIOM_SEEK message in debug trace. 2014-09-01 21:10:12 +02:00
Akihiro Sagawa 4df26eefe6 winmm/tests: Add more tests for custom procedures. 2014-09-01 21:10:12 +02:00
Akihiro Sagawa 113a2abbc8 winmm: Fallback to SND_FILENAME if the alias isn't found in the profile. 2014-07-04 19:30:39 +02:00
Akihiro Sagawa 8d9a7247c3 winmm: Fix SEEK_END handling for memory files. 2014-06-16 18:03:18 +02:00
Akihiro Sagawa 71b8a56c84 winmm: Update lBufOffset after seeking file directly. 2014-06-16 18:03:13 +02:00
Akihiro Sagawa f7ddc1eb95 winmm: Avoid direct seeking for memory files. 2014-06-16 18:03:12 +02:00
Akihiro Sagawa c4629e5af5 winmm: Memory file buffer is available even if we just allocate memory. 2014-06-16 18:03:10 +02:00
Akihiro Sagawa 09a1f81cb4 winmm/tests: Activate some mmioSeek tests with todo_wine keyword. 2014-06-16 16:41:12 +02:00
Bruno Jesus c3a362a4c4 winmm: Fix a memory leak in mciSendStringW (valgrind). 2014-06-11 16:09:52 +02:00
Andrew Eikum a6bf8328fd winmm/tests: Accept MMSYSERR_ALLOCATED for more tests. 2014-03-25 19:05:10 +01:00
Stefan Dösinger 858bb223b4 winmm: Make some joystick functions hookable. 2014-03-03 17:46:54 +01:00
Francois Gouget d155df5c19 winmm/tests: Change the current directory to a place that will be writable. 2014-02-25 14:21:14 -06:00
Frédéric Delanoy 0f2bed51bd Assorted spelling fixes. 2014-02-10 15:47:29 +01:00
Michael Stefaniuc ff7ebba27f winmm/tests: Avoid spurious test failures on Windows. 2014-02-04 13:41:47 +01:00
Andrew Eikum 8695369dc5 winmm: Clean up ACM stream after query. 2014-01-29 15:01:12 +01:00
Alexandre Julliard 99ef0d6ff0 makefiles: Get rid of the MAKE_TEST_RULES variable. 2014-01-02 12:13:16 +01:00
Alexandre Julliard 5e7416e5c8 makefiles: Get rid of the MAKE_DLL_RULES variable. 2014-01-02 12:08:18 +01:00
Alexandre Julliard 4f3d71cef3 makefiles: Get rid of the no longer used PO_SRCS variables. 2013-12-15 10:23:04 +01:00
Frédéric Delanoy 576102e9aa winmm: Use BOOL type where appropriate. 2013-11-27 10:54:32 +01:00
Andrew Eikum 06c95af457 winmm: Also try MSACM conversions with WAVE_FORMAT_QUERY. 2013-11-19 11:08:22 +01:00
Alexandre Julliard 5756ee09f3 makefiles: Add makedep pragmas for rc files that contain translations. 2013-11-05 20:38:19 +01:00
Michael Stefaniuc 6d7bd62a73 winmm/tests: Compile with -D__WINESRC__. 2013-11-04 11:05:40 +01:00
Michael Stefaniuc 36638ef5f8 winmm/tests: Use a better type for the mixer object. 2013-11-04 11:05:25 +01:00
Michael Stefaniuc a749f27ab3 winmm/tests: Use the explicit CreateEventW() and don't bother testing it. 2013-11-04 11:05:16 +01:00
Michael Stefaniuc 3101b50121 winmm/tests: Fix the includes for generated.c. 2013-10-31 09:58:43 +01:00
Michael Stefaniuc e31d53616f winmm/tests: Use the explicit mciSendCommandA() version. 2013-10-31 09:58:43 +01:00
Michael Stefaniuc d9efd9f67e winmm/tests: Avoid duplicating the tested call in the ok() message. 2013-10-31 09:58:43 +01:00
Michael Stefaniuc ff7511cc0a winmm/tests: Skip tests for MMSYSERR_NODRIVER too. 2013-10-30 09:42:12 +01:00
Qian Hong 78b2fd8399 winmm: Fixed mixerGetControlDetails with null paDetails. 2013-10-25 13:36:00 +02:00
Michael Stefaniuc 51ce8f254e winmm/tests: Use the explicit mciSendStringA() form. 2013-10-16 11:41:20 +02:00
Frédéric Delanoy b7b5c88750 winmm/tests: Use BOOL type where appropriate. 2013-10-14 10:44:45 +02:00
Michael Stefaniuc 0e681027a2 tests: Compile the tests by default with -D__WINESRC__. 2013-10-02 11:04:02 +02:00
Francois Gouget 7eeb804907 winmm: Fix two error messages to not point users to a MIDI Mapper configuration applet we don't have. 2013-10-01 19:13:18 +02:00
Lu Jiashu a0ed65f593 winmm: Clone the whole adwInfo array in MMIO_Open. 2013-09-25 13:38:14 +02:00
Andrew Eikum fdfff7cf60 winmm: Increase mmdevapi buffer sizes.
The tiny buffer size caused audio capture glitches on OSX, where the OS
often returns audio in half-second chunks.
2013-08-21 19:55:25 +02:00
Fabrice Bauzac 21e0f739be winmm: Fix WOD_Open() WID_Open() WAVE_MAPPER no-device case. 2013-08-21 12:13:55 +02:00
Andrew Eikum 0627ddcf15 winmm: Don't count unused frames. 2013-07-27 11:56:28 -05:00
Andrew Eikum 35e4aac8f6 winmm/tests: Fix waveInGetPosition type.
We're comparing the reported value against dwBytesRecorded, so we should
request the value to be in bytes.
2013-07-27 11:56:24 -05:00
Marcus Meissner faeb9a5bfc winmm: Fix incorrect parameter for test debug (Coverity). 2013-06-28 13:14:25 +02:00
Andrew Eikum d4560b0ce0 winmm/tests: Fix test that fails on NT4. 2013-05-31 19:16:00 +02:00
Andrew Eikum ace442f3b7 winmm/tests: Only test non-mapper devices in interactive mode.
Other devices might be less reliable, but we should generally expect
WAVE_MAPPER to behave well. This also massively reduces test runtime,
depending on how many devices are present.
2013-04-29 11:41:59 +02:00
Akihiro Sagawa 7a22250867 winmm: Inherit the seek position when using standard file handle. 2013-04-04 19:30:21 +02:00
Andrew Talbot 11ebf851b2 winmm: Remove unneeded address-of operator from function name. 2013-04-01 12:19:21 +02:00
Andrew Eikum 2d76befbdd winmm: Shutdown the devices thread when all devices are closed. 2013-03-26 12:11:47 +01:00
Jörg Höhle 2722f2cbfc winmm: Fix GetPosition when using MSACM codecs. 2013-03-12 16:29:11 +01:00
Andrew Eikum dd0751ae83 winmm/tests: Add tests for non-block-aligned fragment sizes. 2013-03-11 13:38:39 +01:00
Andrew Eikum f74128f132 winmm: Truncate buffers to align to frame size. 2013-03-11 13:38:30 +01:00
Jörg Höhle fe7a057a32 winmm: Don't log the uninitialised MCI output buffer in case of error. 2013-03-05 09:37:46 +01:00
Andrew Eikum db92670f97 winmm/tests: Add another valid return code. 2013-03-04 19:28:26 +01:00
Jörg Höhle 4f0743bffa winmm: WAVE_OPEN_QUERY causes no WIM/WOM_OPEN notification. 2013-02-22 17:36:21 +01:00
Jörg Höhle f67bc43e22 winmm: Handle GetTickCount overflow in MIDI player. 2013-02-14 17:37:14 +01:00
Jörg Höhle d4b2d48f24 winmm: More compatible waveIn/Out[Un]Prepare WHDR_* flag handling. 2013-02-13 17:19:43 +01:00
Jörg Höhle b95910ccbc winmm: More compatible midiIn/Out[Un]Prepare MHDR_* flag handling. 2013-02-13 17:19:43 +01:00
Francois Gouget 6ad54620f0 winmm/tests: Allow more margin in the test_asyncWAVE() playback check. 2013-01-22 20:01:57 +01:00
Francois Gouget f963f93964 Assorted spelling fixes. 2013-01-07 11:10:40 +01:00
Michael Stefaniuc 3b4bb9dcf3 winmm: Add missing LeaveCriticalSection on error paths (Smatch). 2013-01-07 11:09:30 +01:00
Andrew Eikum 93348b21f7 winmm: Don't map the device if WAVE_FORMAT_DIRECT is given. 2013-01-02 13:35:51 +01:00
Andrew Eikum 8f03c51e55 winmm: Reroute WAVE_MAPPER devices as the default device changes. 2012-12-28 11:26:40 +01:00
Andrew Eikum b73da85dec winmm: Open WAVE_MAPPER devices in their own devices array. 2012-12-27 12:08:21 +01:00
Andrew Eikum 68679158b6 winmm: Don't give a period time to IAudioClient::Initialize. 2012-12-27 12:08:14 +01:00
Andrew Eikum 4ab4bc5d09 winmm: Rearrange device mapping when a new default device is chosen. 2012-12-26 18:23:06 +01:00
Andrew Eikum 08f73e2a07 winmm: Use a separate array to map the default device. 2012-12-24 13:32:58 +01:00
Andrew Eikum b1d9d43af7 winmm: Don't mask out SND_ALIAS_ID or SND_FILENAME in sndPlaySound. 2012-12-04 19:34:26 +01:00
Akihiro Sagawa c2cf4ddb93 winmm: Fix handling of mmio file buffers. 2012-11-28 20:14:52 +01:00
Akihiro Sagawa 1aa15750ed winmm/tests: Add EOF and buffer pointer tests for mmio. 2012-11-20 13:32:50 +01:00
Akihiro Sagawa 2d3f320463 winmm: Fix SEEK_END direction of mmio files without buffering. 2012-11-13 18:01:44 +01:00
Akihiro Sagawa 10c7f5859c winmm/tests: Add more mmioSeek tests. 2012-11-13 18:01:39 +01:00
Jörg Höhle f5628373e5 winmm: Call IsFormatSupported for WAVE_FORMAT_QUERY only. 2012-11-09 11:51:39 +01:00
Jörg Höhle e3e0bfca20 winmm: Avoid generic MMSYSERR_ERROR during initialisation. 2012-11-09 11:50:45 +01:00
Jörg Höhle 6086c7be19 winmm: Prefer using MMSYSERR_* over AUDCLNT_E_* from mmdevapi. 2012-11-09 11:48:53 +01:00
André Hentschel 126fded4a4 winmm: Mark up fallthrough switch case (coverity). 2012-11-08 15:37:51 +01:00
Jörg Höhle 1fc362ce55 winmm: Turn some MCI parser ERR into FIXME. 2012-10-30 14:37:55 +01:00
Maarten Lankhorst 6f84708902 winmm: Do not blindly reset device when already stopped. 2012-10-19 16:51:56 +02:00
Jörg Höhle 8ff7436d21 winmm: The "open new ..." MCI string command sets an empty OPEN_ELEMENT. 2012-09-27 13:08:28 +02:00
Francois Gouget eabbe5ab58 winmm: MMDRV_GetRelated() is not used anymore so remove it. 2012-08-13 11:51:54 +02:00
Michael Stefaniuc d94eaa3b20 winmm: Avoid TRUE FALSE conditional expressions. 2012-07-31 12:36:20 +02:00
Francois Gouget fac36c55e9 Assorted typo, spelling, wording and case fixes. 2012-05-15 16:26:43 +02:00
Andrew Eikum 47332210dd winmm: Don't call MMDevAPI during process exit. 2012-05-11 15:39:21 +02:00
Andrew Eikum 31291cdc6c winmm: Close open wave devices upon process detach. 2012-05-08 09:30:31 +02:00
Andrew Eikum d022cc1ddf winmm: Support DRV_QUERYDEVICEINTERFACE in waveXxxMessage. 2012-04-06 20:12:21 +02:00
Andrew Eikum 1b21fe827f mmddk.h: Remove unused, Wine-specific WinMM defines. 2012-04-03 17:53:37 +02:00
Andrew Eikum 447b045825 winmm: Report waveIn devices' component type as Microphone. 2012-03-28 11:35:52 +02:00
Andrew Eikum 6a6e1bd50e winmm: Support DRVM_MAPPER_PREFERRED_GET in waveXxxMessage. 2012-03-28 11:35:44 +02:00
Andrew Eikum 3579bbd8ab winmm: Remove unused define. 2012-03-08 17:57:40 +01:00
Jörg Höhle 21e47e905e winmm: Make midiStream* messages asynchronous to avoid deadlocks. 2012-02-17 18:06:51 +01:00
Jörg Höhle 1b11576005 winmm: Avoid using SuspendThread, it can hang Wine. 2012-02-17 18:06:50 +01:00
Jörg Höhle 197607db2e winmm: Allow new sounds to interrupt previous PlaySound invocations. 2012-02-16 18:51:56 +01:00
Andrew Eikum 74d6990494 winmm: TRACE unhandled messages. 2012-02-07 14:03:02 -06:00
Andrew Eikum be7a93cf56 winmm: Downgrade most ERRs to WARNs. 2012-02-07 14:02:58 -06:00
Andrew Eikum 6847e882b8 winmm: Initialize COM for MULTITHREADED, not APARTMENTTHREADED. 2012-01-31 20:39:11 +01:00
Jörg Höhle 644f539358 winmm: Parse MCI colon notation as in T:MM:SS:F. 2012-01-27 18:05:47 +01:00
Jörg Höhle 32c23cbc80 winmm/tests: Properly recover from the WAVERR_STILLPLAYING case. 2012-01-19 21:08:50 +01:00
Andrew Eikum 04ab858fef winmm: Only start the devices thread when necessary. 2012-01-16 19:32:50 +01:00
Jörg Höhle d8d4aed845 winmm: GetCurrentPadding is superfluous while recording. 2012-01-11 19:42:53 +01:00
Jörg Höhle afe7bc06e6 winmm: Ignore broken nBlockAlign and AvgBytes within PCMWAVEFORMAT. 2012-01-06 19:24:27 +01:00
Jörg Höhle 9ef4a0099c winmm: Fix conversion to MMTIME, avoid floating point arithmetic. 2012-01-05 21:27:34 +01:00
Francois Gouget 8d66ca11d7 winmm: Don't include newlines in standard error messages. 2012-01-03 19:31:10 +01:00
Francois Gouget 814c854fd2 winmm: Give a name to the critical sections, make them static and delete them when unloading the dll. 2011-11-15 19:37:36 +01:00
Jörg Höhle 1cde966c35 winmm: Never write silence, mmdevapi must handle underruns. 2011-10-31 16:53:32 +01:00
Andrew Eikum 0a20ec0935 winmm: Fix clock position calculation. 2011-10-28 17:32:49 +02:00
Michael Stefaniuc 5439aede62 include: Remove 'l' modifier from numeric constants in mmsystem.h. 2011-10-25 16:57:25 +02:00
Andrew Eikum 82f486a1a8 winmm: Use buffer offset when recording. 2011-10-12 17:07:05 +02:00
Andrew Eikum 0d567ff9f8 winmm: Also track input device position. 2011-10-12 17:07:01 +02:00
Andrew Eikum e19be58e90 winmm: Handle DRV_QUERYMAPPABLE in waveXxxMessage. 2011-10-04 15:20:58 -05:00
Marcus Meissner c7f8ad487d winmm: Mark two functions as hidden. 2011-10-03 16:10:52 -05:00
Jörg Höhle 3ba00cf538 winmm: Mark headers WHDR_DONE at the last possible time. 2011-09-30 10:31:51 -05:00
Francois Gouget 3de330db54 tests: Remove unneeded assert.h includes. 2011-09-27 10:59:56 +02:00
Andrew Eikum b1fdaa81b0 dsound: Remove hardware acceleration support. 2011-09-26 18:38:07 +02:00
Jörg Höhle 5f9e03d118 winmm: waveOutReset returns all buffers. 2011-09-26 18:09:31 +02:00
Jörg Höhle afa5751015 winmm: Separate WINMM_Pause and WINMM_Reset. 2011-09-26 18:09:27 +02:00
Jörg Höhle 38752f5bf7 winmm: Fix sum of available samples. 2011-09-26 18:09:24 +02:00
Michael Stefaniuc f83c470805 winmm: Remove casts to the type of the casted expression. 2011-09-22 19:51:50 +02:00
Francois Gouget 5619b2154b winmm/tests: Make it clear that no msrle.avi file is needed for the standard tests. 2011-09-22 19:51:50 +02:00
Akihiro Sagawa 203d06d410 winmm: Add support for MEVT_LONGMSG. 2011-09-08 20:08:06 +02:00
Andrew Eikum f6890ef0e2 winmm: Determine the driver from MMDevAPI.
This uses a half-implemented, Wine-specific IMMDevice object to extract
the driver name.
2011-09-01 18:06:37 +02:00
Andrew Talbot 4aca760126 winmm: Constify some variables. 2011-08-23 16:53:53 +02:00
Jörg Höhle 2e01ea4bda winmm: Remove redundant code. 2011-08-05 15:22:48 +02:00
Jörg Höhle 547f4cace9 winmm: Restore checking of callback flags. 2011-08-05 15:22:48 +02:00
Jörg Höhle b9de906ac1 winmm: Fix logic conditions. 2011-08-05 15:22:48 +02:00
Jörg Höhle 961683704b winmm: Fix memory leak in msacm error path. 2011-08-05 15:22:48 +02:00
Jörg Höhle 7fed738353 winmm: Assign to structs instead of using memcpy. 2011-08-05 15:22:48 +02:00
Jörg Höhle 710d200427 winmm: Replace one HeapAlloc with stack allocation. 2011-08-05 15:22:47 +02:00
Jörg Höhle c7d0c093e5 winmm: Functions that take an open HWAVE don't need StartDevicesThread. 2011-08-03 17:49:47 +02:00
Andrew Eikum 5512c2482f winmm: Fix looping handling. 2011-08-02 11:39:56 +02:00
Andrew Eikum d385675f36 winmm: Fix check for DCB_NULL callback type.
Noticed by Francois Gouget.
2011-07-18 18:31:29 +02:00
Andrew Eikum 2754c75092 winmm: Perform Open and Close callbacks from client thread. 2011-07-18 18:31:24 +02:00
Andrew Eikum 2a58273fcd winmm: Close ACM stream when closing wave device. 2011-07-18 18:31:12 +02:00
Francois Gouget 724b0a928c winmm: Remove an unused variable in WINMM_GetComponentTypeLineInfo(). 2011-07-18 16:23:29 +02:00
Andrew Eikum 3b16f46794 wineesd.drv: Remove unused WinMM driver. 2011-07-15 12:11:05 +02:00
Andrew Eikum 30eeb996ed winmm: Implement mixer* on top of MMDevAPI. 2011-07-15 10:09:55 +02:00
Andrew Eikum ccd2a24139 winmm: Remove driver implementation of mixer*. 2011-07-15 10:09:53 +02:00
Francois Gouget 70730f9168 winmm: Make WINMM_DRVMessage() static. 2011-07-14 14:48:54 +02:00
Andrew Eikum 8cd5f12e6b winmm: Implement waveIn* on top of MMDevAPI. 2011-07-14 14:40:05 +02:00
Andrew Eikum b3ab657c3b winmm: Remove driver implementation of waveIn*. 2011-07-14 14:39:57 +02:00
Andrew Eikum 58bd405778 winmm: Support WAVE_MAPPED flag in waveOut*. 2011-07-14 14:39:54 +02:00
Andrew Eikum be158e48ad winmm: Implement waveOut* on top of MMDevAPI. 2011-07-12 11:49:21 +02:00
Andrew Eikum 901af51ea3 winmm: Remove driver implementation of waveOut*. 2011-07-12 11:49:01 +02:00
André Hentschel e70de44edf winmm: Remove dead initialization (clang). 2011-07-06 11:20:10 +02:00
Andrew Eikum f78af0e046 winmm/tests: Don't test MCI output if no output devices are available. 2011-07-05 15:48:06 +02:00
Andrew Eikum a700f9e0fc winmm: Pull wave and mixer functions into their own source file. 2011-06-29 10:24:04 -05:00
Andrew Eikum 79575d33ad winmm/tests: Remove uninteresting tests. 2011-06-29 10:23:01 -05:00