О немО себе[code]/maps/
[code] | 4D | Modules | Sound | soundbuffer.h
kMaps
4D
  Core
  PlugIns
  Modules
    AI
    Terrain
    GUI
    Quest
    TokaPH
    Sound
      Sound___Win32_Debug
      dlls
      NVS
      Ogg
      vorbis
      VTune
      lib
      VS
        alinit.h
        alctypes.h
        soundsys.cpp
        soundsys.h
        stdafx.cpp
        altypes.h
        al.h
        remsnd.cpp
        alu.h
        alut.h
        stdafx.h
        soundsource.cpp
        remsnd.h
        soundbuffer.cpp
        alc.h
        soundsource.h
        alinit.cpp
        soundbuffer.h
  codeZ.php
  SparseTileLayer.js
  array-speed.php
  ed_line.c
  ed_line.cc.c
  auto_registrator_cc.c
  time.php
  auto_registrator.c
 
#ifndef _SOUND_BUFFER_H
#define _SOUND_BUFFER_H

#define NUM_OF_DYNBUF    2            // num buffers in queue
#define DYNBUF_SIZE        3*512000    // Buffer size
#define ERRMSG(Msg) Error2Console(SYS_SOUND,Msg)

#define SND_STREAM 1

#include "vorbis/vorbisfile.h"  

struct BufferInfo
{
private:
    
bool LoadWavFile(const GString &Filename,DWORD Flags);
    
bool LoadOggFile(const GString &Filename,DWORD Flags);
    
bool ReadOggBlock(const int Size,DWORD Buf=0);
    
DWORD   packID;
    
DWORD   bufferID;  // primary sound buffer
    
DWORD   sbufferID// secondary sound buffer
    
int     currentbuffer;// current buffer indicator
    
GString FileName;
    
DWORD   Params;
    
DWORD   Len;
    
DWORD   Rate;
    
DWORD   Format;
    
LPBYTE  Data;
    
int     CountUse;
    
bool    CanBeLooped;
    
bool    fIsStreamed;

    
OggVorbis_File    *mVF;
    
vorbis_comment    *mComment;
    
vorbis_info        *mInfo;
    
DWORD            OggFile;
public:
    
bool    IsStreamed()const{return fIsStreamed;}
    
int     Kill    (int Count=1);
    
int     Use     (int Count=1);
    
void    Create  (LPCSTR FileName);
    
void    Delete  ();
    
void    Clear   ();
    
void    Add2Pack();
    
bool    Load(LPCSTR FileName,DWORD Flags);
    
DWORD   GetPackID()const {return packID;}
    
DWORD   GetALID  ()const {return  bufferID;}
    
DWORD   GetAL2ID ()const {return sbufferID;}
    
void    Check    ();
    
int     GetCountUse(){return CountUse;}
    
void    SetStreamed(const bool Flag);
    
int    UseMusic   (const DWORD SourceID);
};

typedef CBSPDividorLookUpArray<char,int_SOUNDBUFFERPACK;
typedef SmartVector<BufferInfo>          _SOUNDBUFFERARRAY;

// Vars
extern _SOUNDBUFFERPACK  Buffers;
extern _SOUNDBUFFERARRAY BuffersPack;

DWORD  GetBufferFor  (const GString &Name,const DWORD Flags);
DWORD  GetALBufferID (const int BufferID);
DWORD  GetALBuffer2ID(const int BufferID);
int    IncBufferUsage(const int BufferID);
int    DecBufferUsage(const int BufferID);
const  
BufferInfoGetInfoForBuffer(const int BufferID);
int   alUseMusicBuffer(const int SourceId,const int BufferID);

#endif


[CODE]/4D/Modules/Sound/soundbuffer.h

Меня, Великого и Злобного Кащея Бессмертного, нахально не признают!..
Или признают? 
Дмитрий Мансуров