Konfigurationssprache

Wenn das xposextool-Programm startet, liest es Konfigurationsanweisungen von der Kommandozeile oder aus  Konfigurationsdateien (Konfigurationsdatei).

Syntax der Anweisungen

Eine Konfiguration besteht aus einer oder mehreren der Anweisungen globalSettings (Globale Anweisungen) recordSettings (Aufnahme) playSettings (Wiedergabe), copySettings (Kopieren) und convertSettings (Konvertierung). Diese Anweisungen enthalten verschachtelte Sub-Anweisungen, Sub-Sub-Anweisungen und Sub-Sub-Sub-Anweisungen. Wenn eine dieser Anweisungen auf einer jeweils höheren Ebene verwendet wird, dann spezifiziert sie eine Voreinstellung für die untergeordneten Parameter.

Worte werden durch beliebige Leerzeichen getrennt. Die Zeilenstruktur ist irrelevant.

Soll ein Wort Leerzeichen enthalten, muß es mit doppelten Anführungszeichen " umgeben werden. Die besondere Bedeutung des Anführungszeichens wird mit einem vorangestellten, rückwärtigen Schrägstrich \ aufgehoben.

Bei Schlüsselworten ist die Groß-/Kleinschreibung nicht signifikant: CopySettings und copysettings bedeuten dasselbe.

Schlüsselworte sind nicht reserviert.

Die meisten Konfigurationsanweisungen bestehen aus dem Namen des zu setzenden Parameters und seinem neuen Wert. Dabei kann der Name mit oder ohne direkt anschließendem Doppelpunkt : geschrieben werden.

Werden gleichnamige Parameter mehrfach angegeben, gilt die letzte Anweisung.

Die einzelnen Konfigurationsanweisungen werden in den folgenden Abschnitten mit Hilfe einer formalen Syntax beschrieben, die die folgenden Elemente enthält:

Schlüsselworte haben besondere Bedeutungen.

variable_Eingaben hängen von der Konfiguration ab.

Alternative_1|Alternative_2: Alternativen werden durch einen vertikalen Strich getrennt.

[optional]: Optionale Parameter werden von eckigen Klammern umgeben.

Parameter...: Wiederholungen (ein- oder mehrmals) werden mit einer Ellipsis gekennzeichnet.

{Element}: Geschweifte Klammern dienen der Gruppierung.

Voreingestellte Konfiguration

Wird das xposextool-Programm ohne Argumente aufgerufen, gilt die voreingestellte Konfiguration. Die folgenden Zeilen zeigen fast alle Konfigurationsanweisungen mit ihren Voreinstellungen:

recordSettings
fromDisplay $DISPLAY
connectTimeout "20 sec"
offlineTimeout "0 ms"
continueWhenOffline off
transmission uncompressed
multimedia record ""
types input output
clients all
pointerMotionResolution 15
timestampResolution 100
showSnapshotPointerImage on
toFile ~/%Y-%m-%d_%H:%M:%S.pose
newFiles never
overwriteProtection on
keepNumberOfFiles 0
insertSnapshot earliestAfter "60 min"
encoding uncompressed
title ""
subTitle ""
description ""
keywords ""
author ""
copyright ""
terminate never

playSettings
fromFile ""
sortFiles off
recordedDisplays all
toDisplay $DISPLAY
connectTimeout "20 sec"
offlineTimeout "0 ms"
displayMode fullscreen
startHidden off
onTop on
suppressScreenSaver off
title ""
serverFonts off
pointerZoom 1
osd off osdX -800 osdY 0
clipX 0 clipY 0 clipWidth 0 clipHeight 0
displayX 0 displayY 0 displayWidth 0 displayHeight 0
types output pointerMovements
startTime begin +00:00:00
stopTime end -00:00:00
ignoreEOF on
playMode wait
speed 1.0 synchronous
screenshotTo ~/%Y-%m-%d_%H:%M:%S.ppm
hotKey suspend Control Space
hotKey previousSnapshot Control Left
hotKey nextSnapshot Control Right
hotKey doubleSpeed Control KP_Add
hotKey maxSpeed Control KP_Multiply
hotKey halfSpeed Control KP_Subtract
hotKey hundredthSpeed none
hotKey thousandthSpeed none
hotKey previousScreen Control Up
hotKey nextScreen Control Down
hotKey screenshot Control S

