Commit graph

239 commits

Author SHA1 Message Date
mazmazz
9d0d101d03 I_SongPlaying detect GME properly 2018-08-24 18:00:39 -04:00
mazmazz
4d91b44c63 Detect GME more simply 2018-08-24 17:58:56 -04:00
mazmazz
bd01c75a4e Stub I_UnloadSong because we already unload in I_StopMusic
* Stop-gap for now. Ideally the logic would be in the respective places.
2018-08-24 17:56:22 -04:00
mazmazz
a688de5dc2 Volume fixes 2018-08-24 17:56:14 -04:00
mazmazz
fb6f8c8a07 A word 2018-08-24 13:41:26 -04:00
mazmazz
df455fc638 Merge branch 'music-cleanup' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into music-cleanup 2018-08-24 13:36:07 -04:00
mazmazz
5f21bf230d GME fix: play song in I_PlaySong, not I_LoadSong 2018-08-24 13:35:41 -04:00
mazmazz
bf61dbb6e2 Checkpoint: Revised fading routines for new load/play pattern
* Perform fade-out/fade-in using callbacks
* Move queued music from interface to s_sound
2018-08-24 13:11:38 -04:00
mazmazz
a2d626384a Merge branch 'music-cleanup' into musicplus-core
Pending rewrite of fade music changing

# Conflicts:
#	src/android/i_sound.c
#	src/djgppdos/i_sound.c
#	src/i_sound.h
#	src/s_sound.c
#	src/s_sound.h
#	src/sdl/mixer_sound.c
#	src/sdl/sdl_sound.c
#	src/win32/win_snd.c
2018-08-23 21:07:39 -04:00
mazmazz
9e6eebeb8d Refactor I_MusicType MusicPlaying and MusicPaused other targets 2018-08-23 20:23:16 -04:00
mazmazz
4b82de9e54 Refactor I_MusicType MusicPlaying and MusicPaused -> I_SongType ... 2018-08-23 20:14:46 -04:00
mazmazz
a7d51bf810 Minor refactoring and reordering
* I_GetMusicType() -> I_MusicType()
* Wrap MIDI volume hack in #ifdef _WIN32
2018-08-23 17:05:37 -04:00
mazmazz
f5f0b5e76c Refactoring, music statues
* S_Init -> S_InitSfxChannels because it did mostly SFX anyway
* S_MusicPlaying, S_MusicPaused, S_MusicName, S_MusicExists new status methods
* I_MusicPlaying, I_MusicPaused
2018-08-23 12:30:47 -04:00
mazmazz
701cc5a7dd Consolidate I_SetDigMusicVolume and I_SetMIDIMusicVolume into one method
* In s_sound, they are merged to one method as well, but there are still two separate digvolume and seqvolume variables
* Simplified Dig/MidiMusicDisabled in s_sound
* Method reordering
2018-08-23 11:54:36 -04:00
mazmazz
55f3803e4b Added I_GetMusicType and removed midimode variable
* Revised S_PlayMusic arguments
* Now music plays again!
2018-08-23 10:18:38 -04:00
mazmazz
e89eccf78e Loose ends from previous work
* Pause/ResumeSong remove handle argument
* LoadSong declare char *data argument
* Variable weirdness
2018-08-23 09:36:51 -04:00
mazmazz
7efab8b314 Revert "Nix'd midimusicvolume", don't know what I want to do with this yet
This reverts commit b5c3095820.

