mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-07 15:31:18 +12:00
make variable non-member
This commit is contained in:
parent
d3c0bac43c
commit
6b057aea14
1 changed files with 7 additions and 8 deletions
|
@ -176,7 +176,6 @@ class BootSoundPlayer
|
||||||
{
|
{
|
||||||
m_fadeOutRequested = false;
|
m_fadeOutRequested = false;
|
||||||
m_stopRequested = false;
|
m_stopRequested = false;
|
||||||
m_fadeOutSample = 0;
|
|
||||||
m_bootSndPlayThread = std::thread{[this]() {
|
m_bootSndPlayThread = std::thread{[this]() {
|
||||||
StreamBootSound();
|
StreamBootSound();
|
||||||
}};
|
}};
|
||||||
|
@ -188,15 +187,15 @@ class BootSoundPlayer
|
||||||
m_fadeOutRequested = true;
|
m_fadeOutRequested = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ApplyFadeOutEffect(std::span<sint16> samples, uint64 fadeOutDuration)
|
void ApplyFadeOutEffect(std::span<sint16> samples, uint64& fadeOutSample, uint64 fadeOutDuration)
|
||||||
{
|
{
|
||||||
for(size_t i = 0; i < samples.size(); i++)
|
for(size_t i = 0; i < samples.size(); i++)
|
||||||
{
|
{
|
||||||
float decibel = (float)m_fadeOutSample / fadeOutDuration * -60.0f;
|
float decibel = (float)fadeOutSample / fadeOutDuration * -60.0f;
|
||||||
float volumeFactor = pow(10,decibel/20);
|
float volumeFactor = pow(10,decibel/20);
|
||||||
samples[i] *= volumeFactor;
|
samples[i] *= volumeFactor;
|
||||||
if(i % 2 == 1)
|
if(i % 2 == 1)
|
||||||
m_fadeOutSample++;
|
fadeOutSample++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,7 +205,6 @@ class BootSoundPlayer
|
||||||
constexpr sint32 bitsPerSample = 16;
|
constexpr sint32 bitsPerSample = 16;
|
||||||
constexpr sint32 samplesPerBlock = sampleRate / 10; // block is 1/10th of a second
|
constexpr sint32 samplesPerBlock = sampleRate / 10; // block is 1/10th of a second
|
||||||
constexpr sint32 nChannels = 2;
|
constexpr sint32 nChannels = 2;
|
||||||
constexpr uint64 fadeOutDuration = sampleRate * 2; // fadeout should last 2 seconds
|
|
||||||
static_assert(bitsPerSample % 8 == 0, "bits per sample is not a multiple of 8");
|
static_assert(bitsPerSample % 8 == 0, "bits per sample is not a multiple of 8");
|
||||||
|
|
||||||
AudioAPIPtr bootSndAudioDev;
|
AudioAPIPtr bootSndAudioDev;
|
||||||
|
@ -241,7 +239,9 @@ class BootSoundPlayer
|
||||||
constexpr sint32 audioBlockSize = samplesPerBlock * (bitsPerSample/8) * nChannels;
|
constexpr sint32 audioBlockSize = samplesPerBlock * (bitsPerSample/8) * nChannels;
|
||||||
BootSoundReader bootSndFileReader(bootSndFileHandle, audioBlockSize);
|
BootSoundReader bootSndFileReader(bootSndFileHandle, audioBlockSize);
|
||||||
|
|
||||||
while(m_fadeOutSample < fadeOutDuration && !m_stopRequested)
|
uint64 fadeOutSample = 0; // track how far into the fadeout
|
||||||
|
constexpr uint64 fadeOutDuration = sampleRate * 2; // fadeout should last 2 seconds
|
||||||
|
while(fadeOutSample < fadeOutDuration && !m_stopRequested)
|
||||||
{
|
{
|
||||||
while (bootSndAudioDev->NeedAdditionalBlocks())
|
while (bootSndAudioDev->NeedAdditionalBlocks())
|
||||||
{
|
{
|
||||||
|
@ -253,7 +253,7 @@ class BootSoundPlayer
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(m_fadeOutRequested)
|
if(m_fadeOutRequested)
|
||||||
ApplyFadeOutEffect({data, samplesPerBlock * nChannels}, fadeOutDuration);
|
ApplyFadeOutEffect({data, samplesPerBlock * nChannels}, fadeOutSample, fadeOutDuration);
|
||||||
|
|
||||||
bootSndAudioDev->FeedBlock(data);
|
bootSndAudioDev->FeedBlock(data);
|
||||||
}
|
}
|
||||||
|
@ -269,7 +269,6 @@ class BootSoundPlayer
|
||||||
std::thread m_bootSndPlayThread;
|
std::thread m_bootSndPlayThread;
|
||||||
std::atomic_bool m_fadeOutRequested = false;
|
std::atomic_bool m_fadeOutRequested = false;
|
||||||
std::atomic_bool m_stopRequested = false;
|
std::atomic_bool m_stopRequested = false;
|
||||||
uint64 m_fadeOutSample = 0;
|
|
||||||
};
|
};
|
||||||
static BootSoundPlayer g_bootSndPlayer;
|
static BootSoundPlayer g_bootSndPlayer;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue