Jörg Höhle
ef111ce138
winealsa: Map ALSA errors to AUDCLNT_E_*.
2012-01-26 21:25:48 +01:00
Jörg Höhle
4bbdc31d4f
winealsa: Initialize can fail with AUDCLNT_E_ENDPOINT_CREATE_FAILED.
2012-01-26 21:25:45 +01:00
Jörg Höhle
18024afd97
winealsa: Fix AudioCaptureClient Get/ReleaseBuffer protocol.
2012-01-16 13:48:24 +01:00
Jörg Höhle
999423d34e
dsound: Vista/XP SP2 reworked the Speaker Configuration.
2012-01-13 18:17:31 +01:00
Jörg Höhle
77e01019c5
winealsa: Stop may not use snd_pcm_drop or lose written frames.
2012-01-12 16:08:51 +01:00
Jörg Höhle
be90732e5e
winealsa: Reset accounts for dropped frames in capture mode.
2012-01-12 16:08:46 +01:00
Andrew Eikum
d82cca65ed
winealsa.drv: Remove "strange number of channels" FIXME.
2012-01-12 16:03:12 +01:00
Jörg Höhle
2b51d38d3c
winealsa: Fix AudioRenderClient Get/ReleaseBuffer protocol.
2012-01-10 10:48:01 +01:00
Jörg Höhle
49aa7f9f2f
winealsa: Check ValidBitsPerSample and support SND_PCM_FORMAT_S20_3LE.
2012-01-06 19:24:28 +01:00
Jörg Höhle
76f655dbb0
winealsa: Unify the checks for wBitsPerSample.
2012-01-06 19:24:28 +01:00
Jörg Höhle
92d8e93acb
winealsa: Have GetStreamLatency reflect the ALSA period.
2012-01-06 19:24:18 +01:00
Jörg Höhle
8316a77959
mmdevapi: Avoid HeapRealloc when no data need be copied.
2012-01-06 19:24:17 +01:00
Jörg Höhle
6d17715b01
winealsa: Use an ALSA buffer of 4 periods to limit prefill.
2011-12-22 17:19:21 +01:00
Jörg Höhle
54402a7c82
winealsa.drv: Request ALSA period time to match MMDevAPI period time.
2011-12-21 15:08:17 +01:00
Andrew Eikum
54b24f3926
winealsa.drv: Limit the data written to ALSA's buffer.
...
Based on an algorithm by Alexey Loukianov.
2011-12-20 10:12:19 +01:00
Jörg Höhle
38f9ba0070
mmdevapi: Enforce limits on period and duration.
2011-12-19 20:15:43 +01:00
Jörg Höhle
62017964be
winealsa: Implement IAudioClock::GetPosition() using snd_pcm_delay.
2011-12-12 15:50:41 +01:00
Jörg Höhle
7c5b90006c
mmdevapi: SHAREDMODE_EXCLUSIVE + EVENTCALLBACK is too ... exclusive for now.
2011-11-22 18:24:53 +01:00
Francois Gouget
97283f8b8d
winealsa.drv: Don't unset Spare[0] when deleting static critical sections.
2011-11-15 19:37:35 +01:00
Francois Gouget
9b55cc9e6f
winealsa.drv: Delete the g_sessions_lock critical section when unloading the dll.
2011-11-08 09:49:27 +01:00
Jörg Höhle
00684f84a5
mmdevapi: IsFormatSupported EXCLUSIVE mode never returns S_FALSE.
2011-10-28 12:49:44 +02:00
Francois Gouget
39e12238e9
winealsa.drv: Give a name to the mmdevapi critical sections.
...
Also statically initialize g_sessions_lock.
2011-10-27 14:20:44 +02:00
Andrew Talbot
654f280947
winealsa.drv: Add some return statements to mark semantic separations.
2011-10-14 13:12:28 +02:00
Dan Kegel
78e6287f71
winealsa.drv: When allocating opaque blobs for alsa, initialize them to zero.
2011-10-13 20:43:15 +02:00
Andrew Eikum
f2c33ae17a
winealsa.drv: Fix invalid pointer dereference on error path.
2011-10-13 19:57:18 +02:00
Michael Stefaniuc
d8ca697233
winealsa.drv: Remove redundant NULL checks before free (Smatch).
2011-10-11 13:37:50 +02:00
Andrew Eikum
b0652dd8bd
winealsa.drv: Don't try to control ALSA's behavior.
...
Now, winealsa maintains its own buffer, which is written to ALSA on the
period cycle requested by the application. We also let ALSA start when
it has enough data and stop when it runs out, recovering from the
expected underruns. This seems to be more like how ALSA expects to be
used.
2011-10-11 13:37:49 +02:00
Andrew Eikum
8410dd353c
audio: Change winmm import to delayed import.
2011-10-05 14:13:31 -05:00
Andrew Eikum
d41f6a6f02
winealsa.drv: Fix default device creation logic.
2011-09-30 10:32:09 -05:00
Andrew Eikum
f7364dfb4b
mmdevapi: Don't fail if dwChannelMask is not set correctly.
2011-09-28 21:04:33 +02:00
Andrew Eikum
b1fdaa81b0
dsound: Remove hardware acceleration support.
2011-09-26 18:38:07 +02:00
Andrew Eikum
8258a5188c
winealsa.drv: Remove wave, mixer, and dsound driver code.
2011-09-26 18:33:43 +02:00
Jörg Höhle
386f7639f3
winealsa: Simplify the test for 8bit linear PCM.
2011-09-26 18:09:14 +02:00
Jörg Höhle
8379680095
mmdevapi: Unlock buffer in case of ReleaseBuffer error.
2011-09-22 19:51:52 +02:00
Jörg Höhle
03ad9366f1
mmdevapi: Fix stuttering upon start and underrun.
2011-09-22 19:51:52 +02:00
Henri Verbeet
232893e083
winealsa.drv: Use the plughw instead of the hw interface for opening devices.
2011-09-22 09:39:11 +02:00
Henri Verbeet
0625d439de
winealsa.drv: Only report endpoints for "default" if they can be opened.
...
The default device may for example be a set of USB speakers or an USB
microphone, in which case you'd have just an output or just an input
respectively.
2011-09-22 09:39:01 +02:00
Andrew Eikum
e7a652395b
winealsa.drv: Allow creation of the default device even if all real devices failed to open.
2011-09-15 15:41:40 +02:00
Bernhard Loos
366f54110a
winealsa.drv: If there are no devices, there is also no default device.
2011-09-09 16:03:42 +02:00
Jörg Höhle
3e1d402881
mmdevapi: IsFormatSupported fills closest match iff it returns S_FALSE.
2011-09-09 14:24:08 +02:00
Jörg Höhle
9c75a6aae5
winealsa: Recommend Pulse users to upgrade to handle_underrun.
2011-09-08 20:08:09 +02:00
Jörg Höhle
08dd823c7c
mmdevapi: Use UINT32 for a number of frames and UINT64 to sum them.
2011-09-08 20:08:09 +02:00
Jörg Höhle
df201d3ef3
mmdevapi: Accept up to 8 channels.
2011-09-07 18:13:29 +02:00
Andrew Talbot
99b8ee10d1
winealsa.drv: Remove unneeded address-of operators from function name.
2011-09-05 10:53:22 +02:00
Andrew Eikum
c4b94b1ba4
mmdevapi: Automatically select the correct driver.
2011-09-01 18:06:37 +02:00
Jörg Höhle
abf5b64f4c
mmdevapi: Do not mix frames and bytes.
2011-08-30 17:10:40 +02:00
Jörg Höhle
8129b1847a
winealsa: Pulse knows handle_underrun only since 2010-07-09.
2011-08-26 13:21:41 +02:00
Jörg Höhle
541075c3db
mmdevapi: After GetBuffer, refuse Reset, but Start/Stop is ok.
2011-08-24 11:52:06 +02:00
Jörg Höhle
47bc6223e9
winealsa.drv: Fix AudioRenderClient write pointer calculation.
2011-08-22 16:14:34 +02:00
Andrew Eikum
9ad60d1d14
winealsa.drv: Inject handle_underrun=1 setting for pulse-backed devices.
2011-08-05 16:41:09 +02:00
Andrew Eikum
8c109aee13
winealsa.drv: Tell ALSA to play silence during underruns.
2011-08-05 16:37:54 +02:00
Francois Gouget
ed3c9a1eca
Assorted spelling fixes.
2011-08-03 14:15:48 +02:00
Andrew Eikum
96aa86c99d
winealsa.drv: Fix AudioRenderClient write pointer calculation.
2011-07-27 19:42:21 +02:00
Andrew Eikum
80fd691e9e
mmdevapi: Use a sane default if no buffer size is requested.
2011-07-18 18:31:06 +02:00
Andrew Eikum
2174717fbd
mmdevapi: Only enumerate devices that can be opened during initialization.
2011-07-14 14:39:46 +02:00
Francois Gouget
84fca0017a
winealsa.drv: Make the AudioSessionManager methods static.
2011-07-11 18:31:50 +02:00
Jacek Caban
dbba09ca29
audiopolicy.idl: Fixed SetGroupingParam declaration.
2011-07-04 13:45:14 +02:00
Jörg Höhle
8db18a893b
winealsa: Avoid deadlock in AudioClient_Stop.
2011-06-21 14:51:14 +02:00
Andrew Eikum
0085689f5d
mmdevapi: Implement ISimpleAudioVolume::{Set, Get}Mute.
2011-06-20 19:31:57 +02:00
Andrew Eikum
c6312990ab
winealsa.drv: Be less choosey about sample rates.
2011-06-20 19:31:50 +02:00
Andrew Eikum
a93efd5346
mmdevapi: Fix refcounts in IAudioClient::GetService.
2011-06-20 19:31:39 +02:00
Jörg Höhle
26efb871d3
winealsa: Fix mmdevapi memory allocations.
2011-06-17 15:04:53 +02:00
Stephane Bacri
d8ccfafd5b
winealsa.drv: Add midi MTC Quarter Frame messages support.
2011-06-17 12:36:33 +02:00
Andrew Eikum
bc10fd3ce6
mmdevapi: Sessions should be unique per-device.
2011-06-14 12:59:39 +02:00
Jörg Höhle
d726cf8819
winealsa: Properly allocate the WAVEFORMATEXTENSIBLE returned by GetMixFormat.
2011-06-06 21:49:20 +02:00
Andrew Eikum
6dac4d713c
winealsa.drv: Partially implement IAudioSessionManager2.
2011-06-06 21:49:18 +02:00
Andrew Eikum
934a64cb38
winealsa.drv: Implement device enumeration.
2011-05-25 12:22:09 +02:00
Marcus Meissner
5078d07e6f
winealsa.drv: Mark internal symbols with hidden visibility.
2011-05-25 11:50:35 +02:00
Andrew Eikum
ae9338c136
winealsa.drv: Implement volume control interfaces.
2011-05-09 11:58:41 +02:00
Andrew Eikum
af92572b38
winealsa.drv: Move IAudioClock closer to its related interfaces.
2011-05-09 11:58:38 +02:00
Andrew Eikum
eabf5715ce
winealsa.drv: Implement IAudioSessionControl::GetState.
2011-05-02 18:48:20 +02:00
Andrew Eikum
4a37f2f093
mmdevapi: Initialize global driver data at DLL load time.
2011-05-02 18:48:20 +02:00
Andrew Eikum
e3ff943e9c
winealsa.drv: Add mapping for 64-bit floats in IAudioClient::Initialize().
2011-04-27 17:49:53 +02:00
Andrew Eikum
fc4748ae74
winealsa.drv: Properly allocate and free the WAVEFORMATEX returned by IsFormatSupported.
2011-04-27 17:49:46 +02:00
Andrew Eikum
2692a68ce6
winealsa.drv: Replace incorrect 41100 with 44100.
2011-04-27 17:49:11 +02:00
Maarten Lankhorst
c385a93505
winealsa: Zero buffer, only write data if needed.
2011-04-26 16:18:00 +02:00
Andrew Eikum
86e90c92af
winealsa.drv: Add mmdevapi driver.
...
Maarten Lankhorst also contributed to this driver.
2011-04-25 17:29:11 +02:00
Austin English
aca6107785
winealsa.drv: Remove extraneous parentheses (LLVM/Clang).
2011-04-13 14:13:55 +02:00
Jörg Höhle
75dbd1162e
winmm: Audio drivers unconditionally invoke DriverCallback.
2011-04-11 17:32:29 +02:00
Alexandre Julliard
255cc210b6
winealsa.drv: Remove unnecessary ifdefs.
2011-03-28 22:07:26 +02:00
Jörg Höhle
e52f5773e1
winealsa: Favour HeapAlloc() over malloc().
2011-03-15 17:14:08 +01:00
Jörg Höhle
8df872535e
winealsa: Ignore failure to notify winmm wave clients.
2011-03-15 17:14:08 +01:00
Jörg Höhle
04e3bda410
winealsa: Open must fail when recorder thread creation fails.
2011-03-15 17:14:08 +01:00
Jörg Höhle
56f2c5800f
winealsa: CreateEvent and CreateThread return NULL on error, not INVALID_HANDLE_VALUE.
2011-03-15 17:14:08 +01:00
Marcus Meissner
a1a2de1853
winealsa.drv: Fixed bad sizeof (pointer vs struct) (Coverity).
2011-03-14 13:11:11 +01:00
Andy Norris
254b8f85b5
winealsa: Add support for alsa cards without a PCM mixer (only Line).
2011-03-08 16:55:10 +01:00
Rafał Mużyło
110e66dc0c
winealsa.drv: Drop redundant calls.
2011-03-04 16:26:01 +01:00
Marcus Meissner
4b5641add1
winealsa.drv: Re-add capcontrols initialization.
2010-12-27 11:47:21 +01:00
Michael Stefaniuc
820f376985
winealsa.drv: Standardize the COM usage in dsoutput.c.
2010-12-08 16:10:42 +01:00
Jeff Cook
0b4c99cd7d
winealsa.drv: Rewrite channel counting for additional readability and circumvention of a couple of crashes.
2010-10-11 17:11:26 +02:00
Jeff Cook
e96d3d538a
winealsa.drv: Only set micelem as master if there are no other elems on this card.
2010-10-11 17:11:25 +02:00
Alexandre Julliard
81b8ee863e
makefiles: Add a standard header for all makefiles to replace the common variable initializations.
2010-09-19 12:36:48 +02:00
Austin English
abd0a93afd
winealsa.drv: Remove unused variable.
2010-09-06 16:17:10 +02:00
Jeff Cook
e699184e48
winealsa.drv: Only filllines_no_master with micelem when micelem is found.
2010-08-24 17:22:49 +02:00
Jeff Cook
343f85ea66
winealsa.drv: If we can't open a device as stereo, try mono. This is necessary for snd-usb-audio mics.
2010-08-03 11:46:47 +02:00
Jeff Cook
6120d7cc14
winealsa.drv: Init mixer on cards with a single Mic control, like snd_usb_audio mics.
2010-08-03 11:46:42 +02:00
Alexandre Julliard
b86d515ed6
dlls: Remove explicit imports of kernel32 and ntdll.
2010-07-21 17:38:36 +02:00
Jörg Höhle
3d94ea8215
winealsa: Only linear PCM is supported.
2010-06-23 16:56:00 +02:00
Henri Verbeet
555e21307e
winealsa.drv: Add some missing newlines.
2010-06-16 12:48:51 +02:00
Andrew Nguyen
13a7708abb
winealsa.drv: Replicate the snd_pcm_recover alsa-lib implementation to cope with older alsa-lib versions.
2010-06-11 11:38:59 +02:00