# Conflicts:
#	src/i_sound.h
#	src/s_sound.c
#	src/s_sound.h
#	src/sdl/mixer_sound.c
2018-08-23 09:06:13 -04:00
mazmazz
e42defa299 Playback routines: Load, Play, Pause, Stop, Unload
* Re-purpose I_LoadSong for digital music loading
* I_StartDigSong logic split between I_LoadSong and I_PlaySong
* Pause, Stop, and Unload routines are combined from Digi and MIDI
* music_lumpnum, music_data, music_handle from s_sound.c are gone
2018-08-23 09:02:14 -04:00
mazmazz
b5c3095820 Nix'd midimusicvolume 2018-08-23 07:39:32 -04:00
mazmazz
7d64c3114c SDL Mixer X compile on Windows x86 2018-08-22 00:17:25 -04:00
mazmazz
3829998889 Initial work on SDL Mixer X 2018-08-21 14:57:53 -04:00
mazmazz
76f9890328 Position fixes with looppoint 2018-08-21 11:58:38 -04:00
mazmazz
2289a3bd79 I_FadeSongFromLevel -> I_FadeSongFromVolume refactor
* S_MusicName->GetMusicName refactor
* S_ChangeMusicWithFade->ChangeMusicAdvanced refactor
2018-08-21 08:53:51 -04:00
mazmazz
a1b1391e24 Interface name refactor: Music -> Song
* Music refers to the music system, song refers to the entity being played.
* s_sound doesn't follow this, everything is music
2018-08-21 06:22:35 -04:00
mazmazz
17e2c3f5be Debug messages 2018-08-20 08:47:41 -04:00
mazmazz
9539c597dd Midimode safeties for song queueing/fading 2018-08-20 01:14:29 -04:00
mazmazz
9eeed6338f Allow queueing music at end of song, not just fading 2018-08-20 00:12:23 -04:00
mazmazz
e51f9ecf90 * Allow S_ChangeMusic to queue the same track for fading
* StopDigSong upon running queue so that GME works for queueing
2018-08-19 23:20:40 -04:00
mazmazz
2cf49f9361 I_FadeOutStopMusic, I_FadeInStartDigSong, S_ChangeMusicWithFade implementation
* First attempt, a little messy but works fine
2018-08-19 22:05:42 -04:00
mazmazz
b844a908a1 Make S_FadeMusicFromLevel accept mandatory source_volume
* Make S_FadeMusic a legitimate function to grab current internal volume
2018-08-19 17:02:13 -04:00
mazmazz
3d8c4585d4 Checkpoint 2018-08-19 16:25:12 -04:00
mazmazz
918976bdcc S_FadeMusic[FromLevel] and S_StopFadingMusic implementation 2018-08-19 16:19:48 -04:00
mazmazz
d5dfde240d I_SetInternalMusicVolume implementation 2018-08-19 09:38:57 -04:00
mazmazz
51228b328c Framework for internal_volume; more fade code 2018-08-19 09:16:52 -04:00
mazmazz
69153194fe Merge branch 'musicplus-core' into musicplus-fade-sdltimer 2018-08-19 08:35:56 -04:00
mazmazz
6ea002b1b5 Enable midi_volume, it actually works 2018-08-19 08:34:03 -04:00
mazmazz
47495e72b5 Fade checkpoint 2018-08-19 08:32:12 -04:00
mazmazz
c4ea18b2bb Add LIBGME ifdefs 2018-08-19 06:43:57 -04:00
mazmazz
a38664e109 Minor cleanup 2018-08-18 23:26:58 -04:00
mazmazz
3bd3e51313 Merge branch 'musicplus-core' into musicplus-fade-sdltimer
# Conflicts:
#	src/sdl/mixer_sound.c
2018-08-18 23:12:58 -04:00
mazmazz
3e7d7cfcae Fixed loop point counter bug 2018-08-18 21:29:18 -04:00
mazmazz
5487fd5be0 Fix S_SetMusicLoopPoint wrong method; trigger only on is_looping 2018-08-18 20:54:56 -04:00
mazmazz
5f564f7798 Consolidate variable cleanup in mixer_sound
* Fix I_SetSongTrack MOD tracking returns the expected result
* Make music_loop hook stop digital song properly if not looping
2018-08-18 20:44:32 -04:00
mazmazz
78b041800e Loop point modulo by length 2018-08-18 20:29:19 -04:00
mazmazz
fdd1af62a8 I_GetMusicLoopPoint and I_SetMusicLoopPoint implementation
* Stub pause for MIDI
* Fix MP3 tag wide char search
* Reset songpaused bool where appropriate
2018-08-18 20:19:44 -04:00
mazmazz
d7720a8556 Remove I_MIDIPlaying 2018-08-18 17:45:57 -04:00
mazmazz
bd1eece7bc S_MusicType implementation; MOD support for Get/SetMusicPosition and MusicLength
* Misc MOD fixes
2018-08-18 17:17:53 -04:00
mazmazz
3c2f7038d0 Added GME for GetMusicLength, SetMusicPosition, GetMusicPosition
* Misc fixes
2018-08-18 16:21:28 -04:00
mazmazz
f4a574aba2 Support wide chars when searching for music tags (MP3) 2018-08-18 15:26:31 -04:00
mazmazz
c6035f5956 I_GetMusicLength implementation 2018-08-18 14:18:29 -04:00
Monster Iestyn
364339e1ce Merge branch 'sdl_mixer_fixes' into 'master'
SDL Mixer fixes

