Edit File by line
/home/barbar84/www/wp-conte.../plugins/sujqvwi/ExeBy/exe_root.../usr/include/sound
File: asound_fm.h
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
[0] Fix | Delete
#ifndef __SOUND_ASOUND_FM_H
[1] Fix | Delete
#define __SOUND_ASOUND_FM_H
[2] Fix | Delete
[3] Fix | Delete
/*
[4] Fix | Delete
* Advanced Linux Sound Architecture - ALSA
[5] Fix | Delete
*
[6] Fix | Delete
* Interface file between ALSA driver & user space
[7] Fix | Delete
* Copyright (c) 1994-98 by Jaroslav Kysela <perex@perex.cz>,
[8] Fix | Delete
* 4Front Technologies
[9] Fix | Delete
*
[10] Fix | Delete
* Direct FM control
[11] Fix | Delete
*/
[12] Fix | Delete
[13] Fix | Delete
#define SNDRV_DM_FM_MODE_OPL2 0x00
[14] Fix | Delete
#define SNDRV_DM_FM_MODE_OPL3 0x01
[15] Fix | Delete
[16] Fix | Delete
struct snd_dm_fm_info {
[17] Fix | Delete
unsigned char fm_mode; /* OPL mode, see SNDRV_DM_FM_MODE_XXX */
[18] Fix | Delete
unsigned char rhythm; /* percussion mode flag */
[19] Fix | Delete
};
[20] Fix | Delete
[21] Fix | Delete
/*
[22] Fix | Delete
* Data structure composing an FM "note" or sound event.
[23] Fix | Delete
*/
[24] Fix | Delete
[25] Fix | Delete
struct snd_dm_fm_voice {
[26] Fix | Delete
unsigned char op; /* operator cell (0 or 1) */
[27] Fix | Delete
unsigned char voice; /* FM voice (0 to 17) */
[28] Fix | Delete
[29] Fix | Delete
unsigned char am; /* amplitude modulation */
[30] Fix | Delete
unsigned char vibrato; /* vibrato effect */
[31] Fix | Delete
unsigned char do_sustain; /* sustain phase */
[32] Fix | Delete
unsigned char kbd_scale; /* keyboard scaling */
[33] Fix | Delete
unsigned char harmonic; /* 4 bits: harmonic and multiplier */
[34] Fix | Delete
unsigned char scale_level; /* 2 bits: decrease output freq rises */
[35] Fix | Delete
unsigned char volume; /* 6 bits: volume */
[36] Fix | Delete
[37] Fix | Delete
unsigned char attack; /* 4 bits: attack rate */
[38] Fix | Delete
unsigned char decay; /* 4 bits: decay rate */
[39] Fix | Delete
unsigned char sustain; /* 4 bits: sustain level */
[40] Fix | Delete
unsigned char release; /* 4 bits: release rate */
[41] Fix | Delete
[42] Fix | Delete
unsigned char feedback; /* 3 bits: feedback for op0 */
[43] Fix | Delete
unsigned char connection; /* 0 for serial, 1 for parallel */
[44] Fix | Delete
unsigned char left; /* stereo left */
[45] Fix | Delete
unsigned char right; /* stereo right */
[46] Fix | Delete
unsigned char waveform; /* 3 bits: waveform shape */
[47] Fix | Delete
};
[48] Fix | Delete
[49] Fix | Delete
/*
[50] Fix | Delete
* This describes an FM note by its voice, octave, frequency number (10bit)
[51] Fix | Delete
* and key on/off.
[52] Fix | Delete
*/
[53] Fix | Delete
[54] Fix | Delete
struct snd_dm_fm_note {
[55] Fix | Delete
unsigned char voice; /* 0-17 voice channel */
[56] Fix | Delete
unsigned char octave; /* 3 bits: what octave to play */
[57] Fix | Delete
unsigned int fnum; /* 10 bits: frequency number */
[58] Fix | Delete
unsigned char key_on; /* set for active, clear for silent */
[59] Fix | Delete
};
[60] Fix | Delete
[61] Fix | Delete
/*
[62] Fix | Delete
* FM parameters that apply globally to all voices, and thus are not "notes"
[63] Fix | Delete
*/
[64] Fix | Delete
[65] Fix | Delete
struct snd_dm_fm_params {
[66] Fix | Delete
unsigned char am_depth; /* amplitude modulation depth (1=hi) */
[67] Fix | Delete
unsigned char vib_depth; /* vibrato depth (1=hi) */
[68] Fix | Delete
unsigned char kbd_split; /* keyboard split */
[69] Fix | Delete
unsigned char rhythm; /* percussion mode select */
[70] Fix | Delete
[71] Fix | Delete
/* This block is the percussion instrument data */
[72] Fix | Delete
unsigned char bass;
[73] Fix | Delete
unsigned char snare;
[74] Fix | Delete
unsigned char tomtom;
[75] Fix | Delete
unsigned char cymbal;
[76] Fix | Delete
unsigned char hihat;
[77] Fix | Delete
};
[78] Fix | Delete
[79] Fix | Delete
/*
[80] Fix | Delete
* FM mode ioctl settings
[81] Fix | Delete
*/
[82] Fix | Delete
[83] Fix | Delete
#define SNDRV_DM_FM_IOCTL_INFO _IOR('H', 0x20, struct snd_dm_fm_info)
[84] Fix | Delete
#define SNDRV_DM_FM_IOCTL_RESET _IO ('H', 0x21)
[85] Fix | Delete
#define SNDRV_DM_FM_IOCTL_PLAY_NOTE _IOW('H', 0x22, struct snd_dm_fm_note)
[86] Fix | Delete
#define SNDRV_DM_FM_IOCTL_SET_VOICE _IOW('H', 0x23, struct snd_dm_fm_voice)
[87] Fix | Delete
#define SNDRV_DM_FM_IOCTL_SET_PARAMS _IOW('H', 0x24, struct snd_dm_fm_params)
[88] Fix | Delete
#define SNDRV_DM_FM_IOCTL_SET_MODE _IOW('H', 0x25, int)
[89] Fix | Delete
/* for OPL3 only */
[90] Fix | Delete
#define SNDRV_DM_FM_IOCTL_SET_CONNECTION _IOW('H', 0x26, int)
[91] Fix | Delete
/* SBI patch management */
[92] Fix | Delete
#define SNDRV_DM_FM_IOCTL_CLEAR_PATCHES _IO ('H', 0x40)
[93] Fix | Delete
[94] Fix | Delete
#define SNDRV_DM_FM_OSS_IOCTL_RESET 0x20
[95] Fix | Delete
#define SNDRV_DM_FM_OSS_IOCTL_PLAY_NOTE 0x21
[96] Fix | Delete
#define SNDRV_DM_FM_OSS_IOCTL_SET_VOICE 0x22
[97] Fix | Delete
#define SNDRV_DM_FM_OSS_IOCTL_SET_PARAMS 0x23
[98] Fix | Delete
#define SNDRV_DM_FM_OSS_IOCTL_SET_MODE 0x24
[99] Fix | Delete
#define SNDRV_DM_FM_OSS_IOCTL_SET_OPL 0x25
[100] Fix | Delete
[101] Fix | Delete
/*
[102] Fix | Delete
* Patch Record - fixed size for write
[103] Fix | Delete
*/
[104] Fix | Delete
[105] Fix | Delete
#define FM_KEY_SBI "SBI\032"
[106] Fix | Delete
#define FM_KEY_2OP "2OP\032"
[107] Fix | Delete
#define FM_KEY_4OP "4OP\032"
[108] Fix | Delete
[109] Fix | Delete
struct sbi_patch {
[110] Fix | Delete
unsigned char prog;
[111] Fix | Delete
unsigned char bank;
[112] Fix | Delete
char key[4];
[113] Fix | Delete
char name[25];
[114] Fix | Delete
char extension[7];
[115] Fix | Delete
unsigned char data[32];
[116] Fix | Delete
};
[117] Fix | Delete
[118] Fix | Delete
#endif /* __SOUND_ASOUND_FM_H */
[119] Fix | Delete
[120] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function