sound.h

来自「著名物理引擎Hawk的源代码」· C头文件 代码 · 共 68 行

H
68
字号
/* win32/sound.h, HAWK game engine
 *
 * Copyright 1997-1998 by Phil Frisbie, Jr.
 * for Hawk Software
 *
 */

#ifndef SOUND_H
#define SOUND_H

#include <windows.h>
#include <dsound.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef struct
{
	DWORD			size;		/* Size of file */
	LPWAVEFORMATEX	wfxInfo;	/* Wave Header */
	LPBYTE			data;		/* Wave Bits */
}
WAVEFILE, *LPWAVEFILE;

typedef struct
{
	WAVEFILE	waveFile;		/* Standard WaveFile from WAVE.H */
	LPDIRECTSOUNDBUFFER DSB;	/* Ptr to dir. sound buffer */
	DWORD		freq;			/* Frequency */
	DWORD		pan;			/* Panning info (L to R balance) */
	DWORD		vol;			/* Volume */
	DWORD		TDvol;			/* The volume at the 3D sound source */
	BOOL		looped;			/* Looped = TRUE (plays repeatedly) */
	BOOL		playing;		/* Is this wave playing? */
	OBJECT		*obj;			/* pointer to OBJECT, for 3D sounds */
} SNDWAVEFILE;

/* external functions */
int soundLoad(char *name);
void playSoundi(int sound, float pan, float volume, BOOL looped);
void playSound3Di(int sound, OBJECT *obj, float volume, BOOL looped);
void playSound(char *name, float pan, float volume);
void sndStop(int wave);
void sndUpdate(void);

/* internal functions */
BOOL sndEnable(HWND	hwnd);
void sndDisable(void);
int sndLoadWave(char *name, BOOL is_static);
void sndUnload(int wave);
int sndPlay3D(int wave, BOOL looped, OBJECT *obj);
BOOL sndIsPlaying(int wave);
int sndGetFrequency(int wave);
int sndGetBalance(int wave);
int sndGetVolume(int wave);
BOOL sndGetLooping(int wave);
void sndSetFrequency(int wave, int frequency);
void sndSetBalance(int wave, int balance);
void sndSetVolume(int wave, int volume);
void sndSetLooping(int wave, BOOL looping);

#ifdef __cplusplus
}
#endif

#endif /* SOUND_H */

⌨️ 快捷键说明

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