mirror of
https://github.com/OpenActionAPI/rust-elgato-streamdeck.git
synced 2026-10-28 09:44:56 +00:00
Add support for the MiraBox N3EN device (#42)
This commit is contained in:
1 parent
3a0a301a45
commit
bd495125c9
3 files changed
+33
-6
No files matched your search
@@ -17,6 +17,7 @@ SUBSYSTEM=="usb", ATTR{idVendor}=="0300", ATTR{idProduct}=="1003", MODE="0660",
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="0300", ATTR{idProduct}=="1010", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="0300", ATTR{idProduct}=="1020", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="0300", ATTR{idProduct}=="3002", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="6603", ATTR{idProduct}=="1003", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
@@ -37,6 +38,7 @@ SUBSYSTEM=="usb", ATTRS{idVendor}=="0300", ATTRS{idProduct}=="1003", MODE="0660"
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="0300", ATTRS{idProduct}=="1010", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="0300", ATTRS{idProduct}=="1020", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="0300", ATTRS{idProduct}=="3002", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="6603", ATTRS{idProduct}=="1003", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTR{idVendor}=="0fd9", ATTR{idProduct}=="0060", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTR{idVendor}=="0fd9", ATTR{idProduct}=="0063", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
@@ -57,6 +59,7 @@ KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTR{idVendor}=="0300", ATTR{idProduct}=
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTR{idVendor}=="0300", ATTR{idProduct}=="1010", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTR{idVendor}=="0300", ATTR{idProduct}=="1020", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTR{idVendor}=="0300", ATTR{idProduct}=="3002", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTR{idVendor}=="6603", ATTR{idProduct}=="1003", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
@@ -77,3 +80,4 @@ KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0300", ATTRS{idProduct
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0300", ATTRS{idProduct}=="1010", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0300", ATTRS{idProduct}=="1020", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0300", ATTRS{idProduct}=="3002", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="6603", ATTRS{idProduct}=="1003", MODE="0660", TAG+="uaccess", GROUP="plugdev"
|
||||
@@ -83,3 +83,4 @@ As it stands, this library should support the following devices:
|
||||
- Ajazz AKP03R (thanks to [@4ndv](https://github.com/4ndv))
|
||||
- MiraBox HSV293S (thanks to [@czyz](https://github.com/czyz))
|
||||
- MiraBox DK0108D (thanks to [@ikegam](https://github.com/ikegam))
|
||||
- MiraBox N3EN (thanks to [@JensHeinrich](https://github.com/JensHeinrich))
|
||||
+28
-6
@@ -55,7 +55,13 @@ pub const PID_AJAZZ_AKP03E: u16 = 0x3002;
|
||||
/// Product ID of Ajazz AKP03R
|
||||
pub const PID_AJAZZ_AKP03R: u16 = 0x1003;
|
||||
|
||||
const RECOGNIZED_VENDORS: [u16; 3] = [ELGATO_VENDOR_ID, MIRABOX_VENDOR_ID_1, MIRABOX_VENDOR_ID_2];
|
||||
/// A Mirabox vendor ID
|
||||
pub const MIRABOX_VENDOR_ID_3: u16 = 0x6603;
|
||||
|
||||
/// Product ID of Mirabox N3EN
|
||||
pub const PID_MIRABOX_N3EN: u16 = 0x1003;
|
||||
|
||||
const RECOGNIZED_VENDORS: [u16; 4] = [ELGATO_VENDOR_ID, MIRABOX_VENDOR_ID_1, MIRABOX_VENDOR_ID_2, MIRABOX_VENDOR_ID_3];
|
||||
|
||||
/// Returns true for vendors IDs that are recognized by the library
|
||||
pub fn is_vendor_familiar(vendor: &u16) -> bool {
|
||||
@@ -103,6 +109,8 @@ pub enum Kind {
|
||||
MiraBoxHSV293S,
|
||||
/// MiraBox DK0108D
|
||||
MiraBoxDK0108D,
|
||||
/// MiraBox N3EN
|
||||
MiraBoxN3EN,
|
||||
}
|
||||
|
||||
impl Kind {
|
||||
@@ -140,6 +148,11 @@ impl Kind {
|
||||
_ => None,
|
||||
},
|
||||
|
||||
MIRABOX_VENDOR_ID_3 => match pid {
|
||||
PID_MIRABOX_N3EN => Some(Kind::MiraBoxN3EN),
|
||||
_ => None,
|
||||
},
|
||||
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
@@ -166,6 +179,7 @@ impl Kind {
|
||||
Kind::Akp03R => PID_AJAZZ_AKP03R,
|
||||
Kind::MiraBoxHSV293S => PID_MIRABOX_HSV293S,
|
||||
Kind::MiraBoxDK0108D => PID_MIRABOX_DK0108D,
|
||||
Kind::MiraBoxN3EN => PID_MIRABOX_N3EN,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,6 +205,7 @@ impl Kind {
|
||||
Kind::Akp03R => MIRABOX_VENDOR_ID_2,
|
||||
Kind::MiraBoxHSV293S => MIRABOX_VENDOR_ID_1,
|
||||
Kind::MiraBoxDK0108D => MIRABOX_VENDOR_ID_1,
|
||||
Kind::MiraBoxN3EN => MIRABOX_VENDOR_ID_3,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -204,7 +219,7 @@ impl Kind {
|
||||
Kind::Neo | Kind::Plus => 8,
|
||||
Kind::Akp153 | Kind::Akp153E | Kind::Akp153R | Kind::MiraBoxHSV293S => 15 + 3,
|
||||
Kind::Akp815 => 15,
|
||||
Kind::Akp03 | Kind::Akp03E | Kind::Akp03R => 6 + 3,
|
||||
Kind::Akp03 | Kind::Akp03E | Kind::Akp03R | Kind::MiraBoxN3EN => 6 + 3,
|
||||
Kind::MiraBoxDK0108D => 12,
|
||||
}
|
||||
}
|
||||
@@ -219,7 +234,7 @@ impl Kind {
|
||||
Kind::Neo | Kind::Plus => 2,
|
||||
Kind::Akp153 | Kind::Akp153E | Kind::Akp153R | Kind::MiraBoxHSV293S => 3,
|
||||
Kind::Akp815 => 5,
|
||||
Kind::Akp03 | Kind::Akp03E | Kind::Akp03R => 3,
|
||||
Kind::Akp03 | Kind::Akp03E | Kind::Akp03R | Kind::MiraBoxN3EN => 3,
|
||||
Kind::MiraBoxDK0108D => 3,
|
||||
}
|
||||
}
|
||||
@@ -234,7 +249,7 @@ impl Kind {
|
||||
Kind::Neo | Kind::Plus => 4,
|
||||
Kind::Akp153 | Kind::Akp153E | Kind::Akp153R | Kind::MiraBoxHSV293S => 6,
|
||||
Kind::Akp815 => 3,
|
||||
Kind::Akp03 | Kind::Akp03E | Kind::Akp03R => 3,
|
||||
Kind::Akp03 | Kind::Akp03E | Kind::Akp03R | Kind::MiraBoxN3EN => 3,
|
||||
Kind::MiraBoxDK0108D => 4,
|
||||
}
|
||||
}
|
||||
@@ -243,7 +258,7 @@ impl Kind {
|
||||
pub fn encoder_count(&self) -> u8 {
|
||||
match self {
|
||||
Kind::Plus => 4,
|
||||
Kind::Akp03 | Kind::Akp03E | Kind::Akp03R => 3,
|
||||
Kind::Akp03 | Kind::Akp03E | Kind::Akp03R | Kind::MiraBoxN3EN => 3,
|
||||
_ => 0,
|
||||
}
|
||||
}
|
||||
@@ -339,6 +354,13 @@ impl Kind {
|
||||
mirror: ImageMirroring::None,
|
||||
},
|
||||
|
||||
Kind::MiraBoxN3EN => ImageFormat {
|
||||
mode: ImageMode::JPEG,
|
||||
size: (60, 60),
|
||||
rotation: ImageRotation::Rot90,
|
||||
mirror: ImageMirroring::None,
|
||||
},
|
||||
|
||||
Kind::MiraBoxDK0108D => ImageFormat {
|
||||
mode: ImageMode::JPEG,
|
||||
size: (72, 72),
|
||||
@@ -489,7 +511,7 @@ impl Kind {
|
||||
|
||||
/// Returns true for Mirabox devices with 1024 byte packet length
|
||||
pub fn is_mirabox_v2(&self) -> bool {
|
||||
matches!(self, Kind::Akp03 | Kind::Akp03E | Kind::Akp03R)
|
||||
matches!(self, Kind::Akp03 | Kind::Akp03E | Kind::Akp03R | Kind::MiraBoxN3EN)
|
||||
}
|
||||
|
||||
/// Returns true for Mirabox devices
|
||||
|
||||
Reference in new issue
Block a user