From 51d4347e2cecb5381c36cbd8acb1d2eaafae1d59 Mon Sep 17 00:00:00 2001 From: terminx Date: Thu, 25 Oct 2018 23:33:04 +0000 Subject: [PATCH] Remove unnecessary "Playing" member of VoiceNode struct git-svn-id: https://svn.eduke32.com/eduke32@7124 1a8010ca-5511-0410-912e-c29ae57300e0 --- source/audiolib/src/_multivc.h | 1 - source/audiolib/src/flac.cpp | 7 ------- source/audiolib/src/formats.cpp | 17 ++++------------- source/audiolib/src/multivoc.cpp | 16 ++++++++-------- source/audiolib/src/vorbis.cpp | 10 ---------- source/audiolib/src/xa.cpp | 6 ------ source/audiolib/src/xmp.cpp | 8 -------- 7 files changed, 12 insertions(+), 53 deletions(-) diff --git a/source/audiolib/src/_multivc.h b/source/audiolib/src/_multivc.h index cf19fb6f8..3fe62f963 100644 --- a/source/audiolib/src/_multivc.h +++ b/source/audiolib/src/_multivc.h @@ -144,7 +144,6 @@ typedef struct VoiceNode uint32_t SamplingRate; uint32_t RateScale; uint32_t position; - int32_t Playing; int32_t Paused; int32_t handle; diff --git a/source/audiolib/src/flac.cpp b/source/audiolib/src/flac.cpp index ec4e2fa1c..9bbbf5f5a 100644 --- a/source/audiolib/src/flac.cpp +++ b/source/audiolib/src/flac.cpp @@ -316,8 +316,6 @@ static playbackstatus MV_GetNextFLACBlock(VoiceNode *voice) FLAC__StreamDecoderState decode_state; // FLAC__bool decode_status; - voice->Playing = TRUE; - if ((FLAC__uint64)(uintptr_t)voice->LoopEnd > 0 && fd->sample_pos >= (FLAC__uint64)(uintptr_t)voice->LoopEnd) if (!FLAC__stream_decoder_seek_absolute(fd->stream, (FLAC__uint64)(uintptr_t)voice->LoopStart)) MV_Printf("MV_GetNextFLACBlock FLAC__stream_decoder_seek_absolute: LOOP_START %ul, LOOP_END %ul\n", @@ -330,7 +328,6 @@ static playbackstatus MV_GetNextFLACBlock(VoiceNode *voice) if (!decode_status) { MV_Printf("MV_GetNextFLACBlock: %s\n", FLAC__StreamDecoderStateString[decode_state]); - voice->Playing = FALSE; return NoMoreData; } */ @@ -350,10 +347,7 @@ static playbackstatus MV_GetNextFLACBlock(VoiceNode *voice) (FLAC__uint64)(uintptr_t)voice->LoopStart); } else - { - voice->Playing = FALSE; return NoMoreData; - } } #if 0 @@ -489,7 +483,6 @@ int32_t MV_PlayFLAC(char *ptr, uint32_t length, int32_t loopstart, int32_t loope voice->priority = priority; voice->callbackval = callbackval; - voice->Playing = TRUE; voice->Paused = FALSE; voice->LoopStart = 0; diff --git a/source/audiolib/src/formats.cpp b/source/audiolib/src/formats.cpp index d50d21485..b2182dfcf 100644 --- a/source/audiolib/src/formats.cpp +++ b/source/audiolib/src/formats.cpp @@ -34,10 +34,7 @@ static playbackstatus MV_GetNextWAVBlock(VoiceNode *voice) if (voice->BlockLength == 0) { if (voice->LoopStart == NULL) - { - voice->Playing = FALSE; return NoMoreData; - } voice->BlockLength = voice->LoopSize; voice->NextBlock = voice->LoopStart; @@ -76,7 +73,6 @@ static playbackstatus MV_GetNextVOCBlock(VoiceNode *voice) const uint8_t *ptr = (uint8_t const *)voice->NextBlock; - voice->Playing = TRUE; voice->Paused = FALSE; int voicemode = 0; @@ -91,8 +87,7 @@ static playbackstatus MV_GetNextVOCBlock(VoiceNode *voice) // Stop playing if we get a NULL pointer if (ptr == NULL) { - voice->Playing = FALSE; - done = TRUE; + done = 2; break; } @@ -121,8 +116,7 @@ end_of_data: if ((voice->LoopStart == NULL) || ((intptr_t) voice->LoopStart >= ((intptr_t) ptr - 4))) { - voice->Playing = FALSE; - done = TRUE; + done = 2; } else { @@ -254,8 +248,7 @@ end_of_data: default : // Unknown data. Probably not a VOC file. - voice->Playing = FALSE; - done = TRUE; + done = 2; break; } @@ -263,7 +256,7 @@ end_of_data: } while (!done); - if (voice->Playing) + if (done != 2) { voice->NextBlock = (char const *)ptr + blocklength; voice->sound = (char const *)ptr; @@ -397,7 +390,6 @@ int32_t MV_PlayWAV(char *ptr, uint32_t length, int32_t loopstart, int32_t loopen voice->rawdataptr = (uint8_t *)ptr; voice->ptrlength = length; - voice->Playing = TRUE; voice->Paused = FALSE; voice->LoopCount = 0; voice->position = 0; @@ -464,7 +456,6 @@ int32_t MV_PlayVOC(char *ptr, uint32_t length, int32_t loopstart, int32_t loopen voice->rawdataptr = (uint8_t *)ptr; voice->ptrlength = length; - voice->Playing = TRUE; voice->Paused = FALSE; voice->wavetype = FMT_VOC; voice->bits = 8; diff --git a/source/audiolib/src/multivoc.cpp b/source/audiolib/src/multivoc.cpp index 84456ce34..441c46fdd 100644 --- a/source/audiolib/src/multivoc.cpp +++ b/source/audiolib/src/multivoc.cpp @@ -135,12 +135,12 @@ const char *MV_ErrorString(int32_t ErrorNumber) } } -static void MV_Mix(VoiceNode *voice, int const buffer) +static bool MV_Mix(VoiceNode *voice, int const buffer) { /* cheap fix for a crash under 64-bit linux */ /* v v v v */ if (voice->length == 0 && (voice->GetSound == NULL || voice->GetSound(voice) != KeepPlaying)) - return; + return false; int32_t length = MV_MIXBUFFERSIZE; uint32_t FixedPointBufferSize = voice->FixedPointBufferSize; @@ -169,7 +169,7 @@ static void MV_Mix(VoiceNode *voice, int const buffer) if (position >= voice->length) { voice->GetSound(voice); - return; + return true; } voclength = (voice->length - position + rate - voice->channels) / rate; @@ -193,8 +193,8 @@ static void MV_Mix(VoiceNode *voice, int const buffer) if (voice->position >= voice->length) { // Get the next block of sound - if (voice->GetSound(voice) != KeepPlaying) - return; + if (voice->GetSound(voice) == NoMoreData) + return false; if (length > (voice->channels - 1)) { @@ -203,6 +203,8 @@ static void MV_Mix(VoiceNode *voice, int const buffer) } } } while (length > 0); + + return true; } void MV_PlayVoice(VoiceNode *voice) @@ -314,10 +316,8 @@ static void MV_ServiceVoc(void) MV_BufferEmpty[ MV_MixPage ] = FALSE; - MV_Mix(voice, MV_MixPage); - // Is this voice done? - if (!voice->Playing) + if (!MV_Mix(voice, MV_MixPage)) { //JBF: prevent a deadlock caused by MV_StopVoice grabbing the mutex again //MV_StopVoice( voice ); diff --git a/source/audiolib/src/vorbis.cpp b/source/audiolib/src/vorbis.cpp index 3e8e21d90..f141aef4e 100644 --- a/source/audiolib/src/vorbis.cpp +++ b/source/audiolib/src/vorbis.cpp @@ -226,8 +226,6 @@ static playbackstatus MV_GetNextVorbisBlock(VoiceNode *voice) { int bitstream; - voice->Playing = TRUE; - int32_t bytesread = 0; vorbis_data *vd = (vorbis_data *)voice->rawdataptr; do @@ -282,16 +280,12 @@ static playbackstatus MV_GetNextVorbisBlock(VoiceNode *voice) else if (bytes < 0) { MV_Printf("MV_GetNextVorbisBlock ov_read: err %d\n", bytes); - voice->Playing = FALSE; return NoMoreData; } } while (bytesread < BLOCKSIZE); if (bytesread == 0) - { - voice->Playing = FALSE; return NoMoreData; - } if (bitstream != vd->lastbitstream) { @@ -299,10 +293,7 @@ static playbackstatus MV_GetNextVorbisBlock(VoiceNode *voice) vi = ov_info(&vd->vf, -1); if (!vi || (vi->channels != 1 && vi->channels != 2)) - { - voice->Playing = FALSE; return NoMoreData; - } voice->channels = vi->channels; voice->SamplingRate = vi->rate; @@ -452,7 +443,6 @@ int32_t MV_PlayVorbis(char *ptr, uint32_t length, int32_t loopstart, int32_t loo // load loop tags from metadata MV_GetVorbisCommentLoops(voice, ov_comment(&vd->vf, 0)); - voice->Playing = TRUE; voice->Paused = FALSE; MV_SetVoicePitch(voice, vi->rate, pitchoffset); diff --git a/source/audiolib/src/xa.cpp b/source/audiolib/src/xa.cpp index fd6c537fd..ff025227a 100644 --- a/source/audiolib/src/xa.cpp +++ b/source/audiolib/src/xa.cpp @@ -308,8 +308,6 @@ static playbackstatus MV_GetNextXABlock XASector ssct; int coding; - voice->Playing = TRUE; - do { size_t bytes = xad->length - xad->pos; @@ -353,10 +351,7 @@ static playbackstatus MV_GetNextXABlock xad->t1 = xad->t2 = xad->t1_x = xad->t2_x = 0; } else - { - voice->Playing = FALSE; return NoMoreData; - } } return KeepPlaying; @@ -467,7 +462,6 @@ int32_t MV_PlayXA(char *ptr, uint32_t length, int32_t loopstart, int32_t loopend voice->bits = 16; - voice->Playing = TRUE; voice->Paused = FALSE; voice->LoopStart = 0; diff --git a/source/audiolib/src/xmp.cpp b/source/audiolib/src/xmp.cpp index 62e6e1a5c..c55d1aa7c 100644 --- a/source/audiolib/src/xmp.cpp +++ b/source/audiolib/src/xmp.cpp @@ -41,16 +41,10 @@ static playbackstatus MV_GetNextXMPBlock(VoiceNode *voice) { xmp_restart_module(xmpd->context); if (xmp_play_frame(xmpd->context) != 0) - { - voice->Playing = FALSE; return NoMoreData; - } } else - { - voice->Playing = FALSE; return NoMoreData; - } } xmp_get_frame_info(xmpd->context, &mi); @@ -62,7 +56,6 @@ static playbackstatus MV_GetNextXMPBlock(VoiceNode *voice) // voice->length = (mi.buffer_size << 16) / (voice->channels * (voice->bits >> 3)); voice->position = 0; voice->BlockLength = 0; - voice->Playing = TRUE; MV_SetVoiceMixMode(voice); @@ -173,7 +166,6 @@ int32_t MV_PlayXMP(char *ptr, uint32_t length, int32_t loopstart, int32_t loopen voice->channels = 2; voice->SamplingRate = MV_MixRate; - voice->Playing = TRUE; voice->Paused = FALSE; voice->LoopStart = 0;