From 804169dd621a3ad3eec1a32ce30350de667fee80 Mon Sep 17 00:00:00 2001 From: aliaspider Date: Thu, 30 Oct 2014 00:23:30 +0100 Subject: apply a facelift --- source/soundux.h | 250 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 127 insertions(+), 123 deletions(-) (limited to 'source/soundux.h') diff --git a/source/soundux.h b/source/soundux.h index 7e77d4f..ecccc53 100644 --- a/source/soundux.h +++ b/source/soundux.h @@ -1,6 +1,6 @@ /******************************************************************************* Snes9x - Portable Super Nintendo Entertainment System (TM) emulator. - + (c) Copyright 1996 - 2002 Gary Henderson (gary.henderson@ntlworld.com) and Jerremy Koot (jkoot@snes9x.com) @@ -43,46 +43,46 @@ S-DD1 C emulator code (c) Copyright 2003 Brad Jorsch with research by Andreas Naive and John Weidman - + S-RTC C emulator code (c) Copyright 2001 John Weidman - + ST010 C++ emulator code (c) Copyright 2003 Feather, Kris Bleakley, John Weidman and Matthew Kendora - Super FX x86 assembler emulator code - (c) Copyright 1998 - 2003 zsKnight, _Demo_, and pagefault + Super FX x86 assembler emulator code + (c) Copyright 1998 - 2003 zsKnight, _Demo_, and pagefault - Super FX C emulator code + Super FX C emulator code (c) Copyright 1997 - 1999 Ivar, Gary Henderson and John Weidman SH assembler code partly based on x86 assembler code - (c) Copyright 2002 - 2004 Marcus Comstedt (marcus@mc.pp.se) + (c) Copyright 2002 - 2004 Marcus Comstedt (marcus@mc.pp.se) + - Specific ports contains the works of other authors. See headers in individual files. - + Snes9x homepage: http://www.snes9x.com - + 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. *******************************************************************************/ @@ -93,11 +93,13 @@ enum { SOUND_SAMPLE = 0, SOUND_NOISE, SOUND_EXTRA_NOISE, SOUND_MUTE }; enum { SOUND_SILENT, SOUND_ATTACK, SOUND_DECAY, SOUND_SUSTAIN, SOUND_RELEASE, SOUND_GAIN, SOUND_INCREASE_LINEAR, SOUND_INCREASE_BENT_LINE, SOUND_DECREASE_LINEAR, - SOUND_DECREASE_EXPONENTIAL}; + SOUND_DECREASE_EXPONENTIAL + }; enum { MODE_NONE = SOUND_SILENT, MODE_ADSR, MODE_RELEASE = SOUND_RELEASE, MODE_GAIN, MODE_INCREASE_LINEAR, MODE_INCREASE_BENT_LINE, - MODE_DECREASE_LINEAR, MODE_DECREASE_EXPONENTIAL}; + MODE_DECREASE_LINEAR, MODE_DECREASE_EXPONENTIAL + }; #define MAX_ENVELOPE_HEIGHT 127 #define ENVELOPE_SHIFT 7 @@ -117,129 +119,131 @@ enum { MODE_NONE = SOUND_SILENT, MODE_ADSR, MODE_RELEASE = SOUND_RELEASE, # include #endif /* __sgi */ -typedef struct { - int sound_fd; - int sound_switch; - int playback_rate; - int buffer_size; - // int noise_gen; - // Moved to soundux.cpp's noise_gen; this doesn't need volatility! [Neb] - bool8 mute_sound; - bool8 encoded; +typedef struct +{ + int sound_fd; + int sound_switch; + int playback_rate; + int buffer_size; + // int noise_gen; + // Moved to soundux.cpp's noise_gen; this doesn't need volatility! [Neb] + bool8 mute_sound; + bool8 encoded; #ifdef __sun - int last_eof; + int last_eof; #endif #ifdef __sgi - ALport al_port; + ALport al_port; #endif /* __sgi */ - int32 samples_mixed_so_far; - int32 play_position; - uint32 err_counter; - uint32 err_rate; + int32 samples_mixed_so_far; + int32 play_position; + uint32 err_counter; + uint32 err_rate; } SoundStatus; SoundStatus so; -typedef struct { - int state; - int type; - short volume_left; - short volume_right; - uint32 hertz; - uint32 frequency; - uint32 count; - bool8 loop; - int envx; - short left_vol_level; - short right_vol_level; - short envx_target; - unsigned long int env_error; - unsigned long erate; - int direction; - unsigned long attack_rate; - unsigned long decay_rate; - unsigned long sustain_rate; - unsigned long release_rate; - unsigned long sustain_level; - signed short sample; - signed short decoded [16]; - signed short previous16 [2]; - signed short *block; - uint16 sample_number; - bool8 last_block; - bool8 needs_decode; - uint32 block_pointer; - uint32 sample_pointer; - int *echo_buf_ptr; - int mode; - int32 envxx; - signed short next_sample; - int32 interpolate; - int32 previous [2]; - // Just incase they are needed in the future, for snapshot compatibility. - uint32 dummy [8]; -// unsigned short last_valid_header; +typedef struct +{ + int state; + int type; + short volume_left; + short volume_right; + uint32 hertz; + uint32 frequency; + uint32 count; + bool8 loop; + int envx; + short left_vol_level; + short right_vol_level; + short envx_target; + unsigned long int env_error; + unsigned long erate; + int direction; + unsigned long attack_rate; + unsigned long decay_rate; + unsigned long sustain_rate; + unsigned long release_rate; + unsigned long sustain_level; + signed short sample; + signed short decoded [16]; + signed short previous16 [2]; + signed short* block; + uint16 sample_number; + bool8 last_block; + bool8 needs_decode; + uint32 block_pointer; + uint32 sample_pointer; + int* echo_buf_ptr; + int mode; + int32 envxx; + signed short next_sample; + int32 interpolate; + int32 previous [2]; + // Just incase they are needed in the future, for snapshot compatibility. + uint32 dummy [8]; + // unsigned short last_valid_header; } Channel; typedef struct { - int echo_enable; - int echo_feedback; /* range is -128 .. 127 */ - int echo_ptr; - int echo_buffer_size; - int echo_write_enabled; - int echo_channel_enable; - int pitch_mod; - // Just incase they are needed in the future, for snapshot compatibility. - uint32 dummy [3]; - Channel channels [NUM_CHANNELS]; - // bool8 no_filter; - short master_volume [2]; /* range is -128 .. 127 */ - short echo_volume [2]; /* range is -128 .. 127 */ - int noise_hertz; + int echo_enable; + int echo_feedback; /* range is -128 .. 127 */ + int echo_ptr; + int echo_buffer_size; + int echo_write_enabled; + int echo_channel_enable; + int pitch_mod; + // Just incase they are needed in the future, for snapshot compatibility. + uint32 dummy [3]; + Channel channels [NUM_CHANNELS]; + // bool8 no_filter; + short master_volume [2]; /* range is -128 .. 127 */ + short echo_volume [2]; /* range is -128 .. 127 */ + int noise_hertz; } SSoundData; SSoundData SoundData; -void S9xSetEightBitConsoleSound (bool8 Enabled); - -void S9xSetSoundVolume (int channel, short volume_left, short volume_right); -void S9xSetSoundFrequency (int channel, int hertz); -void S9xSetSoundHertz (int channel, int hertz); -void S9xSetSoundType (int channel, int type_of_sound); -void S9xSetMasterVolume (short master_volume_left, short master_volume_right); -void S9xSetEchoVolume (short echo_volume_left, short echo_volume_right); -void S9xSetSoundControl (int sound_switch); -bool8 S9xSetSoundMute (bool8 mute); -void S9xSetEnvelopeHeight (int channel, int height); -void S9xSetSoundADSR (int channel, int attack, int decay, int sustain, - int sustain_level, int release); -void S9xSetSoundKeyOff (int channel); -void S9xSetSoundDecayMode (int channel); -void S9xSetSoundAttachMode (int channel); -void S9xSoundStartEnvelope (Channel *); -void S9xSetSoundSample (int channel, uint16 sample_number); -void S9xSetEchoFeedback (int echo_feedback); -void S9xSetEchoEnable (uint8 byte); -void S9xSetEchoDelay (int byte); -void S9xSetEchoWriteEnable (uint8 byte); -void S9xSetFilterCoefficient (int tap, int value); -void S9xSetFrequencyModulationEnable (uint8 byte); -void S9xSetEnvelopeRate (int channel, unsigned long rate, int direction, - int target); -bool8 S9xSetSoundMode (int channel, int mode); -int S9xGetEnvelopeHeight (int channel); -void S9xResetSound (bool8 full); -void S9xFixSoundAfterSnapshotLoad (); -void S9xPlaybackSoundSetting (int channel); -void S9xPlaySample (int channel); -void S9xFixEnvelope (int channel, uint8 gain, uint8 adsr1, uint8 adsr2); -void S9xStartSample (int channel); - -void S9xMixSamples (uint8 *buffer, int sample_count); -void S9xMixSamplesO (uint8 *buffer, int sample_count, int byte_offset); -bool8 S9xOpenSoundDevice (int, bool8, int); -void S9xSetPlaybackRate (uint32 rate); +void S9xSetEightBitConsoleSound(bool8 Enabled); + +void S9xSetSoundVolume(int channel, short volume_left, short volume_right); +void S9xSetSoundFrequency(int channel, int hertz); +void S9xSetSoundHertz(int channel, int hertz); +void S9xSetSoundType(int channel, int type_of_sound); +void S9xSetMasterVolume(short master_volume_left, short master_volume_right); +void S9xSetEchoVolume(short echo_volume_left, short echo_volume_right); +void S9xSetSoundControl(int sound_switch); +bool8 S9xSetSoundMute(bool8 mute); +void S9xSetEnvelopeHeight(int channel, int height); +void S9xSetSoundADSR(int channel, int attack, int decay, int sustain, + int sustain_level, int release); +void S9xSetSoundKeyOff(int channel); +void S9xSetSoundDecayMode(int channel); +void S9xSetSoundAttachMode(int channel); +void S9xSoundStartEnvelope(Channel*); +void S9xSetSoundSample(int channel, uint16 sample_number); +void S9xSetEchoFeedback(int echo_feedback); +void S9xSetEchoEnable(uint8 byte); +void S9xSetEchoDelay(int byte); +void S9xSetEchoWriteEnable(uint8 byte); +void S9xSetFilterCoefficient(int tap, int value); +void S9xSetFrequencyModulationEnable(uint8 byte); +void S9xSetEnvelopeRate(int channel, unsigned long rate, int direction, + int target); +bool8 S9xSetSoundMode(int channel, int mode); +int S9xGetEnvelopeHeight(int channel); +void S9xResetSound(bool8 full); +void S9xFixSoundAfterSnapshotLoad(); +void S9xPlaybackSoundSetting(int channel); +void S9xPlaySample(int channel); +void S9xFixEnvelope(int channel, uint8 gain, uint8 adsr1, uint8 adsr2); +void S9xStartSample(int channel); + +void S9xMixSamples(uint8* buffer, int sample_count); +void S9xMixSamplesO(uint8* buffer, int sample_count, int byte_offset); +bool8 S9xOpenSoundDevice(int, bool8, int); +void S9xSetPlaybackRate(uint32 rate); #endif -- cgit v1.2.3