Ein Recalbox-Theme erstellen

45 Seiten · 8 Abschnitte
FRENESDE Alles anzeigen Mein Theme erstellen

Mehrere Bedingungen kombinieren

UND, ODER, „nicht das“, und die Gruppen in Klammern.

Ein Etikett pro Bedingung

Du wählst eine Bedingung aus der Liste, sie wird zu einem Etikett. Der kleine Button davor sagt, in welche Richtung sie zählt:

Auf einem bereits gesetzten Etikett kehrt derselbe Button die Richtung um; das ✕ entfernt es.

Die Gruppen

Eine Gruppe ist eine Klammer. Darin sagst du, ob alle Bedingungen nötig sind, oder mindestens eine. Zwischen zwei Gruppen stellt sich dieselbe Frage: UND oder ODER.

Drei Schreibweisen für dieselben Operatoren

Was man sagen willZeichenAusgeschrieben
und&AND
oder|OR
nicht!NOT

Die beiden Schreibweisen mischen sich, und Groß- und Kleinschreibung spielt keine Rolle: if="crt AND !tate" entspricht if="crt & !tate".

⚠️ && und || funktionieren nicht. Zwei Zeichen hintereinander sind ein Syntaxfehler, und ein fehlerhafter Ausdruck ist falsch: die Komponente verschwindet, ohne dass irgendetwas auf dem Bildschirm darauf hinweist.

Beispiel: „auf einem Röhrenbildschirm, und in Arcade oder in den Favoriten“ schreibt man

crt & (arcade | favorite)

⚠️ Die Reihenfolge der Gruppen zählt

Die Maschine liest von links nach rechts, ohne Vorrang. a | b & c ist dort (a | b) & c, und nicht a | (b & c). Deshalb setzt das Studio systematisch die Klammern: was du liest, ist genau das, was die Maschine verstehen wird.

Innerhalb einer Gruppe dagegen spielt die Reihenfolge keine Rolle: „nicht Full HD und Arcade“ sagt dasselbe wie „Arcade und nicht Full HD“.

Eine Bedingung wird an zwei Stellen geschrieben

Dieselbe Bedingung, an der Komponente selbst oder an nur einer ihrer Eigenschaften, sagt nicht dasselbe:

<image name="filtre" if="crt">…</image>      <!-- ① die Komponente existiert NUR auf einem CRT -->

<text name="titre">                          <!-- ② die Komponente existiert immer… -->
  <fontSize if="crt">0.09</fontSize>         <!--    …aber ihre Größe ändert sich auf einem CRT -->
  <fontSize if="!crt">0.05</fontSize>
</text>

① an der Komponente: sie erscheint, oder sie existiert gar nicht. ② an einer Eigenschaft: die Komponente ist immer da, nur einer ihrer Werte ändert sich.

Im Studio ist es in beiden Fällen derselbe Button und dasselbe Fenster — was du hier baust, gilt dort identisch.