Hoppa till innehåll

Plugin-exporter

Vi använder olika funktioner för att kommunicera med backend-API:et som rapporterar enhetsinformation och körtidsinkopplingspunkter — till exempel visningsnamn, canvasstorlekar, produkt- och tillverkaridentifierare att söka efter och vad renderingsloopen är.

Dessa funktioner exporterar enhetsnamnet och utgivaren som visas i SignalRGB.

export function Name() { return "Enhetens produktnamn som sträng"; };
export function Publisher() { return "Du som sträng!"; };

Dessa funktioner används för att söka efter enheten i systemet. Båda kodas som hex-värden i formatet “0x”. De måste matcha exakt med dina enhetsidentifierare. Om ditt plugin inte visas i SignalRGB beror det troligen på en mismatch i tillverkar- eller produktidentifierare. Det minimikrav som krävs för att SignalRGB ska känna igen en enhet är matchande tillverkar- och produktidentifierare.

export function VendorId() { return 0xABCD;}; // Enhetens USB-tillverkaridentifierare (som hex)
export function ProductId() { return 0xABCD;}; // Enhetens USB-produktidentifierare (som hex)

Det här ställer in basstorlek för enhetsrutan på canvasen — före eventuell skalning — som en 2D-array med enbart heltal. Du kan inte hämta färger utanför dessa gränser i ditt plugin, så storleken måste ställas in för att rymma bredden och höjden på enhetens LED:ar när de konverteras till ett rutnät.

export function Size() { return [X,Y]; };

Dessa funktioner ställer in enhetens standardposition före eventuell användaranpassning. DefaultPosition returnerar 2D-koordinater för övre vänstra hörnet. DefaultScale returnerar skalningsfaktorn på en skala från 1.0–30.0.

export function DefaultPosition(){return [X,Y]};
export function DefaultScale(){return 8.0};

Den här funktionen returnerar en 2D-array med alla LED-namn på enheten. Dessa bör följa de stödda tangentnamnen för att stödja tangenttryckseffekter och LED-målningsfunktioner.

var vLedNames = [
"Scroll Wheel",
"Side Led 1","Side Led 2","Side Led 3","Side Led 4", "Side Led 5","logo", "Right Side Led",
"Dpi 1","dpi 2","Dpi 3",
"Battery indicator"
];
export function LedNames(){return vLedNames;};

Den här funktionen returnerar en matris med enskilda LED-positioner i enhetens pixelbuffert. Alla positioner måste ligga inom de gränser som definieras av enhetens Size()-export.

var vLedPositions = [
[3,0],
[0,1],[0,2],[0,3],[0,4],[0,5],[3,5],[5,5],
[0,2],[0,1],[0,0],
[3,1]
];
export function LedPositions(){return vLedPositions;};

Den här funktionen innehåller alla inställningar för enhetens plugin. Inställningarna lagras som JS/JSON-objekt som returneras av funktionen i en array. Mer information finns på sidan Användarkontroller.

export function ControllableParameters(){
return [
{INSTÄLLNING},
{INSTÄLLNING}
];
}

Den här funktionen ansvarar för att avgöra vilka USB-slutpunkter SignalRGB vill öppna och använda för enheten. Varje slutpunkt har fyra filterparametrar som motsvarar värdena för varje USB-slutpunkt på enheten. Flera slutpunkter kan “öppnas” per enhet men bara en används åt gången. Se device.set_endpoint() för att byta aktiv slutpunkt.

Obs: Kommandon behöver vanligtvis skickas till en specifik slutpunkt. Kommandon som skickas till en slutpunkt konfigurerad att ta emot ett specifikt rapport-ID eller längd returnerar ett fel om dessa värden inte matchar.

Obs: Alla enheter kanske inte använder konsekventa slutpunkter beroende på var och när de tillverkades. Att validera flera slutpunkter gör det möjligt att automatiskt falla tillbaka på en reserv vid behov.

Tillgängliga parametrar
interface
usage
usage_page
collection
export function Validate(endpoint)
{
return (endpoint.interface === 2 && endpoint.collection === 0x0003) ||
endpoint.interface === 1;
}

Den här funktionen ställer in vilken typ av USB-protokoll som ska användas. De flesta enheter använder HID-protokoll, men vissa enheter som AIO:er använder i stället råa USB-kontrollfunktioner.

Obs: När den här funktionen inte kan användas av SignalRGB är standardvärdet HID-protokollet.

ProtokollSträngvärde
HID”HID”
Lib/rå USB”RAWUSB"
export function Type() { return "Hid"; }

Den här funktionen exporterar en lista med motstridiga exe-namn. SignalRGB startar inte plugin-filen medan något av dessa körs. Plugin-filen startas när den motstridiga processen stängs eller när felmeddelandet kringgås av användaren.

Obs: Dessa namn måste matcha exakt med det körande exe-namnet.

export function ConflictingProcesses() {
return ["NGenuity2.exe"];
}

Den här funktionen returnerar bildens URL-sträng för enheten. Standardstorleken för plugin-bilder är 1024×1024 pixlar med ett aktivt område på 920×920.

export function ImageUrl(){ return "bild-URL-sträng";}