Commit Graph

8777 Commits

Author SHA1 Message Date
Ryan C. Gordon
3a61ba8a90 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
7a1c094254 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
1bfeca6b49 emscripten audio: check for an "undefined" object, remove some console.log(). 2016-08-12 00:03:58 -04:00
Ryan C. Gordon
2208b9b47c audio: Cleaned up "extern AudioBootStrap" list. 2016-08-11 22:26:58 -04:00
Ryan C. Gordon
9d85883e61 audio: Renamed some internal driver symbols in various targets. 2016-08-11 22:22:09 -04:00
Ryan C. Gordon
e3ff255457 android: implement audio capture support. 2016-08-11 22:04:49 -04:00
Ryan C. Gordon
6409450101 directsound: Implemented audio capture support. 2016-08-10 16:00:16 -04:00
Ryan C. Gordon
c81be45f39 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.  :/
2016-08-10 15:34:24 -04:00
Ryan C. Gordon
d6dfe63aad audio: Patched to compile on C89 compilers. 2016-08-10 14:14:14 -04:00
Ryan C. Gordon
dda98ea011 emscripten audio: fix timer on capture's silence callback. 2016-08-10 14:13:48 -04:00
Ryan C. Gordon
92d53614ef 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
ec6d0d130a emscripten audio: Added audio capture support. 2016-08-09 16:58:32 -04:00
Ryan C. Gordon
42d1f00fec Added a FIXME. 2016-08-09 16:58:06 -04:00
Ryan C. Gordon
15f5e2ffcb 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
cbc84d7353 audio: Only allocate fake_stream if we're using the standard audio threads. 2016-08-09 00:44:59 -04:00
Ryan C. Gordon
7f5dfeaafa 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
Ryan C. Gordon
b359e18624 dsp: Implemented audio capture support. 2016-08-07 02:43:20 -04:00
Ryan C. Gordon
86b14339b4 winmm: Try to get full device names from the Windows Registry. 2016-08-07 01:48:38 -04:00
Ryan C. Gordon
af576bc77a winmm: Added a FIXME for truncated device names. 2016-08-06 23:05:02 -04:00
Ryan C. Gordon
83a1be6d3c winmm: Implemented audio capture support. 2016-08-06 19:34:32 -04:00
Ryan C. Gordon
a3fffdfc63 disk audio: Make default i/o delay match what device is meant to be running at. 2016-08-06 03:45:45 -04:00
Ryan C. Gordon
5caa28859d disk audio: Implemented "capture" support, cleaned up some things. 2016-08-06 03:39:15 -04:00
Ryan C. Gordon
32f2f907e8 testaudiocapture: use capture device buffer queueing, for better test coverage. 2016-08-06 02:48:00 -04:00
Ryan C. Gordon
4d927d82ed audio: Implemented buffer queueing for capture devices (SDL_DequeueAudio()). 2016-08-06 02:47:27 -04:00
Ryan C. Gordon
41e101f785 testaudiocapture: don't use fullscreen for the window. 2016-08-06 02:45:51 -04:00
Ryan C. Gordon
913665ffd8 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
1684861ef8 nas: initial shot at audio capture support. Compiles, but not tested. 2016-08-05 04:23:32 -04:00
Ryan C. Gordon
131fcd9fe0 audio: Changed OnlyHasDefaultInputDevice to OnlyHasDefaultCaptureDevice. 2016-08-05 02:04:48 -04:00
Ryan C. Gordon
1e4773bde7 audio: changed some SDL_memset() calls to SDL_zero(), other minor corrections. 2016-08-05 01:59:06 -04:00
Ryan C. Gordon
6b1488f2a5 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.
2016-08-05 01:44:15 -04:00
Ryan C. Gordon
d791a67db6 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.
2016-08-05 01:44:41 -04:00
Ryan C. Gordon
fa2aa88c2a 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
606e55be1f dummy audio: Patched to compile. 2016-08-03 16:54:10 -04:00
Ryan C. Gordon
f4d57c249f dummy audio: Implemented dummy audio capture support. :) 2016-08-03 02:18:47 -04:00
Ryan C. Gordon
edd97c1682 bsdaudio: first shot at audio capture support!
(untested, uncompiled...for now.)
2016-08-03 01:57:41 -04:00
Ryan C. Gordon
1d2a76a521 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
8452695f6a arts: Patched to (maybe) compile. 2016-08-03 01:53:59 -04:00
Ryan C. Gordon
38ab183b02 arts: implemented audio capture support.
(completely untested! Not even compiled!!).
2016-08-03 01:01:44 -04:00
Ryan C. Gordon
302477c0cb alsa: capture devices don't need a mixbuf allocated. 2016-08-03 01:00:30 -04:00
Ryan C. Gordon
f32e1a4671 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
68a9669205 coreaudio: Implemented audio capture for iOS. 2016-08-03 00:30:12 -04:00
Ryan C. Gordon
1b81d1bf07 testaudiocapture: Make a simple green/red window when recording/playing. 2016-08-02 19:17:51 -04:00
Ryan C. Gordon
fd1dc3e58a alsa: Implemented audio capture support! 2016-08-02 15:06:40 -04:00
Ryan C. Gordon
356b8ba2ea 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
Ryan C. Gordon
78c4b66217 audio: a little more robustness in the capture device's thread. 2016-08-02 15:04:33 -04:00
Ryan C. Gordon
8e430fdbb1 pulseaudio: Implemented audio capture support! 2016-08-02 13:50:58 -04:00
Ryan C. Gordon
4fe614c37e audio: implemented higher level infrastructure for running capture devices. 2016-08-02 13:50:21 -04:00
Ryan C. Gordon
a9f4b6ad89 audio: Made some SDL_AudioDevice fields atomic.
This makes sure they're properly communicated to the audio threads.
2016-08-02 13:48:52 -04:00
Ryan C. Gordon
ceae704649 testaudiocapture: Let specific devices be opened. 2016-08-02 13:38:56 -04:00
Ryan C. Gordon
c5f2990259 BUGS.txt: Bugzilla supports SSL; changed link to https:// ... 2016-08-01 13:36:43 -04:00