copySettings
fromDisplay $DISPLAY
connectTimeout "20 sec"
offlineTimeout "0 ms"
continueWhenOffline off
transmission uncompressed
multimedia
record ""
feedback ""
types input output
clients all
pointerMotionResolution 15
toDisplay $DISPLAY
connectTimeout "20 sec"
offlineTimeout "0 ms"
displayMode fullscreen
startHidden off
onTop on
title ""
serverFonts off
pointerZoom 1
osd off osdX -800 osdY 0
clipX 0 clipY 0 clipWidth 0 clipHeight 0
displayX 0 displayY 0 displayWidth 0 displayHeight 0
types output pointerMovements
inputSwitch off
selectionSync off
screenshotTo ~/%Y-%m-%d_%H:%M:%S.ppm
hotKey suspend Control Space
hotKey previousScreen Control Up
hotKey nextScreen Control Down
hotKey screenshot Control S

convertSettings
fromFile ""
sortFiles off
recordedDisplay :0.0
toDisplay $DISPLAY
connectTimeout "20 sec"
offlineTimeout "0 ms"
displayMode fullscreen
suppressScreenSaver on
serverFonts off
pointerZoom 1
clipX 0 clipY 0 clipWidth 0 clipHeight 0
displayWidth 0 displayHeight 0
types output pointerMovements
startTime begin +00:00:00
stopTime end -00:00:00
toFile ~/converted.mpeg1
encoder FFMPEG
format "MPEG-1 Video"
frameRate 24
imageQuality 60
ringBellWhenFinished on

globalSettings
hotKey gui Shift Control
numberOfThreads 4
logDestination /var/opt/XSOXmetaX/logs/xposextool-Benutzername.html
logTypes errors statistics

Kommentare

Kommentare beginnen mit einem Doppelkreuz # und reichen bis zum Zeilenende.

Beginnt ein Kommentar — nach Überlesen von Leerzeichen — am Zeilenanfang, wird er der letzten vorhergehenden obersten Anweisung zugeordnet. Beim Schreiben einer Konfigurationsdatei gibt das Konfigurationsprogramm diese Kommentarzeilen zwischen der entsprechenden obersten Anweisung und den folgenden Sub-Anweisungen aus.

Die einleitenden Kommentarzeilen zu Beginn einer Konfigurationsdatei vor der ersten obersten Anweisung bleiben erhalten.

Alle anderen Kommentare werden überlesen und vom Konfigurationsprogramm nicht gespeichert.

Variablen

Auf die Environment-Variablen kann wie in einer Shell zugegriffen werden, zum Beispiel:

playSettings recordedDisplay $DISPLAY

Die Syntax für Zuweisungen unterscheidet sich jedoch:

set Variablenname Wert

etwa:

set POSEFILE $HOME/1.pose

Ein Variablenname beginnt mit einem Buchstaben (dazu zählt auch der Unterstrich _) gefolgt von Buchstaben oder Ziffern. In besonderen Fällen werden zur Abgrenzung geschweifte Klammern verwendet:

set server1 remote:1.
playSettings recordedDisplay ${server1}0

Die in der Konfiguration gesetzten Variablen werden in das Environment übernommen und können zum Beispiel von Programmen gelesen werden, die über den Multimedia-Mechanismus (Multimedia) (Multimedia) (Konvertierte Datei) angeschlossen sind.

Listen

Einige Anweisungen erwarten als Argument eine Liste von einzelnen Elementen in der Form:

{[+|-]item}...

Das optionale Vorzeichen betimmt, ob ein Element eingeschlossen wird oder nicht: beginnt eine Spezifikationen mit dem Minuszeichen -, wird die entsprechende Komponente aus der konfigurierten Menge von Elementen entfernt, anderenfalls zur Menge hinzugefügt. Die Ausgangsmenge hängt ab von der ersten Spezifikation: beginnt sie mit einem Minuszeichen -, enthält die Ausgangemange alle möglichen Elemente, anderenfalls ist die Ausgangsmenge leer.

