Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 #ifndef __SOUND_EMUX_LEGACY_H
0003 #define __SOUND_EMUX_LEGACY_H
0004 
0005 /*
0006  *  Copyright (c) 1999-2000 Takashi Iwai <tiwai@suse.de>
0007  *
0008  *  Definitions of OSS compatible headers for Emu8000 device informations
0009  */
0010 
0011 #include <sound/seq_oss_legacy.h>
0012 
0013 /*
0014  * awe hardware controls
0015  */
0016 
0017 #define _EMUX_OSS_DEBUG_MODE        0x00
0018 #define _EMUX_OSS_REVERB_MODE       0x01
0019 #define _EMUX_OSS_CHORUS_MODE       0x02
0020 #define _EMUX_OSS_REMOVE_LAST_SAMPLES   0x03
0021 #define _EMUX_OSS_INITIALIZE_CHIP   0x04
0022 #define _EMUX_OSS_SEND_EFFECT       0x05
0023 #define _EMUX_OSS_TERMINATE_CHANNEL 0x06
0024 #define _EMUX_OSS_TERMINATE_ALL     0x07
0025 #define _EMUX_OSS_INITIAL_VOLUME    0x08
0026 #define _EMUX_OSS_INITIAL_ATTEN _EMUX_OSS_INITIAL_VOLUME
0027 #define _EMUX_OSS_RESET_CHANNEL     0x09
0028 #define _EMUX_OSS_CHANNEL_MODE      0x0a
0029 #define _EMUX_OSS_DRUM_CHANNELS     0x0b
0030 #define _EMUX_OSS_MISC_MODE     0x0c
0031 #define _EMUX_OSS_RELEASE_ALL       0x0d
0032 #define _EMUX_OSS_NOTEOFF_ALL       0x0e
0033 #define _EMUX_OSS_CHN_PRESSURE      0x0f
0034 #define _EMUX_OSS_EQUALIZER     0x11
0035 
0036 #define _EMUX_OSS_MODE_FLAG     0x80
0037 #define _EMUX_OSS_COOKED_FLAG       0x40    /* not supported */
0038 #define _EMUX_OSS_MODE_VALUE_MASK   0x3F
0039 
0040 
0041 /*
0042  * mode type definitions
0043  */
0044 enum {
0045 /* 0*/  EMUX_MD_EXCLUSIVE_OFF,  /* obsolete */
0046 /* 1*/  EMUX_MD_EXCLUSIVE_ON,   /* obsolete */
0047 /* 2*/  EMUX_MD_VERSION,        /* read only */
0048 /* 3*/  EMUX_MD_EXCLUSIVE_SOUND,    /* 0/1: exclusive note on (default=1) */
0049 /* 4*/  EMUX_MD_REALTIME_PAN,   /* 0/1: do realtime pan change (default=1) */
0050 /* 5*/  EMUX_MD_GUS_BANK,   /* bank number for GUS patches (default=0) */
0051 /* 6*/  EMUX_MD_KEEP_EFFECT,    /* 0/1: keep effect values, (default=0) */
0052 /* 7*/  EMUX_MD_ZERO_ATTEN, /* attenuation of max volume (default=32) */
0053 /* 8*/  EMUX_MD_CHN_PRIOR,  /* 0/1: set MIDI channel priority mode (default=1) */
0054 /* 9*/  EMUX_MD_MOD_SENSE,  /* integer: modwheel sensitivity (def=18) */
0055 /*10*/  EMUX_MD_DEF_PRESET, /* integer: default preset number (def=0) */
0056 /*11*/  EMUX_MD_DEF_BANK,   /* integer: default bank number (def=0) */
0057 /*12*/  EMUX_MD_DEF_DRUM,   /* integer: default drumset number (def=0) */
0058 /*13*/  EMUX_MD_TOGGLE_DRUM_BANK, /* 0/1: toggle drum flag with bank# (def=0) */
0059 /*14*/  EMUX_MD_NEW_VOLUME_CALC,    /* 0/1: volume calculation mode (def=1) */
0060 /*15*/  EMUX_MD_CHORUS_MODE,    /* integer: chorus mode (def=2) */
0061 /*16*/  EMUX_MD_REVERB_MODE,    /* integer: chorus mode (def=4) */
0062 /*17*/  EMUX_MD_BASS_LEVEL, /* integer: bass level (def=5) */
0063 /*18*/  EMUX_MD_TREBLE_LEVEL,   /* integer: treble level (def=9) */
0064 /*19*/  EMUX_MD_DEBUG_MODE, /* integer: debug level (def=0) */
0065 /*20*/  EMUX_MD_PAN_EXCHANGE,   /* 0/1: exchange panning direction (def=0) */
0066     EMUX_MD_END,
0067 };
0068 
0069 
0070 /*
0071  * effect parameters
0072  */
0073 enum {
0074 
0075 /* modulation envelope parameters */
0076 /* 0*/  EMUX_FX_ENV1_DELAY, /* WORD: ENVVAL */
0077 /* 1*/  EMUX_FX_ENV1_ATTACK,    /* BYTE: up ATKHLD */
0078 /* 2*/  EMUX_FX_ENV1_HOLD,  /* BYTE: lw ATKHLD */
0079 /* 3*/  EMUX_FX_ENV1_DECAY, /* BYTE: lw DCYSUS */
0080 /* 4*/  EMUX_FX_ENV1_RELEASE,   /* BYTE: lw DCYSUS */
0081 /* 5*/  EMUX_FX_ENV1_SUSTAIN,   /* BYTE: up DCYSUS */
0082 /* 6*/  EMUX_FX_ENV1_PITCH, /* BYTE: up PEFE */
0083 /* 7*/  EMUX_FX_ENV1_CUTOFF,    /* BYTE: lw PEFE */
0084 
0085 /* volume envelope parameters */
0086 /* 8*/  EMUX_FX_ENV2_DELAY, /* WORD: ENVVOL */
0087 /* 9*/  EMUX_FX_ENV2_ATTACK,    /* BYTE: up ATKHLDV */
0088 /*10*/  EMUX_FX_ENV2_HOLD,  /* BYTE: lw ATKHLDV */
0089 /*11*/  EMUX_FX_ENV2_DECAY, /* BYTE: lw DCYSUSV */
0090 /*12*/  EMUX_FX_ENV2_RELEASE,   /* BYTE: lw DCYSUSV */
0091 /*13*/  EMUX_FX_ENV2_SUSTAIN,   /* BYTE: up DCYSUSV */
0092     
0093 /* LFO1 (tremolo & vibrato) parameters */
0094 /*14*/  EMUX_FX_LFO1_DELAY, /* WORD: LFO1VAL */
0095 /*15*/  EMUX_FX_LFO1_FREQ,  /* BYTE: lo TREMFRQ */
0096 /*16*/  EMUX_FX_LFO1_VOLUME,    /* BYTE: up TREMFRQ */
0097 /*17*/  EMUX_FX_LFO1_PITCH, /* BYTE: up FMMOD */
0098 /*18*/  EMUX_FX_LFO1_CUTOFF,    /* BYTE: lo FMMOD */
0099 
0100 /* LFO2 (vibrato) parameters */
0101 /*19*/  EMUX_FX_LFO2_DELAY, /* WORD: LFO2VAL */
0102 /*20*/  EMUX_FX_LFO2_FREQ,  /* BYTE: lo FM2FRQ2 */
0103 /*21*/  EMUX_FX_LFO2_PITCH, /* BYTE: up FM2FRQ2 */
0104 
0105 /* Other overall effect parameters */
0106 /*22*/  EMUX_FX_INIT_PITCH, /* SHORT: pitch offset */
0107 /*23*/  EMUX_FX_CHORUS,     /* BYTE: chorus effects send (0-255) */
0108 /*24*/  EMUX_FX_REVERB,     /* BYTE: reverb effects send (0-255) */
0109 /*25*/  EMUX_FX_CUTOFF,     /* BYTE: up IFATN */
0110 /*26*/  EMUX_FX_FILTERQ,        /* BYTE: up CCCA */
0111 
0112 /* Sample / loop offset changes */
0113 /*27*/  EMUX_FX_SAMPLE_START,   /* SHORT: offset */
0114 /*28*/  EMUX_FX_LOOP_START, /* SHORT: offset */
0115 /*29*/  EMUX_FX_LOOP_END,   /* SHORT: offset */
0116 /*30*/  EMUX_FX_COARSE_SAMPLE_START,    /* SHORT: upper word offset */
0117 /*31*/  EMUX_FX_COARSE_LOOP_START,  /* SHORT: upper word offset */
0118 /*32*/  EMUX_FX_COARSE_LOOP_END,        /* SHORT: upper word offset */
0119 /*33*/  EMUX_FX_ATTEN,      /* BYTE: lo IFATN */
0120 
0121     EMUX_FX_END,
0122 };
0123 /* number of effects */
0124 #define EMUX_NUM_EFFECTS  EMUX_FX_END
0125 
0126 /* effect flag values */
0127 #define EMUX_FX_FLAG_OFF    0
0128 #define EMUX_FX_FLAG_SET    1
0129 #define EMUX_FX_FLAG_ADD    2
0130 
0131 
0132 #endif /* __SOUND_EMUX_LEGACY_H */