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.
”Name” och “Publisher”
Section titled “”Name” och “Publisher””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!"; };”VendorId” och “ProductId”
Section titled “”VendorId” och “ProductId””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)”Size” och positionering
Section titled “”Size” och positionering”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};”Led Names”
Section titled “”Led Names””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;};”Led Positions”
Section titled “”Led Positions””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;};”ControllableParameters”
Section titled “”ControllableParameters””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} ];}”Validate”
Section titled “”Validate””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;
}”Type”
Section titled “”Type””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.
| Protokoll | Strängvärde |
|---|---|
| HID | ”HID” |
| Lib/rå USB | ”RAWUSB" |
export function Type() { return "Hid"; }"ConflictingProcesses”
Section titled “"ConflictingProcesses””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"];}”ImageUrl”
Section titled “”ImageUrl””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";}