^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-or-later */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #ifndef __SOUND_EMUX_LEGACY_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define __SOUND_EMUX_LEGACY_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * Copyright (c) 1999-2000 Takashi Iwai <tiwai@suse.de>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) * Definitions of OSS compatible headers for Emu8000 device informations
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include <sound/seq_oss_legacy.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) * awe hardware controls
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #define _EMUX_OSS_DEBUG_MODE 0x00
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #define _EMUX_OSS_REVERB_MODE 0x01
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #define _EMUX_OSS_CHORUS_MODE 0x02
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) #define _EMUX_OSS_REMOVE_LAST_SAMPLES 0x03
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) #define _EMUX_OSS_INITIALIZE_CHIP 0x04
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) #define _EMUX_OSS_SEND_EFFECT 0x05
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) #define _EMUX_OSS_TERMINATE_CHANNEL 0x06
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) #define _EMUX_OSS_TERMINATE_ALL 0x07
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) #define _EMUX_OSS_INITIAL_VOLUME 0x08
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) #define _EMUX_OSS_INITIAL_ATTEN _EMUX_OSS_INITIAL_VOLUME
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) #define _EMUX_OSS_RESET_CHANNEL 0x09
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) #define _EMUX_OSS_CHANNEL_MODE 0x0a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #define _EMUX_OSS_DRUM_CHANNELS 0x0b
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) #define _EMUX_OSS_MISC_MODE 0x0c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) #define _EMUX_OSS_RELEASE_ALL 0x0d
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) #define _EMUX_OSS_NOTEOFF_ALL 0x0e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) #define _EMUX_OSS_CHN_PRESSURE 0x0f
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) #define _EMUX_OSS_EQUALIZER 0x11
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) #define _EMUX_OSS_MODE_FLAG 0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) #define _EMUX_OSS_COOKED_FLAG 0x40 /* not supported */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) #define _EMUX_OSS_MODE_VALUE_MASK 0x3F
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) * mode type definitions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) enum {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) /* 0*/ EMUX_MD_EXCLUSIVE_OFF, /* obsolete */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) /* 1*/ EMUX_MD_EXCLUSIVE_ON, /* obsolete */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) /* 2*/ EMUX_MD_VERSION, /* read only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) /* 3*/ EMUX_MD_EXCLUSIVE_SOUND, /* 0/1: exclusive note on (default=1) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) /* 4*/ EMUX_MD_REALTIME_PAN, /* 0/1: do realtime pan change (default=1) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) /* 5*/ EMUX_MD_GUS_BANK, /* bank number for GUS patches (default=0) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) /* 6*/ EMUX_MD_KEEP_EFFECT, /* 0/1: keep effect values, (default=0) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) /* 7*/ EMUX_MD_ZERO_ATTEN, /* attenuation of max volume (default=32) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) /* 8*/ EMUX_MD_CHN_PRIOR, /* 0/1: set MIDI channel priority mode (default=1) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) /* 9*/ EMUX_MD_MOD_SENSE, /* integer: modwheel sensitivity (def=18) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) /*10*/ EMUX_MD_DEF_PRESET, /* integer: default preset number (def=0) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) /*11*/ EMUX_MD_DEF_BANK, /* integer: default bank number (def=0) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) /*12*/ EMUX_MD_DEF_DRUM, /* integer: default drumset number (def=0) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) /*13*/ EMUX_MD_TOGGLE_DRUM_BANK, /* 0/1: toggle drum flag with bank# (def=0) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) /*14*/ EMUX_MD_NEW_VOLUME_CALC, /* 0/1: volume calculation mode (def=1) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) /*15*/ EMUX_MD_CHORUS_MODE, /* integer: chorus mode (def=2) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) /*16*/ EMUX_MD_REVERB_MODE, /* integer: chorus mode (def=4) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) /*17*/ EMUX_MD_BASS_LEVEL, /* integer: bass level (def=5) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) /*18*/ EMUX_MD_TREBLE_LEVEL, /* integer: treble level (def=9) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) /*19*/ EMUX_MD_DEBUG_MODE, /* integer: debug level (def=0) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) /*20*/ EMUX_MD_PAN_EXCHANGE, /* 0/1: exchange panning direction (def=0) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) EMUX_MD_END,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) * effect parameters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) enum {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) /* modulation envelope parameters */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) /* 0*/ EMUX_FX_ENV1_DELAY, /* WORD: ENVVAL */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) /* 1*/ EMUX_FX_ENV1_ATTACK, /* BYTE: up ATKHLD */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) /* 2*/ EMUX_FX_ENV1_HOLD, /* BYTE: lw ATKHLD */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) /* 3*/ EMUX_FX_ENV1_DECAY, /* BYTE: lw DCYSUS */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) /* 4*/ EMUX_FX_ENV1_RELEASE, /* BYTE: lw DCYSUS */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) /* 5*/ EMUX_FX_ENV1_SUSTAIN, /* BYTE: up DCYSUS */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) /* 6*/ EMUX_FX_ENV1_PITCH, /* BYTE: up PEFE */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) /* 7*/ EMUX_FX_ENV1_CUTOFF, /* BYTE: lw PEFE */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) /* volume envelope parameters */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) /* 8*/ EMUX_FX_ENV2_DELAY, /* WORD: ENVVOL */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) /* 9*/ EMUX_FX_ENV2_ATTACK, /* BYTE: up ATKHLDV */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) /*10*/ EMUX_FX_ENV2_HOLD, /* BYTE: lw ATKHLDV */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) /*11*/ EMUX_FX_ENV2_DECAY, /* BYTE: lw DCYSUSV */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) /*12*/ EMUX_FX_ENV2_RELEASE, /* BYTE: lw DCYSUSV */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) /*13*/ EMUX_FX_ENV2_SUSTAIN, /* BYTE: up DCYSUSV */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) /* LFO1 (tremolo & vibrato) parameters */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) /*14*/ EMUX_FX_LFO1_DELAY, /* WORD: LFO1VAL */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) /*15*/ EMUX_FX_LFO1_FREQ, /* BYTE: lo TREMFRQ */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) /*16*/ EMUX_FX_LFO1_VOLUME, /* BYTE: up TREMFRQ */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) /*17*/ EMUX_FX_LFO1_PITCH, /* BYTE: up FMMOD */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) /*18*/ EMUX_FX_LFO1_CUTOFF, /* BYTE: lo FMMOD */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) /* LFO2 (vibrato) parameters */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) /*19*/ EMUX_FX_LFO2_DELAY, /* WORD: LFO2VAL */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) /*20*/ EMUX_FX_LFO2_FREQ, /* BYTE: lo FM2FRQ2 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) /*21*/ EMUX_FX_LFO2_PITCH, /* BYTE: up FM2FRQ2 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) /* Other overall effect parameters */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) /*22*/ EMUX_FX_INIT_PITCH, /* SHORT: pitch offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) /*23*/ EMUX_FX_CHORUS, /* BYTE: chorus effects send (0-255) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) /*24*/ EMUX_FX_REVERB, /* BYTE: reverb effects send (0-255) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) /*25*/ EMUX_FX_CUTOFF, /* BYTE: up IFATN */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) /*26*/ EMUX_FX_FILTERQ, /* BYTE: up CCCA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) /* Sample / loop offset changes */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) /*27*/ EMUX_FX_SAMPLE_START, /* SHORT: offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) /*28*/ EMUX_FX_LOOP_START, /* SHORT: offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) /*29*/ EMUX_FX_LOOP_END, /* SHORT: offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) /*30*/ EMUX_FX_COARSE_SAMPLE_START, /* SHORT: upper word offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) /*31*/ EMUX_FX_COARSE_LOOP_START, /* SHORT: upper word offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) /*32*/ EMUX_FX_COARSE_LOOP_END, /* SHORT: upper word offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) /*33*/ EMUX_FX_ATTEN, /* BYTE: lo IFATN */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) EMUX_FX_END,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) /* number of effects */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) #define EMUX_NUM_EFFECTS EMUX_FX_END
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) /* effect flag values */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) #define EMUX_FX_FLAG_OFF 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) #define EMUX_FX_FLAG_SET 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) #define EMUX_FX_FLAG_ADD 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) #endif /* __SOUND_EMUX_LEGACY_H */