Commit Graph

59 Commits

Author SHA1 Message Date
Sam Lantinga
d77ab77a7a Updated copyright for 2017 2017-01-01 18:33:28 -08:00
Sam Lantinga
9cc7ce9008 Renaming of guard header names to quiet -Wreserved-id-macro
Patch contributed by Sylvain
2016-11-20 21:34:54 -08:00
Ryan C. Gordon
b359e18624 dsp: Implemented audio capture support. 2016-08-07 02:43:20 -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
Sam Lantinga
255c182471 Updated copyright to 2016 2016-01-02 10:10:34 -08:00
Sam Lantinga
78f2198e6c Updated the copyright year to 2015 2015-05-26 06:27:46 -07:00
Ryan C. Gordon
8fc13c2484 Bunch of reworking to how we manage audio devices.
Device enumeration now happens at startup and then is managed exclusively
through hotplugging instead of full redetection. The device name list now has
a unique "handle" associated with each item and SDL will pass this to the
backend so they don't have to figure out how a human readable name maps to
real hardware for a second time.

Other cleanups, fixes, improvements, plus all the audio backends updated to
the new interface...largely untested at this point, though.
2015-03-18 02:01:17 -04:00
Ryan C. Gordon
8dc3028044 Initial work on audio device hotplug support.
This fills in the core pieces and fully implements it for Mac OS X.

Most other platforms, at the moment, will report a disconnected device if
it fails to write audio, but don't notice if the system's device list changed
at all.
2015-03-16 02:11:39 -04:00
Sam Lantinga
dba255c1e5 Fixed bug 2374 - Update copyright for 2014...
Is it that time already??
2014-02-02 00:53:27 -08:00
Ryan C. Gordon
03d5719413 Make internal SDL sources include SDL_internal.h instead of SDL_config.h
The new header will include SDL_config.h, but allows for other global stuff.
2013-11-24 23:56:17 -05:00
Sam Lantinga
753aae78fc Christoph Mallon: Remove pointless if (x) before SDL_free(x) 2013-08-29 08:29:21 -07:00
Sam Lantinga
0d9b661db8 File style cleanup for the SDL 2.0 release 2013-05-18 14:17:52 -07:00
Ryan C. Gordon
d619a9a9ee Changed audio subsystem's OpenDevice interface to return -1 on error.
This lets us 'return SDL_SetError("whatever");' on one line.

 Fixes Bugzilla #1778.
2013-03-31 13:05:40 -04:00
Sam Lantinga
019c60c1e8 Happy New Year! 2013-02-15 08:47:44 -08:00
Sam Lantinga
b3d60cfcbb Removed executable bit from source files 2012-09-27 14:35:28 -07:00
Sam Lantinga
e256711bb9 Happy New Year! 2011-12-31 09:28:07 -05:00
Sam Lantinga
6371c44a9e Lots of fixes importing SDL source wholesale into a new iOS project 2011-10-31 05:56:58 -04:00
Ryan C. Gordon
b5dce54a48 Patched to compile on Linux.
(Grumble grumble, should have tested better after all the history editing...)
2011-08-05 00:48:56 -04:00
Ryan C. Gordon
142fdca2c2 Removed no-op Deinitialize methods in audio drivers. 2011-07-26 14:20:22 -07:00
Ryan C. Gordon
9bcc29c934 Removed needless macros in various audio targets. 2011-07-26 14:18:00 -07:00
Ryan C. Gordon
78bf250a21 Cleaned up audio device detection. Cleared out a lot of cut-and-paste. 2011-08-04 00:31:11 -04:00
Sam Lantinga
6196aa221e SDL 1.3 is now under the zlib license. 2011-04-08 13:03:26 -07:00
Sam Lantinga
a2cdcf5486 Happy 2011! :) 2011-02-11 22:37:15 -08:00
Ryan C. Gordon
8d86c0cb33 Removed test for "driver is valid, but doesn't see any audio devices."
It was causing problems, and it really doesn't make sense to do it that way.

  Fixes Bugzilla #834.
2010-01-26 06:01:33 +00:00
Sam Lantinga
7052036491 Fixed bug #926
Updated copyright to LGPL version 2.1 and year 2010
2010-01-24 21:10:53 +00:00
Ryan C. Gordon
0f0a6bb19c Adjusted default choice of audio driver.
If a driver can definitely see available devices, it is chosen. Otherwise,
 we'll take the first driver that initializes but saw no devices...this might
 be because it can't enumerate them, or there really aren't any available.

This prevents the dsp driver from hogging control when there are no /dev/dsp*
 nodes (for example, on a Linux box with ALSA and no OSS emulation).
2009-01-01 07:54:58 +00:00
Sam Lantinga
befb0f7f42 Updated copyright date 2008-12-08 00:27:32 +00:00
Ryan C. Gordon
5f1123d8ed Merged r2906:2907 from 1.2 branch to trunk: power of two channels in dsp backend. 2006-11-13 00:38:13 +00:00
Sam Lantinga
c91d18d6ad indent is evil 2006-10-28 16:48:03 +00:00
Ryan C. Gordon
7f17eb8863 Merged SDL-ryan-multiple-audio-device branch r2803:2871 into the trunk. 2006-10-17 09:15:21 +00:00
Ryan C. Gordon
2acb0d9528 First shot at new audio data types (int32 and float32).
Notable changes:
 - Converters between types are autogenerated. Instead of making multiple
   passes over the data with seperate filters for endianess, size, signedness,
   etc, converting between data types is always one specialized filter. This
   simplifies SDL_BuildAudioCVT(), which otherwise had a million edge cases
   with the new types, and makes the actually conversions more CPU cache
   friendly. Left a stub for adding specific optimized versions of these
   routines (SSE/MMX/Altivec, assembler, etc)
 - Autogenerated converters are built by SDL/src/audio/sdlgenaudiocvt.pl. This
   does not need to be run unless tweaking the code, and thus doesn't need
   integration into the build system.
 - Went through all the drivers and tried to weed out all the "Uint16"
   references that are better specified with the new SDL_AudioFormat typedef.
 - Cleaned out a bunch of hardcoded bitwise magic numbers and replaced them
   with new SDL_AUDIO_* macros.
 - Added initial float32 and int32 support code. Theoretically, existing
   drivers will push these through converters to get the data they want to
   feed to the hardware.

