Commit Graph
541 Commits
Author SHA1 Message Date
Matthew Hoops deb46ab38b AUDIO: Split the Intel DVI ADPCM into its own class
IMA is really just the definition on how to decode a sample from a nibble, DVI is just a way for those nibbles to be stored in the stream.
2011-04-13 09:45:13 -04:00
Max Horn 393c6f6ade AUDIO: Expose some internal ADPCM data tables 2011-04-13 12:48:57 +02:00
Max Horn e0a30e0039 AUDIO: Stop adpcm.h from including common/stream.h 2011-04-13 12:48:57 +02:00
Max Horn 7607e351cc TINSEL: Move custom ADPCM decoders to tinsel engine 2011-04-13 12:48:57 +02:00
Max Horn b9296a189e AUDIO: Expose ADPCM decoder internals via a new header
There are tons of ADPCM variants out there, and it is impractical to
stuff them all into a single adpcm.cpp file. By exposing the internals,
engines can implement their ADPCM decoder variants more easily.
2011-04-13 12:48:57 +02:00
Matthew Hoops 499753cbb8 AUDIO: Don't end the AAC stream if we still have buffered samples 2011-04-12 16:23:34 -04:00
Matthew Hoops 08b70fa1a7 AUDIO: Fix QuickTime/MPEG-4 seeking
MPEG-4 seeking was broken while QuickTime seeking was extremely slow. All is fixed now
2011-04-12 14:23:23 -04:00
Max Horn 0ce2ca4e00 COMMON: Replace MKID_BE by MKTAG
MKID_BE relied on unspecified behavior of the C++ compiler,
and as such was always a bit unsafe. The new MKTAG macro
is slightly less elegant, but does no longer depend on the
behavior of the compiler.
Inspired by FFmpeg, which has an almost identical macro.
2011-04-12 16:53:15 +02:00
Matthew Hoops 368e0e47b5 AUDIO: Remove unused variables 2011-04-10 18:20:53 -04:00
Matthew Hoops 9d0e5a7132 ALL: Add/update some comments 2011-04-10 15:11:03 -04:00
Matthew Hoops f9413e4dc2 AUDIO: Add support for AAC audio 2011-04-10 14:51:24 -04:00
Matthew Hoops 7c5dfaa04c COMMON: Parse the MPEG-4 esds atom 2011-04-08 22:46:19 -04:00
Matthew Hoops faee277978 COMMON: Add a DisposeAfterUse flag to QuickTimeParser 2011-04-08 17:04:29 -04:00
Matthew Hoops 88ebf13077 AUDIO: Allow for seeking in a QuickTimeAudioStream 2011-04-08 10:54:13 -04:00
Matthew Hoops 8cf73e3fb4 AUDIO: Split QuickTime audio into a new class
Standalone QuickTime files can now be played as an AudioStream
2011-04-07 19:40:07 -04:00
Max Horn 8c931fd1e8 AUDIO: Add Audio::MidiPlayer::createDriver(), let some engines use it 2011-03-28 18:06:36 +02:00
dhewg b8a118eb0c ANDROID: Use the midi gain option for EAS 2011-03-27 15:30:17 +02:00
dhewg 153e67b37c ANDROID: Maybe working support for EAS DLS soundfonts 2011-03-26 11:54:17 +01:00
dhewg 703af39be5 ANDROID: Add code to dump the EAS stream to a file 2011-03-26 11:11:32 +01:00
dhewg 41762892e0 ANDROID: Fix MIDI packet size
Instruments are now not reset to the grand piano due to trailing
zeroes.
Thanks to waltervn for noticing this.
2011-03-26 11:11:17 +01:00
Max Horn 6cc0aca5b2 AUDIO: Document issues with semantics of Audio::MidiPlayer::isPlaying() 2011-03-25 17:01:36 +01:00
dhewg 0e6cdfd675 ANDROID: Experimental MIDI Driver
Based on the SONiVOX® Embedded Audio Synthesis (EAS™) library, which is
part of the base Android OS.