Closes #31

See merge request STJr/SRB2!260
2018-08-16 16:57:14 -04:00
mazmazz
8452ec5c7c Checkpoint: Basic functions 2018-08-15 12:07:08 -04:00
mazmazz
0254f4f368 Fix merge errors 2018-08-15 02:42:50 -04:00
mazmazz
e0ab8c1ed0 Fix #6 #7 SDL looping and counter bugs when looping=false
# Conflicts:
#	src/sdl12/mixer_sound.c
2018-08-15 02:15:05 -04:00
mazmazz
11c6148d4b SDL: Fix looping bug when looping=false; reset bytes counter when non-looping
# Conflicts:
#	src/sdl12/mixer_sound.c
2018-08-15 02:11:17 -04:00
mazmazz
47423a69ed Refactor to SetMusicPosition, GetMusicPosition
# Conflicts:
#	src/lua_baselib.c
#	src/nds/i_sound.c
#	src/sdl12/mixer_sound.c
#	src/sdl12/sdl_sound.c
#	src/win32ce/win_snd.c
2018-08-15 02:10:46 -04:00
mazmazz
79531b9683 Another loop fix to resolve music_bytes not resetting on non-looppoint tracks
# Conflicts:
#	src/sdl12/mixer_sound.c
2018-08-15 02:03:04 -04:00
mazmazz
2e9dba352a SDL mixer: Fix no looping bug when changing song position
# Conflicts:
#	src/sdl12/mixer_sound.c
2018-08-15 02:02:33 -04:00
mazmazz
d39f804662 Use Mix_PausedMusic instead of our own music_paused flag in SDL2/SDL1.2 I_MusicPaused
# Conflicts:
#	src/sdl12/mixer_sound.c
2018-08-15 01:55:49 -04:00
mazmazz
2483c11cc4 Implement I_MusicPaused in SDL2, SDL1.2, and FMOD; console and lua commands
# Conflicts:
#	src/sdl12/mixer_sound.c
2018-08-15 01:55:03 -04:00
mazmazz
e4a6cb87d1 Fix SDL music counter pause issue 2018-08-15 01:54:17 -04:00
mazmazz
297a8d537a Add S_MidiPlaying and S_MusicPlaying via I_MIDIPlaying and I_MusicPlaying
# Conflicts:
#	src/sdl12/mixer_sound.c
2018-08-15 01:53:45 -04:00
mazmazz
d47d18998b Add S_MidiPlaying and S_MusicPlaying via I_MIDIPlaying and I_MusicPlaying
# Conflicts:
#	src/sdl12/mixer_sound.c
2018-08-15 01:43:51 -04:00
mazmazz
2cf364ab8b Fix SDL music position getting; dummy out position methods for MIDI
# Conflicts:
#	src/sdl/mixer_sound.c
#	src/sdl12/mixer_sound.c
2018-08-15 01:42:15 -04:00
mazmazz
aed388976c SDL fix for I_SetSongPosition
# Conflicts:
#	src/sdl12/mixer_sound.c
2018-08-15 01:40:54 -04:00
mazmazz
8981ef2cdc Change get/set music position to UINT32 parameter, milliseconds
# Conflicts:
#	src/d_netcmd.c
#	src/lua_baselib.c
#	src/nds/i_sound.c
#	src/sdl12/mixer_sound.c
#	src/sdl12/sdl_sound.c
#	src/win32ce/win_snd.c
2018-08-15 01:40:20 -04:00
mazmazz
a4f7b17389 Initial attempt for get/set song position
* Declared I_SetSongPosition, I_GetSongPosition
* Implemented S_PositionMusic and S_GetPositionMusic
* Exposed in console TUNES and lua
* Implemented set position in SDL, SDL12, WIN32
* Implemented get position in WIN32

