/*
 * Snes9x - Portable Super Nintendo Entertainment System (TM) emulator.
 *
 * (c) Copyright 1996, 1997, 1998 Gary Henderson (gary@daniver.demon.co.uk) and
 *                                Jerremy Koot (jkoot@euronet.nl)
 *
 * Super FX C emulator code 
 * (c) Copyright 1997, 1998 Lestat (lstat@hotmail.com) and
 *                          Gary Henderson.
 * Super FX assembler emulator code (c) Copyright 1998 zsKnight and _Demo_.
 *
 * DSP1 emulator code (c) Copyright 1998 Lestat and Gary Henderson.
 * DOS port code contains the works of other authors. See headers in
 * individual files.
 *
 * Permission to use, copy, modify and distribute Snes9x in both binary and
 * source form, for non-commercial purposes, is hereby granted without fee,
 * providing that this license information and copyright notice appear with
 * all copies and any derived work.
 *
 * This software is provided 'as-is', without any express or implied
 * warranty. In no event shall the authors be held liable for any damages
 * arising from the use of this software.
 *
 * Snes9x is freeware for PERSONAL USE only. Commercial users should
 * seek permission of the copyright holders first. Commercial use includes
 * charging money for Snes9x or software derived from Snes9x.
 *
 * The copyright holders request that bug fixes and improvements to the code
 * should be forwarded to them so everyone can benefit from the modifications
 * in future versions.
 *
 * Super NES and Super Nintendo Entertainment System are trademarks of
 * Nintendo Co., Limited and its subsidiary companies.
 */

#ifdef __cplusplus
extern "C" {
#endif

int sx_sb_detect(int *stereo, int *bits16);
int sx_sb_init(int *stereo, int *bits16, int *freq, int *dmamixsize);
void sx_sb_exit();
void sx_sb_mix_some_samples(unsigned long buf, unsigned short seg);
void sx_sb_unmute_sound();
void sx_sb_mute_sound();
extern char sx_sb_desc[80];

void _sb_dma_start(int channel, unsigned long addr, int size, int auto_init);
unsigned long _sb_dma_todo(int channel);
int _sb_dma_allocate_mem(int bytes, int *sel, unsigned long *phys);
void _sb_dma_stop(int channel);

int _sb_install_irq(int num, int (*handler)());
void _sb_remove_irq(int num);
void _sb_dma_lock_mem();

#ifdef __cplusplus
}
#endif
