fix: PVS-Studio V688

Signed-off-by: Vyacheslav Ivanov <islavaivanov76@gmail.com>
This commit is contained in:
Vyacheslav Ivanov 2024-08-03 22:53:24 +03:00 committed by Pugemon
parent 5369507938
commit faa1635014
No known key found for this signature in database
GPG Key ID: 472FA343B3CC3287
3 changed files with 38 additions and 38 deletions

View File

@ -74,27 +74,27 @@ bool ALStream::preloadBuffer(uint buffer, bool loop) {
std::unique_ptr<Speaker> ALStream::createSpeaker(bool loop, int channel) {
this->loop = loop;
uint source = al->getFreeSource();
if (source == 0) {
uint free_source = al->getFreeSource();
if (free_source == 0) {
return nullptr;
}
for (uint i = 0; i < ALStream::STREAM_BUFFERS; i++) {
uint buffer = al->getFreeBuffer();
if (!preloadBuffer(buffer, loop)) {
uint free_buffer = al->getFreeBuffer();
if (!preloadBuffer(free_buffer, loop)) {
break;
}
AL_CHECK(alSourceQueueBuffers(source, 1, &buffer));
AL_CHECK(alSourceQueueBuffers(free_source, 1, &free_buffer));
}
return std::make_unique<ALSpeaker>(al, source, PRIORITY_HIGH, channel);
return std::make_unique<ALSpeaker>(al, free_source, PRIORITY_HIGH, channel);
}
void ALStream::bindSpeaker(speakerid_t speaker) {
void ALStream::bindSpeaker(speakerid_t speakerid) {
auto sp = audio::get_speaker(this->speaker);
if (sp) {
sp->stop();
}
this->speaker = speaker;
sp = audio::get_speaker(speaker);
this->speaker = speakerid;
sp = audio::get_speaker(speakerid);
if (sp) {
auto alspeaker = dynamic_cast<ALSpeaker*>(sp); //FIXME: Potentional null pointer
alspeaker->stream = this; //-V522
@ -110,15 +110,15 @@ void ALStream::unqueueBuffers(uint alsource) {
uint processed = AL::getSourcei(alsource, AL_BUFFERS_PROCESSED);
while (processed--) {
uint buffer;
AL_CHECK(alSourceUnqueueBuffers(alsource, 1, &buffer));
unusedBuffers.push(buffer);
uint bufferqueue;
AL_CHECK(alSourceUnqueueBuffers(alsource, 1, &bufferqueue));
unusedBuffers.push(bufferqueue);
uint bps = source->getBitsPerSample()/ 8;
uint channels = source->getChannels();
ALint bufferSize;
alGetBufferi(buffer, AL_SIZE, &bufferSize);
alGetBufferi(bufferqueue, AL_SIZE, &bufferSize);
totalPlayedSamples += bufferSize / bps / channels;
if (source->isSeekable()) {
totalPlayedSamples %= source->getTotalSamples();
@ -129,11 +129,11 @@ void ALStream::unqueueBuffers(uint alsource) {
uint ALStream::enqueueBuffers(uint alsource) {
uint preloaded = 0;
if (!unusedBuffers.empty()) {
uint buffer = unusedBuffers.front();
if (preloadBuffer(buffer, loop)) {
uint first_buffer = unusedBuffers.front();
if (preloadBuffer(first_buffer, loop)) {
preloaded++;
unusedBuffers.pop();
AL_CHECK(alSourceQueueBuffers(alsource, 1, &buffer));
AL_CHECK(alSourceQueueBuffers(alsource, 1, &first_buffer));
}
}
return preloaded;
@ -143,14 +143,14 @@ void ALStream::update(double delta) {
if (this->speaker == 0) {
return;
}
auto speaker = audio::get_speaker(this->speaker);
if (speaker == nullptr) {
speaker = 0; //FIXME: Not used
auto p_speaker = audio::get_speaker(this->speaker);
if (p_speaker == nullptr) {
p_speaker = 0; //FIXME: Not used
return;
}
ALSpeaker* alspeaker = dynamic_cast<ALSpeaker*>(speaker); //FIXME: Potentional null pointer
ALSpeaker* alspeaker = dynamic_cast<ALSpeaker*>(p_speaker); //FIXME: Potentional null pointer
if (alspeaker->stopped) { //-V522
speaker = 0; //FIXME: Not used
p_speaker = 0; //FIXME: Not used
return;
}
@ -159,11 +159,11 @@ void ALStream::update(double delta) {
unqueueBuffers(alsource);
uint preloaded = enqueueBuffers(alsource);
if (speaker->isStopped() && !alspeaker->stopped) { //FIXME: !alspeaker->stopped always true //-V560
if (p_speaker->isStopped() && !alspeaker->stopped) { //FIXME: !alspeaker->stopped always true //-V560
if (preloaded) {
speaker->play();
p_speaker->play();
} else {
speaker->stop();
p_speaker->stop();
}
}
}
@ -271,11 +271,11 @@ void ALSpeaker::setLoop(bool loop) {
void ALSpeaker::play() {
paused = false;
stopped = false;
auto channel = get_channel(this->channel);
auto p_channel = get_channel(this->channel);
AL_CHECK(alSourcef(
source,
AL_GAIN,
volume * channel->getVolume() * get_channel(0)->getVolume()
volume * p_channel->getVolume() * get_channel(0)->getVolume()
));
AL_CHECK(alSourcePlay(source));
}

View File

@ -72,7 +72,7 @@ namespace audio {
~ALStream();
std::shared_ptr<PCMStream> getSource() const override;
void bindSpeaker(speakerid_t speaker) override;
void bindSpeaker(speakerid_t speakerid) override;
std::unique_ptr<Speaker> createSpeaker(bool loop, int channel) override;
speakerid_t getSpeaker() const override;
void update(double delta) override;

View File

@ -31,27 +31,27 @@ void Camera::rotate(float x, float y, float z) {
glm::mat4 Camera::getProjection() {
constexpr float epsilon = 1e-6f; // 0.000001
float aspect = this->aspect;
if (std::fabs(aspect) < epsilon) {
aspect = (float)Window::width / (float)Window::height;
float aspect_ratio = this->aspect;
if (std::fabs(aspect_ratio) < epsilon) {
aspect_ratio = (float)Window::width / (float)Window::height;
}
if (perspective)
return glm::perspective(fov * zoom, aspect, 0.05f, 1500.0f);
return glm::perspective(fov * zoom, aspect_ratio, 0.05f, 1500.0f);
else if (flipped)
return glm::ortho(0.0f, fov * aspect, fov, 0.0f);
return glm::ortho(0.0f, fov * aspect_ratio, fov, 0.0f);
else
return glm::ortho(0.0f, fov * aspect, 0.0f, fov);
return glm::ortho(0.0f, fov * aspect_ratio, 0.0f, fov);
}
glm::mat4 Camera::getView(bool pos) {
glm::vec3 position = this->position;
glm::vec3 camera_pos = this->position;
if (!pos) {
position = glm::vec3(0.0f);
camera_pos = glm::vec3(0.0f);
}
if (perspective) {
return glm::lookAt(position, position + front, up);
return glm::lookAt(camera_pos, camera_pos + front, up);
} else {
return glm::translate(glm::mat4(1.0f), position);
return glm::translate(glm::mat4(1.0f), camera_pos);
}
}