mirror of
https://github.com/Fledge68/WiiFlow_Lite.git
synced 2024-11-30 23:24:18 +01:00
89 lines
2.4 KiB
C
89 lines
2.4 KiB
C
/*
|
|
* Copyright (c) 2002, 2003, 2004, 2005, 2007 by Christian Nowak <chnowak@web.de>
|
|
* Last update: 20th October, 2007
|
|
*/
|
|
|
|
#ifndef __EFFECTS_H__
|
|
#define __EFFECTS_H__
|
|
|
|
#include "modplay_core.h"
|
|
|
|
enum Effect {
|
|
|
|
EFFECT_NONE = 0,
|
|
|
|
/* Soundtracker */
|
|
EFFECT_ST00, /* Arpegggio */
|
|
EFFECT_ST10, /* Portamento Up */
|
|
EFFECT_ST20, /* Portamento Down */
|
|
EFFECT_ST30, /* Tone Portamento */
|
|
EFFECT_ST40, /* Vibrato */
|
|
EFFECT_ST50, /* Tone Portamento + Volume Slide */
|
|
EFFECT_ST60, /* Vibrato + Volume Slide */
|
|
EFFECT_ST70, /* Tremolo */
|
|
EFFECT_ST80, /* Panning */
|
|
EFFECT_ST90, /* Sample Offset */
|
|
EFFECT_STa0, /* Volume Slide */
|
|
EFFECT_STb0, /* Position Jump */
|
|
EFFECT_STc0, /* Set Volume */
|
|
EFFECT_STd0, /* Pattern Break */
|
|
EFFECT_STe1, /* Fineslide Up */
|
|
EFFECT_STe2, /* Fineslide Down */
|
|
EFFECT_STe4, /* Vibrato Control */
|
|
EFFECT_STe5, /* Set Finetune */
|
|
EFFECT_STe6, /* Pattern Loop */
|
|
EFFECT_STe7, /* Tremolo Control */
|
|
EFFECT_STe8, /* Panning */
|
|
EFFECT_STe9, /* Retrig Note */
|
|
EFFECT_STea, /* Fine Volume Up */
|
|
EFFECT_STeb, /* Fine Volume Down */
|
|
EFFECT_STec, /* Note Cut */
|
|
EFFECT_STed, /* Note Delay */
|
|
EFFECT_STee, /* Pattern Delay */
|
|
EFFECT_STef, /* Invert Loop */
|
|
EFFECT_STf0, /* Set Speed */
|
|
EFFECT_STg0, /* Goto line */
|
|
|
|
/* Extended Module */
|
|
EFFECT_XM01, /* Portamento Up */
|
|
EFFECT_XM02, /* Portamento Down */
|
|
EFFECT_XM10, /* Global Volume */
|
|
EFFECT_XM11, /* Global Volume Slide */
|
|
EFFECT_XM19, /* Panning Slide */
|
|
EFFECT_XMa0, /* Volume Fade */
|
|
|
|
/* S3M */
|
|
EFFECT_S3Ma0, /* Set Speed */
|
|
EFFECT_S3Md0, /* Volume Slide */
|
|
EFFECT_S3Me0, /* Slide Down */
|
|
EFFECT_S3Mf0, /* Slide Up */
|
|
EFFECT_S3Mk0, /* Vibrato + Volume Slide */
|
|
EFFECT_S3Ml0, /* Tone Portamento + Volume Slide */
|
|
EFFECT_S3Mq0, /* Retrig + Volume Slide */
|
|
EFFECT_S3Mr0, /* Tremolo */
|
|
EFFECT_S3Mt0, /* Set Tempo */
|
|
|
|
/* Insert new effects before this one */
|
|
EFFECT_NUMEFFECTS
|
|
};
|
|
|
|
|
|
#define EFFECT_DONOTTRIGGERNOTE 1
|
|
#define EFFECT_DONOTADVANCEPATTERN 2
|
|
#define EFFECT_DONOTRESETSAMPLEPOS 4
|
|
#define EFFECT_DONOTCHANGEPERIOD 8
|
|
#define EFFECT_DONOTCHANGEPANNING 16
|
|
#define EFFECT_DONOTCHANGEVOLUME 32
|
|
|
|
|
|
typedef struct MODPLAY_EffectHandler {
|
|
|
|
int (*start)(MODFILE *mod, int channel, int ecol, MOD_Note *note);
|
|
int (*process)(MODFILE *mod, int channel, int ecol);
|
|
int (*stop)(MODFILE *mod, int channel, int ecol);
|
|
} MODPLAY_EffectHandler;
|
|
|
|
extern const MODPLAY_EffectHandler MODPLAY_EffectHandlers[];
|
|
|
|
#endif
|