File:  [RetroPC.NET] / np2 / x11 / soundmng.h
Revision 1.2: download - view: text, annotated - select for diffs
Mon Nov 17 22:42:55 2003 JST (21 years, 11 months ago) by monaka
Branches: MAIN
CVS tags: VER_0_82_x64, VER_0_82, VER_0_81A, VER_0_81, VER_0_80, VER_0_79, VER_0_78, VER_0_77, VER_0_76, VER_0_75, VER_0_74, VER_0_73, VER_0_72, HEAD
fix compile failure, if defined(NOSOUND)

#ifndef	NP2_X11_SOUNGMNG_H__
#define	NP2_X11_SOUNGMNG_H__

#ifdef __cplusplus
extern "C" {
#endif

enum {
	SOUND_PCMSEEK,
	SOUND_PCMSEEK1,
	SOUND_MAXPCM
};

enum {
	SNDDRV_NODRV,
	SNDDRV_NETBSD,
	SNDDRV_OSS,
	SNDDRV_ESD,
	SNDDRV_SDL,
	SNDDRV_DRVMAX
};

BYTE snddrv_drv2num(const char *);
const char *snddrv_num2drv(BYTE);

#if !defined(NOSOUND)

#ifndef	NSOUNDBUFFER
#define	NSOUNDBUFFER	2
#endif

typedef struct {
        BOOL (*drvinit)(UINT rate, UINT samples);
        BOOL (*drvterm)(void);

        void (*sndplay)(void);
        void (*sndstop)(void);

	void *(*pcmload)(UINT num, const char *path);
	void (*pcmdestroy)(void *chanp, UINT num);
	void (*pcmplay)(void *chanp, UINT num, BOOL loop);
	void (*pcmstop)(void *chanp, UINT num);
	void (*pcmvolume)(void *chanp, UINT num, int volume);
} snddrv_t;

extern int audio_fd;
extern snddrv_t snddrv;

extern int sound_nextbuf;
extern char *sound_event;
extern char *sound_buffer[NSOUNDBUFFER];

UINT calc_blocksize(UINT size);
UINT calc_fragment(UINT size);

BOOL netbsdaudio_setup(void);
BOOL ossaudio_setup(void);
BOOL esdaudio_setup(void);
BOOL sdlaudio_setup(void);
BOOL sdlmixer_setup(void);

void snddrv_play(void);
void snddrv_stop(void);

UINT soundmng_create(UINT rate, UINT ms);
void soundmng_destroy(void);
void soundmng_reset(void);
void soundmng_play(void);
void soundmng_stop(void);
void soundmng_sync(void);
void soundmng_setreverse(BOOL reverse);

BOOL soundmng_pcmplay(UINT num, BOOL loop);
void soundmng_pcmstop(UINT num);

/* ---- for X11 */

BOOL soundmng_initialize(void);
void soundmng_deinitialize(void);

BOOL soundmng_pcmload(UINT num, const char *filename);
void soundmng_pcmvolume(UINT num, int volume);
void *nosound_pcmload(UINT num, const char *);
void nosound_pcmdestroy(void *chanp, UINT num);
void nosound_pcmplay(void *chanp, UINT num, BOOL loop);
void nosound_pcmstop(void *chanp, UINT num);
void nosound_pcmvolume(void *chanp, UINT num, int volume);

#else	/* NOSOUND */

#define soundmng_create(rate, ms)	0, (void)rate, (void)ms
#define	soundmng_destroy()
#define	soundmng_reset()
#define	soundmng_play()
#define	soundmng_stop()
#define	soundmng_sync()
#define	soundmng_setreverse(reverse)

#define	soundmng_pcmplay(num, loop)
#define	soundmng_pcmstop(num)

/* ---- for X11 */

#define	soundmng_initialize()		np2cfg.SOUND_SW = 0, FAILURE
#define	soundmng_deinitialize()

#define	soundmng_pcmload(num, filename)	FAILURE
#define	soundmng_pcmvolume(num, volume)

#endif	/* !NOSOUND */

#ifdef __cplusplus
}
#endif

#endif	/* NP2_X11_SOUNGMNG_H__ */

RetroPC.NET-CVS <cvs@retropc.net>