📄 openallistener.h
字号:
// OpenALListener.h: interface for the COpenALListener class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_OPENALLISTENER_H__6D74522D_7824_4DE6_8CC1_D4703078C103__INCLUDED_)
#define AFX_OPENALLISTENER_H__6D74522D_7824_4DE6_8CC1_D4703078C103__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <al.h> // main openAL header file
#include <alu.h> // Open AL utilities header
#include <stdio.h>
class COpenALListener
{
public:
COpenALListener();
virtual ~COpenALListener();
void SetPosition(float x, float y, float z) { alListener3f(AL_POSITION, x, y, -z); }
void GetPosition(float &x, float &y, float &z) {
x = y = z = 0.0f;
alGetListener3f(AL_POSITION, &x, &y, &z);
z *= -1;
}
void SetVelocity(float x, float y, float z) { alListener3f(AL_VELOCITY, x, y, -z); }
void GetVelocity(float &x, float &y, float &z) {
x = y = z = 0.0f;
alGetListener3f(AL_VELOCITY, &x, &y, &z);
z *= -1;
}
void SetOrientation(float lookatx, float lookaty, float lookatz, float upx, float upy, float upz) {
float values[6];
values[0] = lookatx; values[1] = lookaty; values[2] = -lookatz;
values[3] = upx; values[4] = upy; values[5] = -upz;
alListenerfv(AL_ORIENTATION, values);
}
void GetOrientation(float &lookatx, float &lookaty, float &lookatz, float &upx, float &upy, float &upz) {
float values[6];
alGetListenerfv(AL_ORIENTATION, values);
lookatx = values[0]; lookaty = values[1]; lookatz = -values[2];
upx = values[3]; upy = values[4]; upz = -values[5];
}
void SetGain(float value) { alListenerf(AL_GAIN, value); }
float GetGain() {
float value = 0.0f; alGetListenerf(AL_GAIN, &value);
return(value);
}
};
#endif // !defined(AFX_OPENALLISTENER_H__6D74522D_7824_4DE6_8CC1_D4703078C103__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -