1
0
mirror of https://github.com/rwengine/openrw.git synced 2024-10-06 09:07:19 +02:00

openrw: iwyu: reduce warnings in audio subdirectory

This commit is contained in:
Anonymous Maarten 2017-10-31 01:32:01 +01:00 committed by Daniel Evans
parent b6b53ffdad
commit 428efd8fb1
4 changed files with 32 additions and 20 deletions

View File

@ -15,4 +15,10 @@
{ "include": [ "@<boost/range/iterator_range_core\\.hpp>", "private", "<boost/range/iterator_range.hpp>", "public"] }, { "include": [ "@<boost/range/iterator_range_core\\.hpp>", "private", "<boost/range/iterator_range.hpp>", "public"] },
# Bullet: # Bullet:
{ "include": [ "@<BulletDynamics/Character/.*>", "public", "<btBulletDynamicsCommon.h>", "public"] }, { "include": [ "@<BulletDynamics/Character/.*>", "public", "<btBulletDynamicsCommon.h>", "public"] },
# libavcodec / libavutil
{ "include": [ "@<libavcodec/version\\.h>", "public", "<libavcodec/avcodec.h>", "public"] },
{ "include": [ "@<libavutil/version\\.h>", "public", "<libavutil/avutil.h>", "public"] },
{ "include": [ "@<libavutil/frame\\.h>", "public", "<libavutil/avutil.h>", "public"] },
{ "include": [ "@<libavutil/log\\.h>", "public", "<libavutil/avutil.h>", "public"] },
{ "include": [ "@<libavutil/samplefmt\\.h>", "public", "<libavutil/avutil.h>", "public"] },
] ]

View File

