linux/include/uapi/sound/hdspm.h

/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
#ifndef __SOUND_HDSPM_H
#define __SOUND_HDSPM_H
/*
 *   Copyright (C) 2003 Winfried Ritsch (IEM)
 *   based on hdsp.h from Thomas Charbonnel ([email protected])
 */

#ifdef __linux__
#include <linux/types.h>
#endif

/* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */
#define HDSPM_MAX_CHANNELS

enum hdspm_io_type {};

enum hdspm_speed {};

/* -------------------- IOCTL Peak/RMS Meters -------------------- */

struct hdspm_peak_rms {};

#define SNDRV_HDSPM_IOCTL_GET_PEAK_RMS

/* ------------ CONFIG block IOCTL ---------------------- */

struct hdspm_config {};

#define SNDRV_HDSPM_IOCTL_GET_CONFIG

/*
 * If there's a TCO (TimeCode Option) board installed,
 * there are further options and status data available.
 * The hdspm_ltc structure contains the current SMPTE
 * timecode and some status information and can be
 * obtained via SNDRV_HDSPM_IOCTL_GET_LTC or in the
 * hdspm_status struct.
 */

enum hdspm_ltc_format {};

enum hdspm_ltc_frame {};

enum hdspm_ltc_input_format {};

struct hdspm_ltc {};

#define SNDRV_HDSPM_IOCTL_GET_LTC

/*
 * The status data reflects the device's current state
 * as determined by the card's configuration and
 * connection status.
 */

enum hdspm_sync {};

enum hdspm_madi_input {};

enum hdspm_madi_channel_format {};

enum hdspm_madi_frame_format {};

enum hdspm_syncsource {};

struct hdspm_status {};

#define SNDRV_HDSPM_IOCTL_GET_STATUS

/*
 * Get information about the card and its add-ons.
 */

#define HDSPM_ADDON_TCO

struct hdspm_version {};

#define SNDRV_HDSPM_IOCTL_GET_VERSION

/* ------------- get Matrix Mixer IOCTL --------------- */

/* MADI mixer: 64inputs+64playback in 64outputs = 8192 => *4Byte =
 * 32768 Bytes
 */

/* organisation is 64 channelfader in a continuous memory block */
/* equivalent to hardware definition, maybe for future feature of mmap of
 * them
 */
/* each of 64 outputs has 64 infader and 64 outfader:
   Ins to Outs mixer[out].in[in], Outstreams to Outs mixer[out].pb[pb] */

#define HDSPM_MIXER_CHANNELS

struct hdspm_channelfader {};

struct hdspm_mixer {};

struct hdspm_mixer_ioctl {};

/* use indirect access due to the limit of ioctl bit size */
#define SNDRV_HDSPM_IOCTL_GET_MIXER

#endif