summaryrefslogtreecommitdiff
path: root/src/i_sdlmusic.c
AgeCommit message (Collapse)Author
2015-02-20Warning fixesJames Haley
Signed/unsigned comparison mismatches
2014-10-24Replace strdup() with M_StringDuplicate().Simon Howard
strdup() can theoretically fail and return NULL. This could lead to a crash or undesirable behavior. Add M_StringDuplicate() which does the same thing but exits with an error if a string cannot be allocated. This fixes #456. Thanks to Quasar for the suggestion.
2014-10-24Ignore metadata loop tags if both are zero.Simon Howard
If LOOP_START and LOOP_END are both set to zero, ignore them. This is consistent with other source ports.
2014-10-24Ignore loop tags on non-looping substitute tracks.Simon Howard
If a substitute music track is played in a non-looping configuration (eg. the title screen music), ignore loop tags in the file to be consistent with other source ports. This fixes a bug that was discussed on #245.
2014-10-07Allow multiple substitute mappings for music tracks.Simon Howard
For the Hexen substitute mapping configuration file, it's desirable to be able to include two mappings for each music lump: a straight high quality recording of that lump, and the recording that was included on the Hexen CD audio tracks. So allow multiple mappings so that we can fall back to try other filenames if the first choice file doesn't appear to exist.
2014-05-11Fix compilation with MSVC2008alexey.lysiuk
2014-05-08music: Allow / separators in substitute filenames.Simon Howard
For substitute music files we want to be able to specify relative paths in a platform-independent way using Unix path separators. Replace Unix-style / separators in the path that was read with the path separator for the native system.
2014-05-05Clean up file headers.Simon Howard
This change rewrites and simplifies the copyright headers at the top of all source files: * Remove "Emacs style mode select" line; this line was included in the headers for the originally released source files and appears to be to set the file type for old versions of Emacs. I'm not sure entirely why it was required but I don't think it is any more. * Remove "You should have received a copy of..." text from copyright header. This refers to the old 59 Temple Place address where the FSF headquarters used to be located and is no longer correct. Rather than change to the new address, just remove the paragraph as it is superfluous anyway. This fixes #311. * Remove ---- separator lines so that the file headers are barer and more simplified.
2014-05-04music: Tweak comment parsing for substitute configs.Simon Howard
Allow comments to be attached to the end of configuration lines, as well as being specified on a line on their own.
2014-04-27music: Add loop point Ogg/Flac metadata support.Simon Howard
ZDoom has defined a format for Vorbis metadata comments named LOOP_START and LOOP_END that allow the start and end points to be defined in .ogg and .flac files for looping music. Add support for these (they are used in Brandon Blume's SC-55 recordings).
2014-04-22Fix a segfault in i_sdlmusic.cFabian Greffrath
We are free()ing the const char* a few lines later.
2014-04-12music: Fix -dumpsubstconfig for Heretic/Hexen.Simon Howard
The config dumping command line option assumed that music lumps were named like D_MYLUMP, but this is not the case for Heretic and Hexen, where there is no D_ prefix and music lumps can have any name. Change the logic to instead look at the contents of lumps and identify music lumps from the MUS / MIDI header.
2014-04-07music: Suggest using .ogg format, not .mp3.Simon Howard
Using the .mp3 extension in generated music config files carries an implicit recommendation to use that format. There are a number of reasons to prefer other formats. The biggest is that MP3 is patent encumbered. Furthermore, while FLAC and Ogg Vorbis both support the Vorbis comment format that allows metadata loop point tags to be specified.
2014-04-05music: Minor tweaks to substitute music code.Simon Howard
Use appropriate directory separator for OS when generating config file paths. When generating config files, include a header line that indicates what is being assigned.
2014-04-05music: First code for HQ music substitution.Simon Howard
This adds support for high quality music packs that replace Doom's built-in MIDI music with digital recordings. In particular this allows recordings of the Roland SC-55 to be used in Chocolate Doom. This is the first essential step for bug #245.
2014-03-30music: Free string using free() rather than Z_Free().Simon Howard
Mistake introduced in previous commit.
2014-03-30Eliminate some uses of sprintf() from common code.Simon Howard
As part of this, add DIR_SEPARATOR_S as a string version of the DIR_SEPARATOR macro. Change M_TempFile() to return a string allocated on the C heap rather than the zone heap. This is a first step towards fixing #371.
2014-03-23music: Add config var for external music program.Simon Howard
Mix_SetMusicCMD() allows a program to be specified to configure an external program to be invoked for music playback. Add a config variable (snd_musiccmd) to allow this to be set from a configuration file. Thanks to Holering for his comments on Doomworld about how to do this.
2013-03-03Add GUS pseudo-emulation.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2566
2013-03-03Fix improper freeing of temp_timidity_cfg.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2565
2013-03-03Add configuration file variable to specify path to a Timidity configSimon Howard
file. Subversion-branch: /branches/v2-branch Subversion-revision: 2564
2010-04-30Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1924
2009-11-21Merge from trunk.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1737
2009-11-21Merge from trunk.Simon Howard
Subversion-branch: /branches/opl-branch Subversion-revision: 1734
2009-11-19Rework the OS X MIDI disabling code, as SDL_mixer 1.2.11 fixes theSimon Howard
crash. Check and disable MIDI by default if using an older version of SDL on OS X. Subversion-branch: /trunk/chocolate-doom Subversion-revision: 1730
2009-10-01Merge from trunk.Simon Howard
Subversion-branch: /branches/opl-branch Subversion-revision: 1702
2009-10-01Oops.Simon Howard
Subversion-branch: /trunk/chocolate-doom Subversion-revision: 1701
2009-09-30Change British English spellings to American English, for consistency.Simon Howard
Subversion-branch: /trunk/chocolate-doom Subversion-revision: 1699
2009-03-04Add initial stub for OPL backend.Simon Howard
Subversion-branch: /branches/opl-branch Subversion-revision: 1447
2008-12-01Add missing header includes.Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1398
2008-09-08Move s_sound.[ch] to doom/Simon Howard
Subversion-branch: /branches/raven-branch Subversion-revision: 1213
2008-09-08Split off some of the s_sound.c code into i_sound.c and reimplement theSimon Howard
old low-level sound API as a thin wrapper around the module system. Decouple the low-level code from the high-level code. Subversion-branch: /branches/raven-branch Subversion-revision: 1212
2008-09-07Move dehacked code to doom/. Split dehacked string replacement code intoSimon Howard
common code and remove dependencies on deh_main.h. Subversion-branch: /branches/raven-branch Subversion-revision: 1210
2008-09-06Remove includes of doomdef.h where possible, move generic parts into topSimon Howard
level. Subversion-branch: /branches/raven-branch Subversion-revision: 1204
2007-08-19Use __APPLE__ instead of __MACOSX__.Simon Howard
Subversion-branch: /trunk/chocolate-doom Subversion-revision: 957
2007-06-21Add arrlen() macro as a clearer way of doing sizeof(array) /Simon Howard
sizeof(*array) Subversion-branch: /trunk/chocolate-doom Subversion-revision: 922
2007-06-17Make the music code modular as well, although for the time being thereSimon Howard
is only one module. Remove s_dummy.c. Subversion-branch: /trunk/chocolate-doom Subversion-revision: 914
2007-06-17Split i_sound.c into i_sdlsound.c, i_sdlmusic.c, with generic "soundSimon Howard
driver" modules, one for PC speaker and one for digital output. Subversion-branch: /trunk/chocolate-doom Subversion-revision: 913