linux/include/uapi/sound/asound_fm.h

/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
#ifndef __SOUND_ASOUND_FM_H
#define __SOUND_ASOUND_FM_H

/*
 *  Advanced Linux Sound Architecture - ALSA
 *
 *  Interface file between ALSA driver & user space
 *  Copyright (c) 1994-98 by Jaroslav Kysela <[email protected]>,
 *                           4Front Technologies
 *
 *  Direct FM control
 */

#define SNDRV_DM_FM_MODE_OPL2
#define SNDRV_DM_FM_MODE_OPL3

struct snd_dm_fm_info {};

/*
 *  Data structure composing an FM "note" or sound event.
 */

struct snd_dm_fm_voice {};

/*
 *  This describes an FM note by its voice, octave, frequency number (10bit)
 *  and key on/off.
 */

struct snd_dm_fm_note {};

/*
 *  FM parameters that apply globally to all voices, and thus are not "notes"
 */

struct snd_dm_fm_params {};

/*
 *  FM mode ioctl settings
 */

#define SNDRV_DM_FM_IOCTL_INFO
#define SNDRV_DM_FM_IOCTL_RESET
#define SNDRV_DM_FM_IOCTL_PLAY_NOTE
#define SNDRV_DM_FM_IOCTL_SET_VOICE
#define SNDRV_DM_FM_IOCTL_SET_PARAMS
#define SNDRV_DM_FM_IOCTL_SET_MODE
/* for OPL3 only */
#define SNDRV_DM_FM_IOCTL_SET_CONNECTION
/* SBI patch management */
#define SNDRV_DM_FM_IOCTL_CLEAR_PATCHES

#define SNDRV_DM_FM_OSS_IOCTL_RESET
#define SNDRV_DM_FM_OSS_IOCTL_PLAY_NOTE
#define SNDRV_DM_FM_OSS_IOCTL_SET_VOICE
#define SNDRV_DM_FM_OSS_IOCTL_SET_PARAMS
#define SNDRV_DM_FM_OSS_IOCTL_SET_MODE
#define SNDRV_DM_FM_OSS_IOCTL_SET_OPL

/*
 * Patch Record - fixed size for write
 */

#define FM_KEY_SBI
#define FM_KEY_2OP
#define FM_KEY_4OP

struct sbi_patch {};

#endif /* __SOUND_ASOUND_FM_H */