sm64

A Super Mario 64 decompilation
Log | Files | Refs | README | LICENSE

effects.h (1267B)


      1 #ifndef AUDIO_EFFECTS_H
      2 #define AUDIO_EFFECTS_H
      3 
      4 #include <PR/ultratypes.h>
      5 
      6 #include "internal.h"
      7 #include "platform_info.h"
      8 
      9 #define ADSR_STATE_DISABLED 0
     10 #define ADSR_STATE_INITIAL 1
     11 #define ADSR_STATE_START_LOOP 2
     12 #define ADSR_STATE_LOOP 3
     13 #define ADSR_STATE_FADE 4
     14 #define ADSR_STATE_HANG 5
     15 #define ADSR_STATE_DECAY 6
     16 #define ADSR_STATE_RELEASE 7
     17 #define ADSR_STATE_SUSTAIN 8
     18 
     19 #define ADSR_ACTION_RELEASE 0x10
     20 #define ADSR_ACTION_DECAY 0x20
     21 #define ADSR_ACTION_HANG 0x40
     22 
     23 #define ADSR_DISABLE 0
     24 #define ADSR_HANG -1
     25 #define ADSR_GOTO -2
     26 #define ADSR_RESTART -3
     27 
     28 // Envelopes are always stored as big endian, to match sequence files which are
     29 // byte blobs and can embed envelopes. Hence this byteswapping macro.
     30 #if IS_BIG_ENDIAN
     31 #define BSWAP16(x) (x)
     32 #else
     33 #define BSWAP16(x) (((x) & 0xff) << 8 | (((x) >> 8) & 0xff))
     34 #endif
     35 
     36 void sequence_player_process_sound(struct SequencePlayer *seqPlayer);
     37 void note_vibrato_update(struct Note *note);
     38 void note_vibrato_init(struct Note *note);
     39 void adsr_init(struct AdsrState *adsr, struct AdsrEnvelope *envelope, s16 *volOut);
     40 #if defined(VERSION_EU) || defined(VERSION_SH) || defined(VERSION_CN)
     41 f32 adsr_update(struct AdsrState *adsr);
     42 #else
     43 s32 adsr_update(struct AdsrState *adsr);
     44 #endif
     45 
     46 #endif // AUDIO_EFFECTS_H