Commit Graph

93 Commits

Author SHA1 Message Date
Jörg Höhle a39e423f6f mmdevapi: Avoid lock contention after SetEvent. 2012-12-20 18:06:53 +01:00
Jörg Höhle 17f098869f winealsa: Separate read and write pointers. 2012-12-18 19:21:31 +01:00
Jörg Höhle b18c5e811f mmdevapi: SetEventHandle is allowed only once. 2012-12-18 16:30:36 +01:00
Andrew Eikum 4f32f8e185 winealsa.drv: Be less strict about wValidBitsPerSample. 2012-12-14 17:37:45 +01:00
Andrew Eikum 1d1aa7e8a1 winealsa.drv: Improve IsFormatSupported handling. 2012-12-04 00:02:15 +01:00
Jörg Höhle c596ddffab winealsa: Fix capture overrun logging. 2012-10-31 18:07:40 +01:00
Henri Verbeet fd06135d51 winealsa: Avoid depending on ddraw.h. 2012-10-25 22:27:43 +02:00
Andrew Eikum 19e9de7dde winealsa.drv: Special-case copying common sample sizes in a tight loop. 2012-08-22 12:00:09 +02:00
Andrew Eikum d402231e3f winealsa.drv: Remap mmdevapi channels to correct ALSA channels. 2012-08-17 09:56:13 +02:00
Andrew Eikum 36eb79e7f8 winealsa.drv: Don't cap the allowed number of channels. 2012-08-17 09:56:08 +02:00
Francois Gouget fac36c55e9 Assorted typo, spelling, wording and case fixes. 2012-05-15 16:26:43 +02:00
Marcus Meissner 272535b948 winealsa.drv: Fixed buffer to RegEnumKeyExW. 2012-04-10 16:21:30 +02:00
Andrew Eikum f461e8496d winealsa.drv: Enumerate ALSA devices in a single pass. 2012-04-09 17:23:08 +02:00
Andrew Eikum ea231aba40 winealsa.drv: Prefix device names with direction indication. 2012-04-05 11:56:04 +02:00
Andrew Eikum e87cb774d1 mmdevapi: Use device GUIDs as unique identifiers. 2012-04-04 17:25:25 +02:00
Andrew Eikum 027623a007 winealsa.drv: Use device GUIDs as keys. 2012-04-04 17:24:49 +02:00
Andrew Eikum 73cdf6530c winealsa.drv: Optionally load extra ALSA device names from the registry. 2012-02-15 12:06:38 +01:00
Alexandre Julliard 19015ae19e winealsa: Avoid memory leak with snd_card_get_name. 2012-02-01 16:55:53 +01:00
Andrew Eikum 5860a5b386 mmdevapi: Correctly convert UINT32 to LONG32. 2012-01-30 20:44:50 +01:00
Jörg Höhle 594002d011 winealsa: Fix -errno typo. 2012-01-27 18:05:55 +01:00
Andrew Eikum 7c52a257fb winealsa: Avoid underrun by adding a lead-in when starting with few samples. 2012-01-27 18:05:55 +01:00
Jörg Höhle 52c88ea725 winealsa: Log the periodic renderer callback. 2012-01-26 21:25:51 +01:00
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
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 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