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
Jörg Höhle
40dfd72bdb
winmm: Process MCI_DGV_INFO which is larger than MCI_INFO.
2011-05-24 18:28:36 +02:00
Jörg Höhle
7df286c136
winmm: Fix 8KB leak when mmioOpen fails (Valgrind).
2011-05-12 14:24:28 +02:00
Marcus Meissner
b4af43db7b
winmm: Mark internal symbols with visibility hidden.
2011-04-25 13:02:10 +02:00
Jörg Höhle
a174713f82
winmm: DriverCallback returns TRUE iff there is notification.
2011-04-11 17:31:50 +02:00
Jörg Höhle
e6a501bbd6
winmm: Trace DriverCallback once upon entry.
2011-04-11 17:31:26 +02:00
Jörg Höhle
c3774b664a
winmm: Check callback flags prior to opening a driver.
2011-04-04 14:42:12 +02:00
Francois Gouget
ff54c00601
winmm: Remove a space before a punctuation.
2011-03-30 18:23:40 +02:00
Jörg Höhle
e0dcc2cd7d
winmm: PlaySound concurrency cleanup.
2011-03-30 13:28:04 +02:00
Jörg Höhle
a0dbd846c6
winmm: Get rid of psStopEvent which was never used like an event.
2011-03-30 13:28:04 +02:00
Jörg Höhle
ca37dbcfe6
winmm: Abort PlaySound in case of audio error.
2011-03-30 13:28:04 +02:00
Jörg Höhle
15ad749ece
Revert "winmm: Fix PlaySound so it doesn't block when another sound is already playing.".
...
This reverts commit f44bc89bc4
.
Let the player thread call waveOutReset itself instead.
2011-03-30 13:28:04 +02:00
Francois Gouget
74a75e479b
winmm: Add full stops to some error messages.
2011-03-16 14:14:23 +01:00
Jörg Höhle
d1a034627c
winmm: MCI does not support the 0xhexadecimal notation.
2011-03-14 12:39:28 +01:00
Jörg Höhle
fd8576bfdb
winmm: Let WideCharToMultiByte search for NUL string terminator (Valgrind).
2011-02-21 12:46:36 +01:00