Merge remote-tracking branch 'origin/Audio-update'

Conflicts:
	include/Nazara/Core/ResourceLoader.hpp
	include/Nazara/Core/ResourceLoader.inl
	src/Nazara/Audio/Loaders/sndfile/Loader.cpp
	src/Nazara/Audio/Sound.cpp
	src/Nazara/Utility/Loaders/MD2/Loader.cpp
	src/Nazara/Utility/Loaders/MD5Anim/Loader.cpp
	src/Nazara/Utility/Loaders/MD5Mesh/Loader.cpp
	src/Nazara/Utility/Loaders/PCX/Loader.cpp
	src/Nazara/Utility/Loaders/STB/Loader.cpp

Former-commit-id: e0706cc0feafb1ad182b8cc51e2b18f8f3664b97
This commit is contained in:
Lynix
2014-01-08 12:03:52 +01:00
9 changed files with 559 additions and 12 deletions

View File

@@ -32,8 +32,10 @@
#include <Nazara/Audio/Audio.hpp>
#include <Nazara/Audio/Config.hpp>
#include <Nazara/Audio/Enums.hpp>
#include <Nazara/Audio/Music.hpp>
#include <Nazara/Audio/Sound.hpp>
#include <Nazara/Audio/SoundBuffer.hpp>
#include <Nazara/Audio/SoundEmitter.hpp>
#include <Nazara/Audio/SoundStream.hpp>
#endif // NAZARA_GLOBAL_AUDIO_HPP

View File

@@ -0,0 +1,70 @@
// Copyright (C) 2012 Jérôme Leclercq
// This file is part of the "Nazara Engine - Audio module"
// For conditions of distribution and use, see copyright notice in Config.hpp
#pragma once
#ifndef NAZARA_MUSIC_HPP
#define NAZARA_MUSIC_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Audio/Enums.hpp>
#include <Nazara/Audio/SoundEmitter.hpp>
#include <Nazara/Core/ResourceLoader.hpp>
struct NzMusicParams
{
bool IsValid() const;
};
class NzMusic;
class NzSoundStream;
class NzThread;
using NzMusicLoader = NzResourceLoader<NzMusic, NzMusicParams>;
struct NzMusicImpl;
class NAZARA_API NzMusic : public NzSoundEmitter
{
friend NzMusicLoader;
public:
NzMusic() = default;
~NzMusic();
bool Create(NzSoundStream* soundStream);
void Destroy();
void EnableLooping(bool loop);
nzUInt32 GetDuration() const;
nzAudioFormat GetFormat() const;
nzUInt32 GetPlayingOffset() const;
unsigned int GetSampleCount() const;
unsigned int GetSampleRate() const;
nzSoundStatus GetStatus() const;
bool IsLooping() const;
bool OpenFromFile(const NzString& filePath, const NzMusicParams& params = NzMusicParams());
bool OpenFromMemory(const void* data, std::size_t size, const NzMusicParams& params = NzMusicParams());
bool OpenFromStream(NzInputStream& stream, const NzMusicParams& params = NzMusicParams());
void Pause();
void Play();
void SetPlayingOffset(nzUInt32 offset);
void Stop();
private:
NzMusicImpl* m_impl = nullptr;
bool FillBuffer(unsigned int buffer);
void MusicThread();
static NzMusicLoader::LoaderList s_loaders;
};
#endif // NAZARA_MUSIC_HPP

View File

@@ -36,7 +36,7 @@ class NAZARA_API NzSound : public NzSoundEmitter
bool LoadFromStream(NzInputStream& stream, const NzSoundBufferParams& params = NzSoundBufferParams());
void Pause();
bool Play();
void Play();
void SetBuffer(const NzSoundBuffer* buffer);
void SetPlayingOffset(nzUInt32 offset);

View File

@@ -37,7 +37,7 @@ class NAZARA_API NzSoundEmitter
bool IsSpatialized() const;
virtual void Pause() = 0;
virtual bool Play() = 0;
virtual void Play() = 0;
void SetAttenuation(float attenuation);
void SetMinDistance(float minDistance);

View File

@@ -0,0 +1,28 @@
// Copyright (C) 2012 Jérôme Leclercq
// This file is part of the "Nazara Engine - Audio module"
// For conditions of distribution and use, see copyright notice in Config.hpp
#pragma once
#ifndef NAZARA_SOUNDSTREAM_HPP
#define NAZARA_SOUNDSTREAM_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Audio/Enums.hpp>
class NAZARA_API NzSoundStream
{
public:
NzSoundStream() = default;
virtual ~NzSoundStream();
virtual nzUInt32 GetDuration() const = 0;
virtual nzAudioFormat GetFormat() const = 0;
virtual unsigned int GetSampleCount() const = 0;
virtual unsigned int GetSampleRate() const = 0;
virtual unsigned int Read(void* buffer, unsigned int sampleCount) = 0;
virtual void Seek(nzUInt32 offset) = 0;
};
#endif // NAZARA_SOUNDSTREAM_HPP