forked from bitwig/bitwig-extensions
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMiniLab3ExtensionDefinition.java
More file actions
61 lines (50 loc) · 2.1 KB
/
Copy pathMiniLab3ExtensionDefinition.java
File metadata and controls
61 lines (50 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.bitwig.extensions.controllers.arturia.minilab3;
import java.util.UUID;
import com.bitwig.extension.api.PlatformType;
import com.bitwig.extension.controller.AutoDetectionMidiPortNamesList;
import com.bitwig.extension.controller.api.ControllerHost;
public class MiniLab3ExtensionDefinition extends MiniLabExtensionDefinition {
private static final UUID DRIVER_ID = UUID.fromString("6d0d76fc-b9b0-11ec-8422-0242ac120002");
private static final String PORT_NAME_MIDI = "Minilab3 MIDI";
private static final String PORT_NAME = "Minilab3";
private static final String PORT_NAME_LINUX = "Minilab3 Minilab3 MIDI";
public MiniLab3ExtensionDefinition() {
super();
}
@Override
public String getName() {
return "MiniLab 3";
}
@Override
public UUID getId() {
return DRIVER_ID;
}
@Override
public String getHardwareModel() {
return "MiniLab 3";
}
@Override
public void listAutoDetectionMidiPortNames(final AutoDetectionMidiPortNamesList list,
final PlatformType platformType) {
if (platformType == PlatformType.WINDOWS) {
list.add(new String[] {PORT_NAME}, new String[] {PORT_NAME});
for (int i = 1; i < 5; i++) {
appendWinPrefix(list, i);
}
} else if (platformType == PlatformType.MAC) {
list.add(new String[] {PORT_NAME_MIDI}, new String[] {PORT_NAME_MIDI});
} else if (platformType == PlatformType.LINUX) {
list.add(new String[] {PORT_NAME_LINUX}, new String[] {PORT_NAME_LINUX});
}
}
private void appendWinPrefix(final AutoDetectionMidiPortNamesList list, final int index) {
final String prefix = index > 1 ? "%d- ".formatted(index) : "";
list.add(
new String[] {"%s%s MIDI".formatted(prefix, PORT_NAME)},
new String[] {"%s%s MIDI".formatted(prefix, PORT_NAME)});
}
@Override
public MiniLab3Extension createInstance(final ControllerHost host) {
return new MiniLab3Extension(this, host, MinilabModel.MINILAB_3);
}
}