Arithmetische Ausdrücke

Arithmetische Ausdrücke können die Operatoren *, / und % (Modulus), + und - sowie Variablen enthalten. Sie werden mit normalen Klammern umgeben, zum Beispiel:

set width 1280
set doubleWidth ($width * 2)

Zeitpunkte und Zeiträume

Die Spezifikation eines Zeitpunktes folgt einer erweiterten ISO-Syntax:

[Jahr{-|/}Monat{-|/}Tag] Stunden:Minuten[:Sekunden[.Millisekunden]] [am|AM|pm|PM] [Z|{+|-Stunden:Minuten}]

Die folgenden Beispiele bezeichnen annähernd den gleichen Zeitpunkt am 20. August 2008 in Zentraleuropa:

2008-08-20 20:08:20.2008
20:08
18:08 Z
08:08 pm

Die Syntax zur Spezifikation eines Zeitraums ist ähnlich:

[[Stunden:]Minuten:]Sekunden[.Millisekunden]

Die folgenden Beispiele bezeichnen annähernd die gleiche Zeitspanne:

1:23:45.678
83:45
5025

Dateigrößen

Dateigrößen werden mit den bekannten Einheiten angegeben (voreingestellt ist Bytes):

Zahl[{Bytes|Byte|B}|{KiB|KB|K}|{MiB|MB|M}|{GiB|GB|G}|{TiB|TB|T}]

In allen Fällen entsprechen die Faktoren dem Zweier-System, die folgenden Beispiele bezeichnen die gleiche Größe:

1024
1024B
"1024 bytes"
1KiB
1KB
1K

Konfigurationsdatei

Die Anweisung

source Dateiname|-

oder auch nur

Dateiname|-

wird durch den Inhalt einer Konfigurationsdatei ersetzt. Wird als Dateiname - angegeben, erfolgt die Eingabe vom Standard-Eingabe-Strom. Die Dateien können beliebig tief, jedoch nicht zyklisch, verschachtelt werden.

Mit der Anweisung

stop

wird die Interpretation einer Konfigurationsdatei vor dem Dateiende abgebrochen. Der restliche Dateiinhalt wird nicht eingelesen und vom Konfigurationsprogramm auch nicht geschrieben.

Multimediaprofile

Wie das xposextool-Programm Multimedia-Geräte — wie Mikrophone, Kameras, Lautsprecher, serielle Schnittstellen — und externe Konverter ansprechen soll, bestimmen Multimediaprofile in der Multimediaprofiledatei xmultimedia_profiles. Diese Datei ist normalerweise in dem Installationsverzeichnis /etc/opt/XSOXmetaX (Installationsverzeichnisse) gespeichert.

Die Profile definieren Schlüsselworte für Geräte, Programme und Parameter, die in den folgenden Konfigurationsanweisungen oder auch im Dialogfeld (XposeXtool: Steuerung und Konfiguration mit grafischer Benutzeroberfläche) referenziert werden. Nähere Einzelheiten finden sich in der Multimediaprofiledatei.

Im folgenden bezeichnet Multimedia_Spezifikation eine von doppelten Anführungszeichen " umgebene Liste von Schlüsselworten aus der Multimediaprofiledatei oder Parameterzuweisungen, etwa:

"Microphone"
"Microphone CD-quality"
"Microphone CD-quality X_Audio_Input_Volume=100%"

"FFMPEG"
"MPEG-1 Video"

Musterelemente

Einige Parameter können Musterelemente enthalten, die zur Laufzeit durch aktuelle Werte ersetzt werden.

Die Musterelemente sind mit Ausnahme des zweiten von date(1) oder strftime(3C) bekannt (viele der Ersetzungen sind von der eingestellten Sprache abhängig):

