openalbuffer.h

来自「游戏音频程序设计-Beginning.Game.Audio.Programmin」· C头文件 代码 · 共 66 行

H
66
字号
// OpenALBuffer.h: interface for the COpenALBuffer class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_OPENALBUFFER_H__B1B58A49_A951_4040_A7C3_992679A44124__INCLUDED_)
#define AFX_OPENALBUFFER_H__B1B58A49_A951_4040_A7C3_992679A44124__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 <alut.h> // Open AL utilities header

#include <string>

#include "RefCountPtr.h"

namespace AudioEngine {

class COpenALBuffer;
// smart pointer to COpenALBuffer
class COpenALBufferPtr : public CRefCountPtr<COpenALBuffer>
{
public:
  explicit COpenALBufferPtr(COpenALBuffer* p = NULL);
  void Release();

};

class COpenALBuffer  
{
public:
  friend class COpenALManager;
	COpenALBuffer();
	virtual ~COpenALBuffer();
  void LoadWave(std::string filename);

  // properties
  unsigned int GetFrequency() { return(m_Freq); }
  unsigned int GetBits() {
    ALint value;
    alGetBufferi(m_ID, AL_BITS, &value);
    return(value);
  }
  unsigned int GetChannels() {
    ALint value;
    alGetBufferi(m_ID, AL_CHANNELS, &value);
    return(value);
  }
  unsigned int GetSize() { return(m_Size); }
  unsigned int GetID() { return(m_ID); }  
protected:
  int m_Format; // format of wave loaded in this buffer
  unsigned int m_Size; // size of wave
  unsigned int m_Freq; // sampling rate
  unsigned int m_ID; // openAL buffer ID
  char m_Loop; // looping indicator
};



} // namespace
#endif // !defined(AFX_OPENALBUFFER_H__B1B58A49_A951_4040_A7C3_992679A44124__INCLUDED_)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?