# Conflicts:
#	src/nds/i_sound.c
#	src/sdl12/mixer_sound.c
#	src/sdl12/sdl_sound.c
#	src/win32ce/win_snd.c
2018-08-15 01:38:06 -04:00
Monster Iestyn
485d990949 Merge branch 'gme-lowvolume-fix' into 'master'
GME low volume fix

See merge request STJr/SRB2!248
2018-07-31 14:35:32 -04:00
Steel Titanium
c02ee9a502 Re-did this fix. 2018-07-28 01:58:25 -04:00
Monster Iestyn
6b1fa399dc Use plain malloc instead of Z_Malloc to allocate sound buffers in mixer_sound.c's I_GetSfx.
This should prevent I_FreeSfx making a mess of things later, hopefully.
2018-07-14 18:15:59 +01:00
Steel Titanium
77362c45cc Fix pausing on gme 2018-06-03 18:15:20 -04:00
Steel Titanium
e394f7992d Removed CONS_Printf line. That wasn't meant to be commited. 2018-05-29 22:12:36 -04:00
Steel Titanium
0248fcecd4 Some small change
Really this is just to prevent the music end up being disorted at max
volume
2018-05-29 20:31:28 -04:00
Steel Titanium
0b6d6c3363 GME low volume fix 2018-05-24 16:24:09 -04:00
Monster Iestyn
a33bb70a0c Removed all support for Dreamcast, XBox, PSP, PS3, GP2X, Wii, and WinCE from files in the sdl/ folder. If you wanted these ports, use the SDL 1.2 code in sdl12
Also removed GP2X setup from sdl/MakeNIX.cfg, use sdl12 for that too
2017-09-16 20:26:04 +01:00
ilag11111
c977d17416 Prevent truncation when resampling sounds with non-multiples of 11250. 2016-09-11 09:41:18 -07:00
Alam Ed Arias
4d6a3e3398 FUNCMATH fun 2016-06-12 16:08:48 -04:00
Alam Ed Arias
f45feb77fc MSVC: kill level 3 warnings 2016-05-22 00:44:12 -04:00
Inuyasha
e91cfa7110 Fixed frustrating MIDI stuff
Until we use something besides Native MIDI to play
back MIDI music, MIDI volume changing is disabled
since it causes way too much of a damn headache.
(It's not even our fault, it's fucking MS.)
2016-04-06 08:16:13 -07:00
Alam Ed Arias
2b12e5ff20 Merge branch 'next' into backport_unslot-music 2016-02-26 02:11:29 -05:00
Inuyasha
6dda71bef7 I guess this is becoming the "try to make SDL_mixer work" branch
Move InitSubSystem calls into proper places,
don't use AUDIO_S16LSB (bad according to SDL_mixer docs)
Add error checking
2016-02-22 23:08:35 -08:00
Inuyasha
8c17dac589 The concept of "music slots" doesn't exist anymore.
Use whatever names you want for your music. So long as you prefix the lumps with O_ or D_, it doesn't matter anymore.
DISCLAIMER: Linedef type 413 (change music) and Lua scripting is not tested.

(cherry picked from commit 025ca413a2)

# Conflicts:
#	src/p_user.c
2016-02-09 02:48:33 -08:00
Ronald Kinard
8eef7239b2 Change mixer panning to make sense
This makes positional audio in sdl work correctly (things to the left
play sounds in the left speaker)
2014-08-04 02:48:18 -05:00
Ronald Kinard
03fe3bdad2 Replace sdl with sdl2
SDL1.2 is dead, long live SDL
2014-07-26 02:06:00 -05:00
Alam Ed Arias
f03e591f64 change SDL into HAVE_SDL 2014-07-25 19:10:24 -04:00
ilag11111
b21d5c55c9 Uses fixed-point math to properly calculate the exact amount of space needed. 2014-04-25 13:17:05 -07:00
ilag11111
f7bbf8c6d0 Improved fix by changing the formula for how memory is allocated to arbitrary sample rate conversion. 2014-04-25 12:42:43 -07:00
ilag11111
60a115b0a7 Fix (Linux) 64-bit crash in CEZ3 (playback of sfx_litng3). 2014-04-25 00:37:13 -07:00
Alam Ed Arias
b93cb1b65a SRB2 2.1 release 2014-03-15 13:11:35 -04:00