Commit graph

8933 commits

Author SHA1 Message Date
Ryan C. Gordon
f098bb1934 testaudiocapture: ask for way more output samples.
Fixes Emscripten builds on Chrome for Android.
2016-08-12 22:50:48 -04:00
Ryan C. Gordon
497af047a5 emscripten: send fake mouse events for touches, like other targets do.
(This really should be handled at the higher level and not in the individual
targets, but this fixes the immediate bug.)
2016-08-12 19:59:00 -04:00
Ryan C. Gordon
f03b539c37 emscripten audio: check for an "undefined" object, remove some console.log().
--HG--
extra : amend_source : d0d1627830c3f7ae32326b9cfedf29fbd50494ff
2016-08-12 00:03:58 -04:00
Ryan C. Gordon
fd200e01ab audio: Cleaned up "extern AudioBootStrap" list. 2016-08-11 22:26:58 -04:00
Ryan C. Gordon
7ab6161c20 audio: Renamed some internal driver symbols in various targets.
--HG--
extra : histedit_source : 3fcfd8a18486901531c00b5440a619ae22cc423d%2Ca85f21071e16f001b28ecee20ca8c9fa38e5b215
2016-08-11 22:22:09 -04:00
Ryan C. Gordon
1ef00d5809 android: implement audio capture support. 2016-08-11 22:04:49 -04:00
Ryan C. Gordon
82140ec97d directsound: Implemented audio capture support. 2016-08-10 16:00:16 -04:00
Ryan C. Gordon
6557ea09ae windows: directsound should also map audio device GUIDs to proper names.
Moved this code from winmm into core so both can use it.

DirectSound (at least on Win10) also returns truncated device names, even
though it's handed in as a string pointer and not a static-sized buffer.  :/

--HG--
extra : amend_source : 1ee0edcba3b9e8ca6426e07ff45b53f4541d2ff2
2016-08-10 15:34:24 -04:00
Ryan C. Gordon
f2e2d65d66 audio: Patched to compile on C89 compilers. 2016-08-10 14:14:14 -04:00
Ryan C. Gordon
da5e8208d4 emscripten audio: fix timer on capture's silence callback. 2016-08-10 14:13:48 -04:00
Ryan C. Gordon
938aa68565 directsound: recalculate audiospec size before creating secondary buffer.
I think this was a bug before? Maybe I'm misunderstanding this, but it looks
like it was working because we allocate room for 8 chunks...
2016-08-09 19:35:46 -04:00
Ryan C. Gordon
1a595df276 emscripten audio: Added audio capture support. 2016-08-09 16:58:32 -04:00
Ryan C. Gordon
7ab0405d0f Added a FIXME. 2016-08-09 16:58:06 -04:00
Ryan C. Gordon
7fd7e882eb testaudiocapture: open capture device to same spec as output device.
...since our resampler is still terrible (sorry!).
2016-08-09 16:57:49 -04:00
Ryan C. Gordon
d64862530f audio: Only allocate fake_stream if we're using the standard audio threads. 2016-08-09 00:44:59 -04:00
Ryan C. Gordon
6d4ba05bf6 audio: simplifed check for internal callback.
Easier to check when it's NULL instead of a list of known internal functions.
2016-08-09 00:44:05 -04:00
Sam Lantinga
cb8e57bda0 [ OSX ] enables Xbox One S Guide (System Main Menu) button detection. the one possible impact is that since button identifiers on OSX are just their sequence in the HID report descriptor we might change the button order, and any existing/saved mappings may get their order changed. 2016-08-08 12:17:53 -07:00
Ryan C. Gordon
bd3c62f996 dsp: Implemented audio capture support. 2016-08-07 02:43:20 -04:00
Ryan C. Gordon
411ece1cbb winmm: Try to get full device names from the Windows Registry. 2016-08-07 01:48:38 -04:00
Ryan C. Gordon
1096774c02 winmm: Added a FIXME for truncated device names. 2016-08-06 23:05:02 -04:00
Ryan C. Gordon
007a2a8470 winmm: Implemented audio capture support. 2016-08-06 19:34:32 -04:00
Mikkel Krautz
f9e9b84c07 Add Xbox One controller GUIDs to the XInput filter in the DirectInput joystick driver.
The Windows 10 Anniversary Update (1607) breaks the method uses that SDL uses to
detect XInput devices. That is, on Windows 10 Anniversary Update, it is no longer
possible to query RAWINPUT for HID devices, and check for "IG_" in the device name.

Presumably, this will be fixed in the future.

This patch works around the issue by adding the Xbox One controller series to the
well-known device list.

