- Konfigurationssprache

Aufnahme
Option Pose: Aufnahme, Wiedergabe, Kopieren, Konvertierung

Versionsänderungen verstecken

# 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 miscValues globalSettings (Globale Anweisungen), recordValues recordSettings (Aufnahme), playValues playSettings (Wiedergabe), copySettings (Kopieren) und convertValues 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:

    recordValues recordSettings
        display fromDisplay $DISPLAY
            connectTimeout "20 sec"
            offlineTimeout "0 ms"
            continueWhenOffline off
            transmission uncompressed
            multimedia record ""
            globalTypes types input output bell
            clients all
                types all
                screens all
            pointerMotionResolution 15
            timestampResolution 100
            showSnapshotPointerImage on
        to toFile record.pose ~/%Y-%m-%d_%H:%M:%S.pose
        takeNextFile off
        newFiles never
        neveroverWrite overwriteProtection on
        maxNumberOfFiles keepNumberOfFiles 0
        minSnapShotIntervalSize 0
        maxSnapShotIntervalSize 0
        minSnapShotIntervalTime 0
        maxSnapShotIntervalTime 0
        insertSnapshot earliestAfter "60 min"
        compression off encoding uncompressed
        title ""
        subTitle ""
        description ""
        keywords ""
        author ""
        copyright ""
        maxTime "0 sec" maxFileSize "0 bytes" terminate never

    playValues playSettings
        from fromFile record.pose ""
        sortFiles off
        screens recordedDisplays all
            to toDisplay $DISPLAY
                connectTimeout "20 sec"
                offlineTimeout "0 ms"
                displayMode fullscreen
                startHidden off
                onTop on
                suppressScreenSaver off
                title ""
                serverFonts off
                pointerZoom 1
                gammaorrection red 1.0 green 1.0 blue 1.0
                osd on off osdX -800 osdY 0
                clipX 0 clipY 0 clipWidth 0 clipHeight 0
                displayX 0 displayY 0 displayWidth 0 displayHeight 0
                types bell output pointer pointerMovements
                inputSwitch off
        startTime begin +00:00:00
        stopTime end -00:00:00
        ignoreEOF on
        playMode wait
        speed 1 1 1.0 asynchronous synchronous
        screenshotTo screenshot%n.ppm ~/%Y-%m-%d_%H:%M:%S.ppm
        hotKey suspend Control Space
        hotKey back previousSnapshot Control Left
        hotKey forward 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

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

    miscValues globalSettings
        hotKey gui Shift Control
        numberOfThreads 4
        logDestination stderr /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)
%G | Das 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.
%g | wie %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
%s | die 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)
%z | die 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

Nach oben
Aufnahme
Option Pose: Aufnahme, Wiedergabe, Kopieren, Konvertierung

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