Skip to content

Commit cc1d811

Browse files
committed
Removed the device-specific stuff from the shared file, and allowed the device-specific files to choose
1 parent 6828f63 commit cc1d811

File tree

4 files changed

+41
-86
lines changed

4 files changed

+41
-86
lines changed

devices/mini.go

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -58,27 +58,17 @@ func init() {
5858
miniButtonWidth = 80
5959
miniButtonHeight = 80
6060
miniImageReportPayloadLength = 1024
61-
// Get reset packet from device name
62-
reset, err := resetPacket(miniName)
63-
if err != nil {
64-
panic(err)
65-
}
66-
// Get brightness packet from device name
67-
brightness, err := brightnessPacket(miniName)
68-
if err != nil {
69-
panic(err)
70-
}
7161
streamdeck.RegisterDevicetype(
7262
miniName, // Name
7363
image.Point{X: int(miniButtonWidth), Y: int(miniButtonHeight)}, // Width/height of a button
74-
0x63, // USB productID
75-
reset, // Reset packet
76-
6, // Number of buttons
77-
2, // Number of rows
78-
3, // Number of cols
79-
brightness, // Reset packet
80-
1, // Button read offset
81-
"BMP", // Image format
64+
0x63, // USB productID
65+
resetPacket17(), // Reset packet
66+
6, // Number of buttons
67+
2, // Number of rows
68+
3, // Number of cols
69+
brightnessPacket17(), // Brightness packet
70+
1, // Button read offset
71+
"BMP", // Image format
8272
miniImageReportPayloadLength, // Amount of image payload allowed per USB packet
8373
GetImageHeaderMini, // Function to get the comms image header
8474
)

devices/origv2.go

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,25 +42,15 @@ func init() {
4242
ov2ButtonWidth = 72
4343
ov2ButtonHeight = 72
4444
ov2ImageReportPayloadLength = 1024
45-
// Get reset packet based on device
46-
reset, err := resetPacket(ov2Name)
47-
if err != nil {
48-
panic(err)
49-
}
50-
// Get brightness packet based on device
51-
brightness, err := brightnessPacket(ov2Name)
52-
if err != nil {
53-
panic(err)
54-
}
5545
streamdeck.RegisterDevicetype(
5646
ov2Name, // Name
5747
image.Point{X: int(ov2ButtonWidth), Y: int(ov2ButtonHeight)}, // Width/height of a button
5848
0x6d, // USB productID
59-
reset, // Reset packet
49+
resetPacket32(), // Reset packet
6050
15, // Number of buttons
6151
3, // Number of rows
6252
5, // Number of columns
63-
brightness, // Set brightness packet preamble
53+
brightnessPacket32(), // Set brightness packet preamble
6454
4, // Button read offset
6555
"JPEG", // Image format
6656
ov2ImageReportPayloadLength, // Amount of image payload allowed per USB packet

devices/shared.go

Lines changed: 29 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,36 @@
11
package devices
22

3-
import "errors"
4-
5-
func resetPacket(device string) ([]byte, error) {
6-
var size int
7-
var header []byte
8-
9-
switch device {
10-
case "Streamdeck XL", "Streamdeck (original v2)":
11-
size = 32
12-
header = []byte{0x03, 0x02}
13-
case "Streamdeck Mini":
14-
size = 17
15-
header = []byte{0x0b, 0x63}
16-
default:
17-
return nil, errors.New("Device not supported!")
18-
}
19-
20-
b := make([]byte, size)
21-
b[0] = header[0]
22-
b[1] = header[1]
23-
return b, nil
3+
// resetPacket17 gives the reset packet for devices which need it to be 17 bytes long
4+
func resetPacket17() []byte {
5+
pkt := make([]byte, 17)
6+
pkt[0] = 0x0b
7+
pkt[1] = 0x63
8+
return pkt
249
}
2510

26-
func brightnessPacket(device string) ([]byte, error) {
27-
var size int
28-
var header []byte
29-
30-
switch device {
31-
case "Streamdeck XL", "Streamdeck (original v2)":
32-
size = 32
33-
header = []byte{0x03, 0x08}
34-
case "Streamdeck Mini":
35-
size = 17
36-
header = []byte{0x05, 0x55, 0xaa, 0xd1, 0x01}
37-
default:
38-
return nil, errors.New("Device is not supported!")
39-
}
11+
// resetPacket32 gives the reset packet for devices which need it to be 32 bytes long
12+
func resetPacket32() []byte {
13+
pkt := make([]byte, 32)
14+
pkt[0] = 0x03
15+
pkt[1] = 0x02
16+
return pkt
17+
}
4018

41-
b := make([]byte, size)
42-
b[0] = header[0]
43-
b[1] = header[1]
44-
if device == "Streamdeck Mini" {
45-
b[2] = header[2]
46-
b[3] = header[3]
47-
b[4] = header[4]
48-
}
49-
return b, nil
19+
// brightnessPacket17 gives the brightness packet for devices which need it to be 17 bytes long
20+
func brightnessPacket17() []byte {
21+
pkt := make([]byte, 17)
22+
pkt[0] = 0x05
23+
pkt[1] = 0x55
24+
pkt[2] = 0xaa
25+
pkt[3] = 0xd1
26+
pkt[4] = 0x01
27+
return pkt
5028
}
5129

30+
// brightnessPacket32 gives the brightness packet for devices which need it to be 32 bytes long
31+
func brightnessPacket32() []byte {
32+
pkt := make([]byte, 32)
33+
pkt[0] = 0x03
34+
pkt[1] = 0x08
35+
return pkt
36+
}

devices/xl.go

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,25 +42,15 @@ func init() {
4242
xlButtonWidth = 96
4343
xlButtonHeight = 96
4444
xlImageReportPayloadLength = 1024
45-
// Get reset packet from device name
46-
reset, err := resetPacket(xlName)
47-
if err != nil {
48-
panic(err)
49-
}
50-
// Get brightness packet from device name
51-
brightness, err := brightnessPacket(xlName)
52-
if err != nil {
53-
panic(err)
54-
}
5545
streamdeck.RegisterDevicetype(
5646
xlName, // Name
5747
image.Point{X: int(xlButtonWidth), Y: int(xlButtonHeight)}, // Width/height of a button
5848
0x6c, // USB productID
59-
reset, // Reset packet
49+
resetPacket32(), // Reset packet
6050
32, // Number of buttons
6151
4, // Number of rows
6252
8, // Number of cols
63-
brightness, // Set brightness packet preamble
53+
brightnessPacket32(), // Set brightness packet preamble
6454
4, // Button read offset
6555
"JPEG", // Image format
6656
xlImageReportPayloadLength, // Amount of image payload allowed per USB packet

0 commit comments

Comments
 (0)