World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
OpenALSoundProvider.h
См. документацию.
1 #pragma once
2 
3 #include <AL/al.h>
4 #include <AL/alc.h>
5 #include <memory>
6 #include <string>
7 
8 #include "Media/Media.h"
9 
10 void log(const char *format, ...);
11 
13  public:
14  struct TrackBuffer {
15  unsigned int source_id;
16  unsigned int buffer_id;
17  };
18 
20  unsigned int source_id;
23  };
24 
26  virtual ~OpenALSoundProvider();
27 
28  bool Initialize();
29  void Release();
30 
33  float alBufferLength(unsigned int buffer);
35  int sample_rate,
36  int bytes_per_sample);
37  void Stream16(StreamingTrackBuffer *buffer, int num_samples,
38  const void *samples, bool wait = false);
39  TrackBuffer *CreateTrack16(int num_channels, int sample_rate,
40  const void *data, size_t size);
41  void PlayTrack16(TrackBuffer *buffer, bool loop = false, bool wait = false);
42  void SetListenerPosition(float x, float y, float z);
43  void SetOrientation(float yaw, float pitch);
44 
45  protected:
48 };
OpenALSoundProvider::CreateTrack16
TrackBuffer * CreateTrack16(int num_channels, int sample_rate, const void *data, size_t size)
Definition: OpenALSoundProvider.cpp:286
OpenALSoundProvider::context
ALCcontext * context
Definition: OpenALSoundProvider.h:47
OpenALSoundProvider::~OpenALSoundProvider
virtual ~OpenALSoundProvider()
Definition: OpenALSoundProvider.cpp:48
ALenum
int ALenum
Definition: al.h:65
OpenALSoundProvider::StreamingTrackBuffer
Definition: OpenALSoundProvider.h:19
OpenALSoundProvider::SetOrientation
void SetOrientation(float yaw, float pitch)
Definition: OpenALSoundProvider.cpp:97
z
GLdouble GLdouble z
Definition: SDL_opengl_glext.h:407
OpenALSoundProvider::Initialize
bool Initialize()
Definition: OpenALSoundProvider.cpp:50
al.h
OpenALSoundProvider::DeleteBuffer16
void DeleteBuffer16(TrackBuffer **buffer)
Definition: OpenALSoundProvider.cpp:150
format
SDL_AudioFormat format
Definition: SDL_audio.h:194
buffer
EGLContext EGLenum EGLClientBuffer buffer
Definition: SDL_egl.h:952
OpenALSoundProvider::StreamingTrackBuffer::sample_format
ALenum sample_format
Definition: OpenALSoundProvider.h:21
y
EGLSurface EGLint EGLint y
Definition: SDL_egl.h:1596
OpenALSoundProvider::CreateStreamingTrack16
StreamingTrackBuffer * CreateStreamingTrack16(int num_channels, int sample_rate, int bytes_per_sample)
Definition: OpenALSoundProvider.cpp:173
x
EGLSurface EGLint x
Definition: SDL_egl.h:1596
OpenALSoundProvider::TrackBuffer::source_id
unsigned int source_id
Definition: OpenALSoundProvider.h:15
log
void log(const char *format,...)
Definition: OpenALSoundProvider.cpp:24
OpenALSoundProvider::DeleteStreamingTrack
void DeleteStreamingTrack(StreamingTrackBuffer **buffer)
Definition: OpenALSoundProvider.cpp:116
OpenALSoundProvider::StreamingTrackBuffer::sample_rate
int sample_rate
Definition: OpenALSoundProvider.h:22
Media.h
alc.h
OpenALSoundProvider::TrackBuffer::buffer_id
unsigned int buffer_id
Definition: OpenALSoundProvider.h:16
OpenALSoundProvider::alBufferLength
float alBufferLength(unsigned int buffer)
Definition: OpenALSoundProvider.cpp:158
OpenALSoundProvider::Stream16
void Stream16(StreamingTrackBuffer *buffer, int num_samples, const void *samples, bool wait=false)
Definition: OpenALSoundProvider.cpp:226
ALCcontext
struct ALCcontext ALCcontext
Definition: alc.h:36
data
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: SDL_opengl.h:1974
OpenALSoundProvider::Release
void Release()
Definition: OpenALSoundProvider.cpp:106
OpenALSoundProvider
Definition: OpenALSoundProvider.h:12
OpenALSoundProvider::PlayTrack16
void PlayTrack16(TrackBuffer *buffer, bool loop=false, bool wait=false)
Definition: OpenALSoundProvider.cpp:358
size
GLsizeiptr size
Definition: SDL_opengl_glext.h:540
OpenALSoundProvider::SetListenerPosition
void SetListenerPosition(float x, float y, float z)
Definition: OpenALSoundProvider.cpp:93
OpenALSoundProvider::StreamingTrackBuffer::source_id
unsigned int source_id
Definition: OpenALSoundProvider.h:20
ALCdevice
struct ALCdevice ALCdevice
Definition: alc.h:34
samples
GLsizei samples
Definition: SDL_opengl_glext.h:1188
OpenALSoundProvider::device
ALCdevice * device
Definition: OpenALSoundProvider.h:46
OpenALSoundProvider::OpenALSoundProvider
OpenALSoundProvider()
Definition: OpenALSoundProvider.cpp:43
OpenALSoundProvider::TrackBuffer
Definition: OpenALSoundProvider.h:14