summaryrefslogtreecommitdiffstats
path: root/arm-wt-22k/lib_src/eas_wtengine.h
diff options
context:
space:
mode:
Diffstat (limited to 'arm-wt-22k/lib_src/eas_wtengine.h')
-rw-r--r--arm-wt-22k/lib_src/eas_wtengine.h318
1 files changed, 159 insertions, 159 deletions
diff --git a/arm-wt-22k/lib_src/eas_wtengine.h b/arm-wt-22k/lib_src/eas_wtengine.h
index 6401322..bba7a5e 100644
--- a/arm-wt-22k/lib_src/eas_wtengine.h
+++ b/arm-wt-22k/lib_src/eas_wtengine.h
@@ -1,12 +1,12 @@
-/*----------------------------------------------------------------------------
- *
- * File:
- * eas_wtengine.h
- *
- * Contents and purpose:
- * This file defines the interface for wavetable synthesis engine
- *
- * Copyright Sonic Network Inc. 2004
+/*----------------------------------------------------------------------------
+ *
+ * File:
+ * eas_wtengine.h
+ *
+ * Contents and purpose:
+ * This file defines the interface for wavetable synthesis engine
+ *
+ * Copyright Sonic Network Inc. 2004
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,153 +19,153 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- *
- *----------------------------------------------------------------------------
- * Revision Control:
- * $Revision: 818 $
- * $Date: 2007-08-02 15:19:41 -0700 (Thu, 02 Aug 2007) $
- *----------------------------------------------------------------------------
-*/
-
-#ifndef _EAS_WTENGINE_H
-#define _EAS_WTENGINE_H
-
-/* option sanity check */
-#if defined(_OPTIMIZED_MONO) && defined(_FILTER_ENABLED)
-#error "Incompatible build settings: _OPTIMIZED_MONO cannot be used with _FILTER_ENABLED"
-#endif
-
-#if defined(_OPTIMIZED_MONO) && (NUM_OUTPUT_CHANNELS != 1)
-#error "Incompatible build settings: _OPTIMIZED_MONO can only be used with NUM_OUTPUT_CHANNELS = 1"
-#endif
-
-#include "eas_wt_IPC_frame.h"
-
-/*----------------------------------------------------------------------------
- * defines
- *----------------------------------------------------------------------------
-*/
-#define WT_NOISE_GENERATOR 0xffffffff
-
-/*----------------------------------------------------------------------------
- * typedefs
- *----------------------------------------------------------------------------
-*/
-
-/*----------------------------------------------------------------------------
- * S_WT_INT_FRAME
- *
- * This structure includes S_WT_FRAME plus the bus mixing
- * parameters for the internal voices.
- *----------------------------------------------------------------------------
-*/
-typedef struct s_wt_int_frame_tag
-{
- S_WT_FRAME frame;
- EAS_PCM *pAudioBuffer;
- EAS_I32 *pMixBuffer;
- EAS_I32 numSamples;
- EAS_I32 prevGain;
-} S_WT_INT_FRAME;
-
-#if defined(_FILTER_ENABLED)
-/*----------------------------------------------------------------------------
- * S_FILTER_CONTROL data structure
- *----------------------------------------------------------------------------
-*/
-typedef struct s_filter_control_tag
-{
- EAS_I16 z1; /* 1 sample delay state variable */
- EAS_I16 z2; /* 2 sample delay state variable */
-} S_FILTER_CONTROL;
-#endif
-
-/*------------------------------------
- * S_LFO_CONTROL data structure
- *------------------------------------
-*/
-typedef struct s_lfo_control_tag
-{
- EAS_I16 lfoValue; /* LFO current output value */
- EAS_I16 lfoPhase; /* LFO current phase */
-} S_LFO_CONTROL;
-
-/* bit definitions for S_WT_VOICE:flags */
-#define WT_FLAGS_ADPCM_NIBBLE 1 /* high/low nibble flag */
-#define WT_FLAGS_ADPCM_READY 2 /* first 2 samples are decoded */
-#define WT_FLAGS_USE_ADPCM 4 /* sample is ADPCM encoded */
-
-/* eg1State and eg2State */
-typedef enum {
- eEnvelopeStateInit = 0,
- eEnvelopeStateDelay,
- eEnvelopeStateAttack,
- eEnvelopeStateHold,
- eEnvelopeStateDecay,
- eEnvelopeStateSustain,
- eEnvelopeStateRelease,
- eEnvelopeStateMuting,
- eEnvelopeStateMuted,
- eEnvelopeStateInvalid /* should never be in this state! */
-} E_ENVELOPE_STATE;
-
-#define DEFAULT_EG1_STATE eEnvelopeStateAttack
-#define DEFAULT_EG1_VALUE 0
-#define DEFAULT_EG1_INCREMENT 0
-#define DEFAULT_EG2_STATE eEnvelopeStateAttack
-#define DEFAULT_EG2_VALUE 0
-#define DEFAULT_EG2_INCREMENT 0
-
-/*----------------------------------------------------------------------------
- * S_WT_VOICE
- *
- * This structure contains state data for the wavetable engine
- *----------------------------------------------------------------------------
-*/
-typedef struct s_wt_voice_tag
-{
- EAS_U32 loopEnd; /* points to last PCM sample (not 1 beyond last) */
- EAS_U32 loopStart; /* points to first sample at start of loop */
- EAS_U32 phaseAccum; /* current sample, integer portion of phase */
- EAS_U32 phaseFrac; /* fractional portion of phase */
-
-#if (NUM_OUTPUT_CHANNELS == 2)
- EAS_I16 gainLeft; /* current gain, left ch */
- EAS_I16 gainRight; /* current gain, right ch */
-#endif
-
-#if defined(_FILTER_ENABLED)
- S_FILTER_CONTROL filter; /* low pass filter */
-#endif
-
- S_LFO_CONTROL modLFO; /* modulator LFO */
-
-#ifdef DLS_SYNTHESIZER
- S_LFO_CONTROL vibLFO; /* vibrato LFO */
-#endif
-
- /* envelope control */
- EAS_I16 eg1Value;
- EAS_I16 eg2Value;
- EAS_I16 eg1Increment;
- EAS_I16 eg2Increment;
- EAS_U8 eg1State;
- EAS_U8 eg2State;
-
- EAS_U16 artIndex; /* index to articulation params */
-
-} S_WT_VOICE;
-
-/*----------------------------------------------------------------------------
- * prototypes
- *----------------------------------------------------------------------------
-*/
-EAS_BOOL WT_CheckSampleEnd (S_WT_VOICE *pWTVoice, S_WT_INT_FRAME *pWTIntFrame, EAS_BOOL update);
-void WT_ProcessVoice (S_WT_VOICE *pWTVoice, S_WT_INT_FRAME *pWTIntFrame);
-
-#ifdef EAS_SPLIT_WT_SYNTH
-void WTE_ConfigVoice (EAS_I32 voiceNum, S_WT_CONFIG *pWTConfig, EAS_FRAME_BUFFER_HANDLE pFrameBuffer);
-void WTE_ProcessVoice (EAS_I32 voiceNum, S_WT_FRAME *pWTParams, EAS_FRAME_BUFFER_HANDLE pFrameBuffer);
-#endif
-
-#endif
+ *
+ *----------------------------------------------------------------------------
+ * Revision Control:
+ * $Revision: 818 $
+ * $Date: 2007-08-02 15:19:41 -0700 (Thu, 02 Aug 2007) $
+ *----------------------------------------------------------------------------
+*/
+
+#ifndef _EAS_WTENGINE_H
+#define _EAS_WTENGINE_H
+
+/* option sanity check */
+#if defined(_OPTIMIZED_MONO) && defined(_FILTER_ENABLED)
+#error "Incompatible build settings: _OPTIMIZED_MONO cannot be used with _FILTER_ENABLED"
+#endif
+
+#if defined(_OPTIMIZED_MONO) && (NUM_OUTPUT_CHANNELS != 1)
+#error "Incompatible build settings: _OPTIMIZED_MONO can only be used with NUM_OUTPUT_CHANNELS = 1"
+#endif
+
+#include "eas_wt_IPC_frame.h"
+
+/*----------------------------------------------------------------------------
+ * defines
+ *----------------------------------------------------------------------------
+*/
+#define WT_NOISE_GENERATOR 0xffffffff
+
+/*----------------------------------------------------------------------------
+ * typedefs
+ *----------------------------------------------------------------------------
+*/
+
+/*----------------------------------------------------------------------------
+ * S_WT_INT_FRAME
+ *
+ * This structure includes S_WT_FRAME plus the bus mixing
+ * parameters for the internal voices.
+ *----------------------------------------------------------------------------
+*/
+typedef struct s_wt_int_frame_tag
+{
+ S_WT_FRAME frame;
+ EAS_PCM *pAudioBuffer;
+ EAS_I32 *pMixBuffer;
+ EAS_I32 numSamples;
+ EAS_I32 prevGain;
+} S_WT_INT_FRAME;
+
+#if defined(_FILTER_ENABLED)
+/*----------------------------------------------------------------------------
+ * S_FILTER_CONTROL data structure
+ *----------------------------------------------------------------------------
+*/
+typedef struct s_filter_control_tag
+{
+ EAS_I16 z1; /* 1 sample delay state variable */
+ EAS_I16 z2; /* 2 sample delay state variable */
+} S_FILTER_CONTROL;
+#endif
+
+/*------------------------------------
+ * S_LFO_CONTROL data structure
+ *------------------------------------
+*/
+typedef struct s_lfo_control_tag
+{
+ EAS_I16 lfoValue; /* LFO current output value */
+ EAS_I16 lfoPhase; /* LFO current phase */
+} S_LFO_CONTROL;
+
+/* bit definitions for S_WT_VOICE:flags */
+#define WT_FLAGS_ADPCM_NIBBLE 1 /* high/low nibble flag */
+#define WT_FLAGS_ADPCM_READY 2 /* first 2 samples are decoded */
+#define WT_FLAGS_USE_ADPCM 4 /* sample is ADPCM encoded */
+
+/* eg1State and eg2State */
+typedef enum {
+ eEnvelopeStateInit = 0,
+ eEnvelopeStateDelay,
+ eEnvelopeStateAttack,
+ eEnvelopeStateHold,
+ eEnvelopeStateDecay,
+ eEnvelopeStateSustain,
+ eEnvelopeStateRelease,
+ eEnvelopeStateMuting,
+ eEnvelopeStateMuted,
+ eEnvelopeStateInvalid /* should never be in this state! */
+} E_ENVELOPE_STATE;
+
+#define DEFAULT_EG1_STATE eEnvelopeStateAttack
+#define DEFAULT_EG1_VALUE 0
+#define DEFAULT_EG1_INCREMENT 0
+#define DEFAULT_EG2_STATE eEnvelopeStateAttack
+#define DEFAULT_EG2_VALUE 0
+#define DEFAULT_EG2_INCREMENT 0
+
+/*----------------------------------------------------------------------------
+ * S_WT_VOICE
+ *
+ * This structure contains state data for the wavetable engine
+ *----------------------------------------------------------------------------
+*/
+typedef struct s_wt_voice_tag
+{
+ EAS_U32 loopEnd; /* points to last PCM sample (not 1 beyond last) */
+ EAS_U32 loopStart; /* points to first sample at start of loop */
+ EAS_U32 phaseAccum; /* current sample, integer portion of phase */
+ EAS_U32 phaseFrac; /* fractional portion of phase */
+
+#if (NUM_OUTPUT_CHANNELS == 2)
+ EAS_I16 gainLeft; /* current gain, left ch */
+ EAS_I16 gainRight; /* current gain, right ch */
+#endif
+
+#if defined(_FILTER_ENABLED)
+ S_FILTER_CONTROL filter; /* low pass filter */
+#endif
+
+ S_LFO_CONTROL modLFO; /* modulator LFO */
+
+#ifdef DLS_SYNTHESIZER
+ S_LFO_CONTROL vibLFO; /* vibrato LFO */
+#endif
+
+ /* envelope control */
+ EAS_I16 eg1Value;
+ EAS_I16 eg2Value;
+ EAS_I16 eg1Increment;
+ EAS_I16 eg2Increment;
+ EAS_U8 eg1State;
+ EAS_U8 eg2State;
+
+ EAS_U16 artIndex; /* index to articulation params */
+
+} S_WT_VOICE;
+
+/*----------------------------------------------------------------------------
+ * prototypes
+ *----------------------------------------------------------------------------
+*/
+EAS_BOOL WT_CheckSampleEnd (S_WT_VOICE *pWTVoice, S_WT_INT_FRAME *pWTIntFrame, EAS_BOOL update);
+void WT_ProcessVoice (S_WT_VOICE *pWTVoice, S_WT_INT_FRAME *pWTIntFrame);
+
+#ifdef EAS_SPLIT_WT_SYNTH
+void WTE_ConfigVoice (EAS_I32 voiceNum, S_WT_CONFIG *pWTConfig, EAS_FRAME_BUFFER_HANDLE pFrameBuffer);
+void WTE_ProcessVoice (EAS_I32 voiceNum, S_WT_FRAME *pWTParams, EAS_FRAME_BUFFER_HANDLE pFrameBuffer);
+#endif
+
+#endif