Still TODO:
 - Optimize and debug new converters.
 - Update the CoreAudio backend to accept float32 data directly.
 - Other backends, too?
 - SDL_LoadWAV() needs to be updated to support int32 and float32 .wav files
   (both of which exist and can be generated by 'sox' for testing purposes).
 - Update the mixer to handle new datatypes.
 - Optionally update SDL_sound and SDL_mixer, etc.
2006-08-24 12:10:46 +00:00
Sam Lantinga
6bc598ea61 SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head. 2006-07-10 21:04:37 +00:00
Sam Lantinga
63695e2f76 Fixed some ultra-pedantic gcc warnings 2006-03-24 06:10:24 +00:00
Sam Lantinga
e1ae9a0b81 Fixed bug #175
Removed obsolete .cvsignore files... whee!
2006-03-23 21:39:58 +00:00
Sam Lantinga
190b425364 Use consistent identifiers for the various platforms we support.
Make sure every source file includes SDL_config.h, so the proper system
headers are chosen.
2006-02-21 08:46:50 +00:00
Sam Lantinga
f05187e232 New configure-based build system. Still work in progress, but much improved 2006-02-16 10:11:48 +00:00
Sam Lantinga
769424426d More header massaging... works great on Windows. ;-) 2006-02-10 06:48:43 +00:00
Sam Lantinga
d72a9898ed Configure dynamically generates SDL_config.h
I'm still wrestling with autoheader, but this should work for now...
Fixed lots of build problems with C library support disabled
2006-02-07 12:11:33 +00:00
Sam Lantinga
1e037cc218 Removed uses of stdlib.h and string.h 2006-02-07 09:29:18 +00:00
Sam Lantinga
02cc6c0f11 Use SDL_ prefixed versions of C library functions.
FIXME:
Change #include <stdlib.h> to #include "SDL_stdlib.h"
Change #include <string.h> to #include "SDL_string.h"
Make sure nothing else broke because of this...
2006-02-07 06:59:48 +00:00
Sam Lantinga
808a16717c Updated copyright information and removed rcs id lines (problematic in branch merges)
I batch edited these files, so please let me know if I've accidentally removed anybody's
credit here.
2006-02-01 06:32:25 +00:00
Sam Lantinga
8e7e19bb8e *** empty log message *** 2006-01-29 06:40:13 +00:00
Sam Lantinga
b2da79f8be Date: Tue, 01 Feb 2005 17:53:07 -0800
From: Bill May
Subject: [SDL] Diffs for dsp audio in case of failures.

The rewrite recently done for 1.2.8 forgot to handle error cases
by closing the audio.

Here is a patch that does.
2005-02-12 19:39:08 +00:00
Sam Lantinga
2018ef5731 Date: Mon, 11 Oct 2004 15:17:27 +0300 (EEST)
From: Hannu Savolainen
Subject: Re: SDL uses obsolete OSS features

I did some work on getting OSS to work better with SDL. There have been
some problems with select which should be fixed now.

I'm having some problems in understanding what is the purpose of the
DSP_WaitAudio() routine. I added a return to the very beginning of this
routine and commendted out the define for USE_BLOCKING_WRITES. At least
lbreakout2 seems to work as well as earlier. The latencies are the same.

An ordinary blocking write does exactly the same thing than DSP_WaitAudio
does. So I would recommend using the USE_BLOCKING_WRITES approach and
removing everything from the DSP_WaitAudio routine. Also enabling
USE_BLOCKING_WRITES makes it possible to simplify DSP_PlayAudio() because
you don't need to handle the partial writes (the do-while loop).

Attached is a patch against SDL-1.2.7. After these changes SDL will use
OSS as it's designed to be used (make it as simple as possible). This code
should work with all OSS implementations because it uses only the very
fundamental features that have been there since the jurassic times.
2004-11-12 21:39:04 +00:00
Sam Lantinga
2f5b8b6c5b Date: Sat, 9 Oct 2004 02:46:18 +0300 (EEST)
From: Hannu Savolainen
Subject: SDL uses obsolete OSS features

I was trying to compile SDL against the latest OSS version. It appeared
that SDL 1.2.7 is using a very old SOUND_PCM_WRITE_RATE ioctl that is
obsolete and has been removed from OSS. The right ioctl to call is
SNDCTL_DSP_SPEED. Attached is a patch (works with all OSS versions).
2004-10-09 22:11:45 +00:00
Sam Lantinga
32719e7429 Updated copyright information for 2004 (Happy New Year!) 2004-01-04 16:49:27 +00:00
Sam Lantinga
b5b9f2d039 Updated ALSA audio support for ALSA 0.9 2002-04-15 07:38:54 +00:00
Sam Lantinga
df4885048e Updated copyright information for 2002 2002-03-06 11:23:08 +00:00