This skips the more expensive RAWINPUT check for those devices, and causes them to
be detected as XInput devices once again.
2016-08-06 15:09:20 +02:00
Ryan C. Gordon
bcfb572aff disk audio: Make default i/o delay match what device is meant to be running at.
--HG--
extra : amend_source : 26fc7877000cec9bcd7a9f024b73b838120b16a0
2016-08-06 03:45:45 -04:00
Ryan C. Gordon
602c1026e0 disk audio: Implemented "capture" support, cleaned up some things. 2016-08-06 03:39:15 -04:00
Ryan C. Gordon
532edaa024 testaudiocapture: use capture device buffer queueing, for better test coverage. 2016-08-06 02:48:00 -04:00
Ryan C. Gordon
42e7791e9e audio: Implemented buffer queueing for capture devices (SDL_DequeueAudio()). 2016-08-06 02:47:27 -04:00
Ryan C. Gordon
3614f6b9d0 testaudiocapture: don't use fullscreen for the window. 2016-08-06 02:45:51 -04:00
Ryan C. Gordon
b441df53cc audio: SDL_ClearQueuedAudio() should free everything but two packets.
Otherwise, if you had a massive, one-time queue buildup, the memory from that
remains allocated until you close the device. Also, if you are just using a
reasonable amount of space, this would previously cause you to reallocate it
over and over instead of keeping a little bit of memory around.
2016-08-06 02:27:55 -04:00
Ryan C. Gordon
ac07b3e542 nas: initial shot at audio capture support. Compiles, but not tested. 2016-08-05 04:23:32 -04:00
Ryan C. Gordon
18b414baa6 audio: Changed OnlyHasDefaultInputDevice to OnlyHasDefaultCaptureDevice. 2016-08-05 02:04:48 -04:00
Ryan C. Gordon
fbb34c351c audio: changed some SDL_memset() calls to SDL_zero(), other minor corrections. 2016-08-05 01:59:06 -04:00
Ryan C. Gordon
26a75839f4 audio: Removed internal SDL_audiomem.h and macros.
I think this was important for SDL 1.2 because some targets needed
special device memory for DMA buffers or locked memory buffers for use in
hardware interrupts or something, but since it just defines to SDL_malloc
and SDL_free now, I took it out for clarity's sake.

--HG--
extra : histedit_source : 57b48e44e65de9ce4e16604167db325df05bdf98%2C31d881e4d1b5eeba771f04bb43be0d23c3e605ce
2016-08-05 01:44:15 -04:00
Ryan C. Gordon
84e966c070 audio: Clean up some CloseDevice() interface details.
- It's now always called if device->hidden isn't NULL, even if OpenDevice()
  failed halfway through. This lets implementation code not have to clean up
  itself on every possible failure point; just return an error and SDL will
  handle it for you.

- Implementations can assume this->hidden != NULL and not check for it.

- implementations don't have to set this->hidden = NULL when done, because
  the caller is always about to free(this).

- Don't reset other fields that are in a block of memory about to be free()'d.

- Implementations all now free things like internal mix buffers last, after
  closing devices and such, to guarantee they definitely aren't in use anymore
  at the point of deallocation.

--HG--
extra : histedit_source : 03a1d12c89ebcc01743777ec68663a227265a7c6%2C722b053ebe4647a9e601d4e2c42e4050366b7f7d
2016-08-05 01:44:41 -04:00
Ryan C. Gordon
66f1d7b971 arts: backed out audio capture support.
Turns out that libartsc isn't thread-safe, so if we run a capture and playback
device at the same time, it often crashes in arts's internal event loop.

We could throw mutexes around the read/write calls, but these are meant to
block, so one device could cause serious latency and stutter in the other.

Since this audio target isn't in high-demand (Ubuntu hasn't offered a libartsc
package for years), I'm just backing out the capture support. If someone needs
it, they can pull it out of the revision history.
2016-08-04 11:51:17 -04:00
Ryan C. Gordon
6fb74f5474 dummy audio: Patched to compile. 2016-08-03 16:54:10 -04:00
Philipp Wiesemann
e0a678cddf Fixed two old identifiers in header comments. 2016-08-03 22:39:44 +02:00
Philipp Wiesemann
f73dc1f190 PSP: Fixed memory leak if video init failed. 2016-08-03 22:32:20 +02:00
Philipp Wiesemann
d932507b4e WinRT: Removed not needed SDL_zerop() after SDL_calloc().
SDL_calloc() already sets memory to zero.
2016-08-03 22:32:02 +02:00
Philipp Wiesemann
9cb82d5ff2 Added brackets to function names in header comments so that doxygen links them. 2016-08-03 22:30:31 +02:00
Ryan C. Gordon
31fc31cb23 dummy audio: Implemented dummy audio capture support. :) 2016-08-03 02:18:47 -04:00
Ryan C. Gordon
e717a37601 bsdaudio: first shot at audio capture support!
(untested, uncompiled...for now.)
2016-08-03 01:57:41 -04:00
Ryan C. Gordon
a0e627f821 bsdaudio: this appears to be using the wrong variable...?
(We probably never noticed because this is meant to block until it fully
writes a buffer, and would only trigger an issue if we had a short write
that wasn't otherwise an error condition.)
2016-08-03 01:56:58 -04:00
Ryan C. Gordon
db0c70b5a8 arts: Patched to (maybe) compile. 2016-08-03 01:53:59 -04:00
Ryan C. Gordon
3ed7e95984 arts: implemented audio capture support.
(completely untested! Not even compiled!!).
2016-08-03 01:01:44 -04:00
Ryan C. Gordon
2883d9cce8 alsa: capture devices don't need a mixbuf allocated. 2016-08-03 01:00:30 -04:00
Ryan C. Gordon
047cd6cf87 testaudiocapture: made test app interactive.
(hold down mouse/finger to record, then it plays back what it heard. Repeat.)
2016-08-03 00:31:08 -04:00
Ryan C. Gordon
000e5b95d0 coreaudio: Implemented audio capture for iOS. 2016-08-03 00:30:12 -04:00
Ryan C. Gordon
effa79c36a testaudiocapture: Make a simple green/red window when recording/playing. 2016-08-02 19:17:51 -04:00
Ryan C. Gordon
7fc13682c7 alsa: Implemented audio capture support! 2016-08-02 15:06:40 -04:00
Ryan C. Gordon
94da231b4c alsa: Cleaned up the 5.1 swizzle mess a little.
Shouldn't this be something ALSA handles for us with channel maps, so we can
just delete this code?
2016-08-02 15:06:05 -04:00