@ -1,4 +1,4 @@
#include <audio/SoundManager.hpp> #include "audio/SoundManager.hpp"
#include "audio/alCheck.hpp" #include "audio/alCheck.hpp"
@ -7,6 +7,8 @@ extern "C" {
#include <libavformat/avformat.h> #include <libavformat/avformat.h>
#include <libavutil/avutil.h> #include <libavutil/avutil.h>
} }
//ab
#include <rw/defines.hpp>
// Rename some functions for older libavcodec/ffmpeg versions (e.g. Ubuntu Trusty) // Rename some functions for older libavcodec/ffmpeg versions (e.g. Ubuntu Trusty)
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,28,1) #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,28,1)
@ -14,10 +16,6 @@ extern "C" {
#define av_frame_free avcodec_free_frame #define av_frame_free avcodec_free_frame
#endif #endif
#include <array>
#include <iostream>
#include <fstream>
SoundManager::SoundManager() { SoundManager::SoundManager() {
initializeOpenAL(); initializeOpenAL();
initializeAVCodec(); initializeAVCodec();
@ -36,18 +34,18 @@ SoundManager::~SoundManager() {
bool SoundManager::initializeOpenAL() { bool SoundManager::initializeOpenAL() {
alDevice = alcOpenDevice(NULL); alDevice = alcOpenDevice(NULL);
if (!alDevice) { if (!alDevice) {
std::cerr << "Could not find OpenAL device!" << std::endl; RW_ERROR("Could not find OpenAL device!");
return false; return false;
} }
alContext = alcCreateContext(alDevice, NULL); alContext = alcCreateContext(alDevice, NULL);
if (!alContext) { if (!alContext) {
std::cerr << "Could not create OpenAL context!" << std::endl; RW_ERROR("Could not create OpenAL context!");
return false; return false;
} }
if (!alcMakeContextCurrent(alContext)) { if (!alcMakeContextCurrent(alContext)) {
std::cerr << "Unable to make OpenAL context current!" << std::endl; RW_ERROR("Unable to make OpenAL context current!");
return false; return false;
} }
@ -70,7 +68,7 @@ void SoundManager::SoundSource::loadFromFile(const std::string& filename) {
// Allocate audio frame // Allocate audio frame
AVFrame* frame = av_frame_alloc(); AVFrame* frame = av_frame_alloc();
if (!frame) { if (!frame) {
std::cerr << "Error allocating the audio frame" << std::endl; RW_ERROR("Error allocating the audio frame");
return; return;
} }
@ -78,14 +76,14 @@ void SoundManager::SoundSource::loadFromFile(const std::string& filename) {
AVFormatContext* formatContext = nullptr; AVFormatContext* formatContext = nullptr;
if (avformat_open_input(&formatContext, filename.c_str(), nullptr, nullptr) != 0) { if (avformat_open_input(&formatContext, filename.c_str(), nullptr, nullptr) != 0) {
av_frame_free(&frame); av_frame_free(&frame);
std::cerr << "Error opening audio file (" << filename << ")" << std::endl; RW_ERROR("Error opening audio file (" << filename << ")");
return; return;
} }
if (avformat_find_stream_info(formatContext, nullptr) < 0) { if (avformat_find_stream_info(formatContext, nullptr) < 0) {
av_frame_free(&frame); av_frame_free(&frame);
avformat_close_input(&formatContext); avformat_close_input(&formatContext);
std::cerr << "Error finding audio stream info" << std::endl; RW_ERROR("Error finding audio stream info");
return; return;
} }
@ -95,7 +93,7 @@ void SoundManager::SoundSource::loadFromFile(const std::string& filename) {
if (streamIndex < 0) { if (streamIndex < 0) {
av_frame_free(&frame); av_frame_free(&frame);
avformat_close_input(&formatContext); avformat_close_input(&formatContext);
std::cerr << "Could not find any audio stream in the file " << filename << std::endl; RW_ERROR("Could not find any audio stream in the file " << filename);
return; return;
} }
@ -107,7 +105,7 @@ void SoundManager::SoundSource::loadFromFile(const std::string& filename) {
if (avcodec_open2(codecContext, codecContext->codec, NULL) != 0) { if (avcodec_open2(codecContext, codecContext->codec, NULL) != 0) {
av_frame_free(&frame); av_frame_free(&frame);
avformat_close_input(&formatContext); avformat_close_input(&formatContext);
std::cerr << "Couldn't open the audio codec context" << std::endl; RW_ERROR("Couldn't open the audio codec context");
return; return;
} }
@ -117,7 +115,7 @@ void SoundManager::SoundSource::loadFromFile(const std::string& filename) {
// OpenAL only supports mono or stereo, so error on more than 2 channels // OpenAL only supports mono or stereo, so error on more than 2 channels
if(channels > 2) { if(channels > 2) {
std::cerr << "Audio has more than two channels" << std::endl; RW_ERROR("Audio has more than two channels");
av_frame_free(&frame); av_frame_free(&frame);
avcodec_close(codecContext); avcodec_close(codecContext);
avformat_close_input(&formatContext); avformat_close_input(&formatContext);
@ -126,7 +124,7 @@ void SoundManager::SoundSource::loadFromFile(const std::string& filename) {
// Right now we only support signed 16-bit audio // Right now we only support signed 16-bit audio
if(codecContext->sample_fmt != AV_SAMPLE_FMT_S16P) { if(codecContext->sample_fmt != AV_SAMPLE_FMT_S16P) {
std::cerr << "Audio data isn't in a planar signed 16-bit format" << std::endl; RW_ERROR("Audio data isn't in a planar signed 16-bit format");
av_frame_free(&frame); av_frame_free(&frame);
avcodec_close(codecContext); avcodec_close(codecContext);
avformat_close_input(&formatContext); avformat_close_input(&formatContext);

View File

@ -1,12 +1,15 @@
#pragma once #ifndef _RWENGINE_SOUNDMANAGER_HPP_
#define _RWENGINE_SOUNDMANAGER_HPP_
#include "al.h"
#include "alc.h"
#include <cstddef>
#include <cstdint>
#include <map> #include <map>
#include <string> #include <string>
#include <vector> #include <vector>
#include <al.h>
#include <alc.h>
class SoundManager { class SoundManager {
public: public:
SoundManager(); SoundManager();
@ -68,3 +71,5 @@ private:
std::map<std::string, Sound> sounds; std::map<std::string, Sound> sounds;
std::string backgroundNoise; std::string backgroundNoise;
}; };
#endif

View File

@ -1,4 +1,5 @@
#pragma once #ifndef _RWENGINE_ALCHECK_HPP_
#define _RWENGINE_ALCHECK_HPP_
#include <string> #include <string>
@ -13,3 +14,5 @@ void checkALerror(const std::string& file, unsigned int line);
#else #else
#define alCheck(stmt) stmt #define alCheck(stmt) stmt
#endif #endif
#endif