129 lines
5.2 KiB
C++
129 lines
5.2 KiB
C++
// This file was automatically generated on 26 May 2014 at 01:05:31
|
|
|
|
#include <NDK/LuaAPI.hpp>
|
|
#include <Nazara/Audio.hpp>
|
|
#include <Nazara/Lua/LuaClass.hpp>
|
|
|
|
namespace Ndk
|
|
{
|
|
void LuaAPI::Register_Audio(Nz::LuaInstance& instance)
|
|
{
|
|
/*********************************** Nz::SoundBuffer **********************************/
|
|
Nz::LuaClass<Nz::SoundBufferRef> soundBuffer("SoundBuffer");
|
|
|
|
soundBuffer.SetConstructor([] (Nz::LuaInstance& lua) -> Nz::SoundBufferRef*
|
|
{
|
|
return new Nz::SoundBufferRef(new Nz::SoundBuffer);
|
|
});
|
|
|
|
soundBuffer.SetMethod("Destroy", &Nz::SoundBuffer::Destroy);
|
|
soundBuffer.SetMethod("GetDuration", &Nz::SoundBuffer::GetDuration);
|
|
soundBuffer.SetMethod("GetFormat", &Nz::SoundBuffer::GetFormat);
|
|
soundBuffer.SetMethod("GetSampleCount", &Nz::SoundBuffer::GetSampleCount);
|
|
soundBuffer.SetMethod("GetSampleRate", &Nz::SoundBuffer::GetSampleRate);
|
|
soundBuffer.SetMethod("IsValid", &Nz::SoundBuffer::IsValid);
|
|
soundBuffer.SetMethod("LoadFromFile", &Nz::SoundBuffer::LoadFromFile, Nz::SoundBufferParams());
|
|
|
|
soundBuffer.SetStaticMethod("IsFormatSupported", &Nz::SoundBuffer::IsFormatSupported);
|
|
|
|
// Manual
|
|
soundBuffer.SetMethod("Create", [] (Nz::LuaInstance& lua, Nz::SoundBufferRef& instance) -> int
|
|
{
|
|
int index = 1;
|
|
Nz::AudioFormat format = lua.Check<Nz::AudioFormat>(&index);
|
|
unsigned int sampleCount = lua.Check<unsigned int>(&index);
|
|
unsigned int sampleRate = lua.Check<unsigned int>(&index);
|
|
|
|
std::size_t bufferSize = 0;
|
|
const char* buffer = lua.CheckString(index, &bufferSize);
|
|
lua.ArgCheck(buffer && bufferSize >= sampleCount * sizeof(Nz::Int16), index, "Invalid buffer");
|
|
|
|
lua.PushBoolean(instance->Create(format, sampleCount, sampleRate, reinterpret_cast<const Nz::Int16*>(buffer)));
|
|
return 1;
|
|
});
|
|
|
|
soundBuffer.SetMethod("GetSamples", [] (Nz::LuaInstance& lua, Nz::SoundBufferRef& instance) -> int
|
|
{
|
|
lua.PushString(reinterpret_cast<const char*>(instance->GetSamples()), instance->GetSampleCount() * sizeof(Nz::Int16));
|
|
return 1;
|
|
});
|
|
|
|
soundBuffer.SetMethod("__tostring", [] (Nz::LuaInstance& lua, Nz::SoundBufferRef& soundBuffer) -> int
|
|
{
|
|
Nz::StringStream stream("SoundBuffer(");
|
|
if (soundBuffer->IsValid())
|
|
{
|
|
Nz::String filePath = soundBuffer->GetFilePath();
|
|
if (!filePath.IsEmpty())
|
|
stream << "File: " << filePath << ", ";
|
|
|
|
stream << "Duration: " << soundBuffer->GetDuration() / 1000.f << "s";
|
|
}
|
|
stream << ')';
|
|
|
|
lua.PushString(stream);
|
|
return 1;
|
|
});
|
|
|
|
soundBuffer.Register(instance);
|
|
|
|
/*********************************** Nz::SoundEmitter **********************************/
|
|
Nz::LuaClass<Nz::SoundEmitter> soundEmitter("SoundEmitter");
|
|
|
|
soundEmitter.SetMethod("EnableLooping", &Nz::SoundEmitter::EnableLooping);
|
|
soundEmitter.SetMethod("EnableSpatialization", &Nz::SoundEmitter::EnableSpatialization);
|
|
soundEmitter.SetMethod("GetAttenuation", &Nz::SoundEmitter::GetAttenuation);
|
|
soundEmitter.SetMethod("GetDuration", &Nz::SoundEmitter::GetDuration);
|
|
soundEmitter.SetMethod("GetMinDistance", &Nz::SoundEmitter::GetMinDistance);
|
|
soundEmitter.SetMethod("GetPitch", &Nz::SoundEmitter::GetPitch);
|
|
soundEmitter.SetMethod("GetPlayingOffset", &Nz::SoundEmitter::GetPlayingOffset);
|
|
soundEmitter.SetMethod("GetPosition", &Nz::Sound::GetPosition);
|
|
soundEmitter.SetMethod("GetStatus", &Nz::SoundEmitter::GetStatus);
|
|
soundEmitter.SetMethod("GetVelocity", &Nz::Sound::GetVelocity);
|
|
soundEmitter.SetMethod("GetVolume", &Nz::SoundEmitter::GetVolume);
|
|
soundEmitter.SetMethod("IsLooping", &Nz::SoundEmitter::IsLooping);
|
|
soundEmitter.SetMethod("IsSpatialized", &Nz::SoundEmitter::IsSpatialized);
|
|
soundEmitter.SetMethod("Pause", &Nz::SoundEmitter::Pause);
|
|
soundEmitter.SetMethod("Play", &Nz::SoundEmitter::Play);
|
|
soundEmitter.SetMethod("SetAttenuation", &Nz::SoundEmitter::SetAttenuation);
|
|
soundEmitter.SetMethod("SetMinDistance", &Nz::SoundEmitter::SetMinDistance);
|
|
soundEmitter.SetMethod("SetPitch", &Nz::SoundEmitter::SetPitch);
|
|
soundEmitter.SetMethod("SetPosition", (void(Nz::SoundEmitter::*)(const Nz::Vector3f&)) &Nz::SoundEmitter::SetPosition);
|
|
soundEmitter.SetMethod("SetVelocity", (void(Nz::SoundEmitter::*)(const Nz::Vector3f&)) &Nz::SoundEmitter::SetVelocity);
|
|
soundEmitter.SetMethod("SetVolume", &Nz::SoundEmitter::SetVolume);
|
|
soundEmitter.SetMethod("Stop", &Nz::SoundEmitter::Stop);
|
|
|
|
soundEmitter.Register(instance);
|
|
|
|
/*********************************** Nz::Sound **********************************/
|
|
Nz::LuaClass<Nz::Sound> soundClass("Sound");
|
|
soundClass.Inherit(soundEmitter);
|
|
|
|
soundClass.SetConstructor([] (Nz::LuaInstance& lua) -> Nz::Sound*
|
|
{
|
|
return new Nz::Sound;
|
|
});
|
|
|
|
soundClass.SetMethod("GetBuffer", &Nz::Sound::GetBuffer);
|
|
soundClass.SetMethod("IsPlayable", &Nz::Sound::IsPlayable);
|
|
soundClass.SetMethod("IsPlaying", &Nz::Sound::IsPlaying);
|
|
soundClass.SetMethod("LoadFromFile", &Nz::Sound::LoadFromFile, Nz::SoundBufferParams());
|
|
soundClass.SetMethod("SetPlayingOffset", &Nz::Sound::SetPlayingOffset);
|
|
|
|
// Manual
|
|
soundClass.SetMethod("__tostring", [] (Nz::LuaInstance& lua, Nz::Sound& sound) -> int
|
|
{
|
|
Nz::StringStream stream("Sound(");
|
|
if (const Nz::SoundBuffer* buffer = sound.GetBuffer())
|
|
stream << buffer;
|
|
|
|
stream << ')';
|
|
|
|
lua.PushString(stream);
|
|
return 1;
|
|
});
|
|
|
|
soundClass.Register(instance);
|
|
}
|
|
}
|