21 items
NAME ↑ SIZE MODIFIED PERMS ACTIONS
.. / Parent Directory
intel — dir
2026-05-19 19:43 · rwxr-xr-x
2026-05-19 19:43 rwxr-xr-x
sof — dir
2026-06-09 20:11 · rwxr-xr-x
2026-06-09 20:11 rwxr-xr-x
asequencer.h — 23.25 KB
2026-05-19 19:43 · rw-r--r--
23.25 KB 2026-05-19 19:43 rw-r--r--
asoc.h — 19.7 KB
2026-05-19 19:43 · rw-r--r--
19.7 KB 2026-05-19 19:43 rw-r--r--
asound.h — 54.01 KB
2026-05-19 19:43 · rw-r--r--
54.01 KB 2026-05-19 19:43 rw-r--r--
asound_fm.h — 3.55 KB
2026-05-19 19:43 · rw-r--r--
3.55 KB 2026-05-19 19:43 rw-r--r--
compress_offload.h — 7.79 KB
2026-05-19 19:43 · rw-r--r--
7.79 KB 2026-05-19 19:43 rw-r--r--
compress_params.h — 16.69 KB
2026-05-19 19:43 · rw-r--r--
16.69 KB 2026-05-19 19:43 rw-r--r--
emu10k1.h — 18.45 KB
2026-05-19 19:43 · rw-r--r--
18.45 KB 2026-05-19 19:43 rw-r--r--
fcp.h — 3.65 KB
2026-05-19 19:43 · rw-r--r--
3.65 KB 2026-05-19 19:43 rw-r--r--
firewire.h — 10.76 KB
2026-05-19 19:43 · rw-r--r--
10.76 KB 2026-05-19 19:43 rw-r--r--
hdsp.h — 2.03 KB
2026-05-19 19:43 · rw-r--r--
2.03 KB 2026-05-19 19:43 rw-r--r--
hdspm.h — 4.38 KB
2026-05-19 19:43 · rw-r--r--
4.38 KB 2026-05-19 19:43 rw-r--r--
sb16_csp.h — 3.48 KB
2026-05-19 19:43 · rw-r--r--
3.48 KB 2026-05-19 19:43 rw-r--r--
scarlett2.h — 1.58 KB
2026-05-19 19:43 · rw-r--r--
1.58 KB 2026-05-19 19:43 rw-r--r--
sfnt_info.h — 6.6 KB
2026-05-19 19:43 · rw-r--r--
6.6 KB 2026-05-19 19:43 rw-r--r--
skl-tplg-interface.h — 3.72 KB
2026-05-19 19:43 · rw-r--r--
3.72 KB 2026-05-19 19:43 rw-r--r--
snd_ar_tokens.h — 7.48 KB
2026-05-19 19:43 · rw-r--r--
7.48 KB 2026-05-19 19:43 rw-r--r--
snd_sst_tokens.h — 11.48 KB
2026-05-19 19:43 · rw-r--r--
11.48 KB 2026-05-19 19:43 rw-r--r--
tlv.h — 4.05 KB
2026-05-19 19:43 · rw-r--r--
4.05 KB 2026-05-19 19:43 rw-r--r--
usb_stream.h — 1.21 KB
2026-05-19 19:43 · rw-r--r--
1.21 KB 2026-05-19 19:43 rw-r--r--
ONLINE
sound
21 items
11:28:33
TERMINAL FM
Edit
Preview
Download
Rename
Copy
Chmod
Delete
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* * Focusrite Control Protocol Driver for ALSA * * Copyright (c) 2024-2025 by Geoffrey D. Bennett */ /* * DOC: FCP (Focusrite Control Protocol) User-Space API * * This header defines the interface between the FCP kernel driver and * user-space programs to enable the use of the proprietary features * available in Focusrite USB audio interfaces. This includes Scarlett * 2nd Gen, 3rd Gen, 4th Gen, Clarett USB, Clarett+, and Vocaster * series devices. * * The interface is provided via ALSA's hwdep interface. Opening the * hwdep device requires CAP_SYS_RAWIO privileges as this interface * provides near-direct access. * * For details on the FCP protocol, refer to the kernel scarlett2 * driver in sound/usb/mixer_scarlett2.c and the fcp-support project * at https://github.com/geoffreybennett/fcp-support * * For examples of using these IOCTLs, see the fcp-server source in * the fcp-support project. * * IOCTL Interface * -------------- * FCP_IOCTL_PVERSION: * Returns the protocol version supported by the driver. * * FCP_IOCTL_INIT: * Initialises the protocol and synchronises sequence numbers * between the driver and device. Must be called at least once * before sending commands. Can be safely called again at any time. * * FCP_IOCTL_CMD: * Sends an FCP command to the device and returns the response. * Requires prior initialisation via FCP_IOCTL_INIT. * * FCP_IOCTL_SET_METER_MAP: * Configures the Level Meter control's mapping between device * meters and control channels. Requires FCP_IOCTL_INIT to have been * called first. The map size and number of slots cannot be changed * after initial configuration, although the map itself can be * updated. Once configured, the Level Meter remains functional even * after the hwdep device is closed. * * FCP_IOCTL_SET_METER_LABELS: * Set the labels for the Level Meter control. Requires * FCP_IOCTL_SET_METER_MAP to have been called first. labels[] * should contain a sequence of null-terminated labels corresponding * to the control's channels. */ #ifndef __UAPI_SOUND_FCP_H #define __UAPI_SOUND_FCP_H #include #include #define FCP_HWDEP_MAJOR 2 #define FCP_HWDEP_MINOR 0 #define FCP_HWDEP_SUBMINOR 0 #define FCP_HWDEP_VERSION \ ((FCP_HWDEP_MAJOR << 16) | \ (FCP_HWDEP_MINOR << 8) | \ FCP_HWDEP_SUBMINOR) #define FCP_HWDEP_VERSION_MAJOR(v) (((v) >> 16) & 0xFF) #define FCP_HWDEP_VERSION_MINOR(v) (((v) >> 8) & 0xFF) #define FCP_HWDEP_VERSION_SUBMINOR(v) ((v) & 0xFF) /* Get protocol version */ #define FCP_IOCTL_PVERSION _IOR('S', 0x60, int) /* Start the protocol */ /* Step 0 and step 2 responses are variable length and placed in * resp[] one after the other. */ struct fcp_init { __u16 step0_resp_size; __u16 step2_resp_size; __u32 init1_opcode; __u32 init2_opcode; __u8 resp[]; } __attribute__((packed)); #define FCP_IOCTL_INIT _IOWR('S', 0x64, struct fcp_init) /* Perform a command */ /* The request data is placed in data[] and the response data will * overwrite it. */ struct fcp_cmd { __u32 opcode; __u16 req_size; __u16 resp_size; __u8 data[]; } __attribute__((packed)); #define FCP_IOCTL_CMD _IOWR('S', 0x65, struct fcp_cmd) /* Set the meter map */ struct fcp_meter_map { __u16 map_size; __u16 meter_slots; __s16 map[]; } __attribute__((packed)); #define FCP_IOCTL_SET_METER_MAP _IOW('S', 0x66, struct fcp_meter_map) /* Set the meter labels */ struct fcp_meter_labels { __u16 labels_size; char labels[]; } __attribute__((packed)); #define FCP_IOCTL_SET_METER_LABELS _IOW('S', 0x67, struct fcp_meter_labels) #endif /* __UAPI_SOUND_FCP_H */