CPU stats (Cortex A8 1GHz, monkey1 intro, peak values):
MAME OPL: 30%
DosBox OPL: 26%
EAS: 19%
2011-03-25 14:43:52 +01:00
Max Horn 7949d7c6de AUDIO: Move more common code to Audio::MidiPlayer
This also should fix some regressions from the previous
commits, related to MidiParser's either being leaked,
or being deleted and then used again (i.e., crashing).

I tested as many games as I had available, but further
testing of all affected engines is called for anyway.
2011-03-25 14:15:53 +01:00
Max Horn db3802b021 AUDIO: Whitespace fix 2011-03-25 14:15:52 +01:00
Max Horn 61ff5de0cf AUDIO: Rename 'channel' to 'ch' 2011-03-25 14:15:51 +01:00
Max Horn 62f5c475f3 AUDIO: Expand MidiPlayer docs / goals a bit, mention deadlock bug 2011-03-24 16:49:46 +01:00
Max Horn e9570c3a4b AUDIO: Added Audio::MidiPlayer class
This code is currently not complete, but contains enough code to
allow several engines to switch their pseudo MidiDrivers to be
based on this class, greatly reducing code duplication.
2011-03-24 16:46:46 +01:00
Max Horn c70c8864f1 AUDIO: Introduce a new MidiDriver_BASE base class.
The actual MidiDriver derives from it. MidiDriver_BASE only
provides the minimal API necessary for transmitting MIDI data.
The idea is that this is all MidiParser needs, thus allowing
us to simplify the various MidiPlayer classes in our engines.
2011-03-23 15:25:47 +01:00
Max Horn a539be098d AUDIO: Update some comments, remove some obsolete ones 2011-03-23 15:25:47 +01:00
Max Horn 8982fff1b7 AUDIO: Add pure virtual MidiDriver::isOpen() method
This in turn enables modifying MidiDriver_MPU401::close() to allow
it to be called on a midi driver that has not yet been opened.

The specific issue that triggered me to make these changes was a
crash-upon-quit in HUGO, caused by it instantiating a midi driver,
then encountering an error (missing hugo.dat) *before* having
opened the new midi driver; the general cleanup code then tries
to close the (not yet opened) midi driver -> kaboom

Also fixed some engines which were leaking MidiDriver instances.
2011-03-22 23:51:47 +01:00
dhewg bb12acfa0f AUDIO: Cleanup
Is it just me or is overwriting-but-not-marking-as-virtual
irritating?
2011-03-22 21:02:08 +01:00
dhewg 2def212de7 ALL: s/PI/M_PI/
Tip of the day: git grep -w PI
2011-03-19 11:24:06 +01:00
md5 a6aacc73e2 AUDIO: Changed several places that use PI to use M_PI instead 2011-03-19 02:30:32 +02:00
dhewg 3d576c184a AUDIO: Fix some whitespaces 2011-03-11 20:54:57 +01:00
dhewg a2a5083dc9 AUDIO: Work around ARM code volume limits
The ARM specific rate converters work with 8bit volume vars. Limit
volumes to 0xff to prevent crackling.
2011-03-11 20:54:52 +01:00
md5 87d7044a3f AUDIO: Removed comment about MDT_PREFER_MT32 and the MT-32 emulator 2011-03-01 12:24:28 +02:00
md5 4a5b30e21f MIDI: Updated documentation on MDT_PREFER_MT32 and MDT_PREFER_GM 2011-03-01 10:32:17 +02:00
dhewg bea57f6950 AUDIO: Make mixCallback return the sample count
The RateConverter::flow result was never used, pipe it through
Channel::mix to MixerImpl::mixCallback, so backends can decide
if they want to waste cpu cycles while playing empty buffers.
2011-02-27 09:04:36 +01:00
Johannes Schickel fb71d66e97 MT32: Adapt to setPalette RGBA->RGB change. 2011-02-14 17:08:33 +01:00
Johannes Schickel 87c81566b4 AUDIO: Fix assertion triggered by SubSeekableAudioStream constructor.
This assertion was introduced with 633b8ed277. I change the code to first
convert all parameters to the audio stream's framerate to avoid a possible use
of operator- on two AudioTimestamps with different framerates.
2011-02-13 22:07:34 +01:00
Max Horn 42ab839dd6 AUDIO: Rename sound/ dir to audio/
svn-id: r55850
2011-02-09 01:09:01 +00:00