Musterelement Bedeutung
%% wie %
%n fortlaufende Nummer der Datei beginnend mit 1
%a abgekürzter Name des Wochentages
%A ausgeschriebener Name des Wochentages
%b abgekürzter Name des Monats
%B ausgeschriebener Name des Monats
%c Datum und Zeit in der national üblichen Darstellung
%C Jahrhundert [1,99]; einzelne Ziffern mit vorangestellter 0
%d Tag [1,31]; einzelne Ziffern mit vorangestellter 0
%D Datum im Format %m/%d/%y
%e Tag [1,31]; einzelne Ziffern mit vorangestelltem Leerzeichen
%Fäquivalent zu %Y-%m-%d (ISO 8601 Datumsformat)
%GDas ISO 8601 wochenbasierende Jahr mit Jahrhundert als Dezimalzahl. Die vierstellige Jahreszahl korrespondiert zu der ISO Wochennummer (siehe %V). Format und Wert stimmen überein mit %Y, außer wenn die ISO Wochennummer zum vorhergehenden oder darauffolgenden Jahr gehört, dann wird dieses Jahr genommen.
%gwie %G, aber ohne Jahrhundert, also als zweistellige Jahreszahl (00-99)
%h abgekürzter Name des Monats
%H Stunde [0,23]; einzelne Ziffern mit vorangestellter 0
%I Stunde [1,12]; einzelne Ziffern mit vorangestellter 0
%j Nummer des Tages im Jahr [1,366]; einzelne Ziffern mit vorangestellter 0
%k Stunde [0,23]; einzelne Ziffern mit vorangestelltem Leerzeichen
%l Stunde [1,12]; einzelne Ziffern mit vorangestelltem Leerzeichen
%m Monat [1,12]; einzelne Ziffern mit vorangestellter 0
%M Minute [00,59]
%p nationale Entsprechung von a.m. oder p.m.
%r Darstellung der Zeit (12 Stunden) mit %p
%R Zeit im Format %H:%M
%sdie Anzahl der Sekunden seit 1970-01-01 00:00:00 +0000 (UTC)
%S Sekunde [00,61]
%t Tabulatorzeichen
%T Zeit im Format %H:%M:%S
%u Nummer des Wochentages [1,7], 1 steht für den Sonntag
%U Nummer der Woche im Jahr [00,53], mit Sonntag als erstem Tag der Woche 1
%V Nummer der Woche im Jahr [01,53], mit Montag als erstem Tag der Woche
%w Nummer des Wochentages [0,6], 0 steht für den Sonntag
%W Nummer der Woche im Jahr [00,53], mit Montag als erstem Tag der Woche 1
%x Datum in der national üblichen Darstellung
%X Zeit in der national üblichen Darstellung
%y Jahr [00,99]
%Y Jahr mit Jahrhundert (zum Beispiel 1993)
%zdie numerische Zeitzone im Format +hhmm oder -hhmm (also der Offset zu UTC in Stunden und Minuten)
%Z Name der Zeitzone, eventuell abgekürzt oder leer
%Ec Datum und Zeit in der alternativen Darstellung
%EC Name des Basisjahrs der alternativen Darstellung (zum Beispiel 19)
%Ex Datum in der alternativen Darstellung
%EX Zeit in der alternativen Darstellung
%Ey Jahr als Abstand von %EC in der alternativen Darstellung
%EY komplettes Jahr in der alternativen Darstellung
%Od Tag in der alternativen, numerischen Darstellung
%Oe wie %Od
%OH Stunde [0,23] in der alternativen, numerischen Darstellung
%OI Stunde [1,12] in der alternativen, numerischen Darstellung
%Om Monat in der alternativen, numerischen Darstellung
%OM Minute in der alternativen, numerischen Darstellung
%OS Sekunde in der alternativen, numerischen Darstellung
%OU Nummer der Woche im Jahr (Sonntag als erster Tag der Woche) in der alternativen, numerischen Darstellung
%Ow Nummer des Wochentages (0 steht für Sonntag) in der alternativen, numerischen Darstellung
%OW Nummer der Woche im Jahr (Montag als erster Tag der Woche) in der alternativen, numerischen Darstellung
%Oy Jahr als Differenz zu %C in der alternativen, numerischen Darstellung

Copyright © 2018 X-Software GmbH
info@x-software.com
2016-01-20 12:06:44 +0100