Major Bug Fix: Volume control works again

Shouldn't have broken this again.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
This commit is contained in:
Christopher Snowhill 2025-03-06 10:17:48 -08:00
parent d06ee01a17
commit 713241a94f

View file

@ -589,10 +589,24 @@ current_device_listener(AudioObjectID inObjectID, UInt32 inNumberAddresses, cons
}
}
double secondsRendered = (double)renderedSamples / format->mSampleRate;
float volumeScale = 1.0;
double sustained;
sustained = _self->secondsHdcdSustained;
if(sustained > 0) {
if(sustained < secondsRendered) {
_self->secondsHdcdSustained = 0.0;
} else {
_self->secondsHdcdSustained = sustained - secondsRendered;
volumeScale = 0.5;
}
}
scale_by_volume((float*)inputData->mBuffers[0].mData, renderedSamples * channels, volumeScale * _self->volume);
inputData->mBuffers[0].mDataByteSize = renderedSamples * format->mBytesPerPacket;
inputData->mBuffers[0].mNumberChannels = channels;
double secondsRendered = (double)renderedSamples / format->mSampleRate;
[_self updateLatency:secondsRendered];
}