# This udev rule allows Mixxx to access HID and USB Bulk controllers when running as a normal user

# Sources:
# http://www.linux-usb.org/usb.ids
# https://www.the-sz.com/products/usbid/
# https://devicehunt.com/all-usb-vendors

# Note that the udev rule must match on the USB device level; matching the USB interface
# descriptor with bInterfaceClass does not work.

# New IDs must be also added to res/linux/mixxx.metainfo.xml

# Install and execute before 70-uaccess.rules, e.g. .../udev/rules.d/69-mixxx-usb-uaccess.rules

# Allen + Heath Ltd.
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="22f0", TAG+="uaccess"
# Allen + Heath Xone 23C hardware mixer with USB audio interface
# This is required so all 4 input and all 4 output channels of the audio interface are available.
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="22f0", ATTR{idProduct}=="0008", ATTR{bConfigurationValue}="2"
# Arturia
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="1c75", TAG+="uaccess"
# BEHRINGER International GmbH
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="1397", TAG+="uaccess"
# D&M Holdings, Inc. (Denon/Marantz)
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="154e", TAG+="uaccess"
# EKS (Otus)
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="1157", TAG+="uaccess"
# Gemini
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="23c7", TAG+="uaccess"
# Guillemot Corp. (Hercules)
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="06f8", TAG+="uaccess"
# inMusic (Numark, Denon)
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="15e4", TAG+="uaccess"
# KORG, Inc.
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0944", TAG+="uaccess"
# Native Instruments
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="17cc", TAG+="uaccess"
# Nintendo Co., Ltd
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="057e", TAG+="uaccess"
# Pioneer Corp.
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="08e4", TAG+="uaccess"
# AlphaTheta Corp.
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="2b73", TAG+="uaccess"
# Rane
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="13e5", TAG+="uaccess"
# Reloop
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="200c", TAG+="uaccess"
# Roland Corp.
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0582", TAG+="uaccess"
# Sony Corp.
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="054c", TAG+="uaccess"

# Missing:
# - American Musical Supply (AMS/Mixars)

# Only some distribuions require the below
KERNEL=="hiddev*", NAME="usb/%k", GROUP="uaccess"
