mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-11 22:11:51 +00:00
audio-related minor refactor
This commit is contained in:
parent
c8ca56fb8e
commit
1549a02731
5 changed files with 20 additions and 28 deletions
|
|
@ -207,10 +207,10 @@ ALSpeaker::~ALSpeaker() {
|
|||
}
|
||||
}
|
||||
|
||||
void ALSpeaker::update(const Channel* channel, float masterVolume) {
|
||||
void ALSpeaker::update(const Channel* channel) {
|
||||
if (source == 0)
|
||||
return;
|
||||
float gain = this->volume * channel->getVolume()*masterVolume;
|
||||
float gain = this->volume * channel->getVolume();
|
||||
AL_CHECK(alSourcef(source, AL_GAIN, gain));
|
||||
|
||||
if (!paused) {
|
||||
|
|
@ -471,6 +471,7 @@ void ALAudio::setListener(glm::vec3 position, glm::vec3 velocity, glm::vec3 at,
|
|||
AL_CHECK(alListener3f(AL_POSITION, position.x, position.y, position.z));
|
||||
AL_CHECK(alListener3f(AL_VELOCITY, velocity.x, velocity.y, velocity.z));
|
||||
AL_CHECK(alListenerfv(AL_ORIENTATION, listenerOri));
|
||||
AL_CHECK(alListenerf(AL_GAIN, get_channel(0)->getVolume()));
|
||||
}
|
||||
|
||||
void ALAudio::update(double delta) {
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ namespace audio {
|
|||
ALSpeaker(ALAudio* al, uint source, int priority, int channel);
|
||||
~ALSpeaker();
|
||||
|
||||
void update(const Channel* channel, float masterVolume) override;
|
||||
void update(const Channel* channel) override;
|
||||
int getChannel() const override;
|
||||
|
||||
State getState() const override;
|
||||
|
|
|
|||
|
|
@ -383,13 +383,12 @@ void audio::update(double delta) {
|
|||
entry.second->update(delta);
|
||||
}
|
||||
|
||||
float masterVolume = channels.at(0)->getVolume();
|
||||
for (auto it = speakers.begin(); it != speakers.end();) {
|
||||
auto speaker = it->second.get();
|
||||
int speakerChannel = speaker->getChannel();
|
||||
auto channel = get_channel(speakerChannel);
|
||||
if (channel != nullptr) {
|
||||
speaker->update(channel, speakerChannel == 0 ? 1.0f : masterVolume);
|
||||
speaker->update(channel);
|
||||
}
|
||||
if (speaker->isStopped()) {
|
||||
streams.erase(it->first);
|
||||
|
|
|
|||
|
|
@ -235,8 +235,7 @@ namespace audio {
|
|||
|
||||
/// @brief Synchronize the speaker with channel settings
|
||||
/// @param channel speaker channel
|
||||
/// @param masterVolume volume of the master channel
|
||||
virtual void update(const Channel* channel, float masterVolume) = 0;
|
||||
virtual void update(const Channel* channel) = 0;
|
||||
|
||||
/// @brief Check speaker channel index
|
||||
virtual int getChannel() const = 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue