Playback | Copying Recording

# Playback

Playback is allowed with the product XposeXplay only.

The statement

    start play [noGui] [onSignal] [ownColormap] [traceState]

begins the playback immediately without displaying the graphical user interface.

With noGui the dialog box does never appear, in the event of a termination condition (Start, termination and speed) the program terminates. Otherwise the graphical user interface is displayed (Playback). The parameter onSignal configures control by signals (Control by signals). The parameter ownColormap lets xposextool use its own colormap for its user interface.The parameter traceState lets the program xposextool print state changes on the standard output stream (Printing state changes).

The statement

    playSettings

introduces sub-statements, which specify playback parameters.

## Source

### Recorded files

The sub-statement

        fromFile|fromFiles {file_name|-|file_name_pattern}...

specifies the recording file(s) to be replayed, - stands for the standard input stream, ~ for the home directory.

The pattern elements of the file_name_pattern resemble the regular expressions of UNIX shells. These are not the patterns used for the recording parameters. If there are multiple files, they are concatenated for playback.

The sub-statement

        sortFiles on|off

determines whether the recording files should be sorted according to the real time and checked for consistency or not (by default).

### Screens

The sub-statement

        |recordedDisplay|recordedDisplays all|{[+|-]display_name}...

determines the (meta) screens to be replayed. If display_name contains a screen number, only the specified screen is displayed, otherwise all recorded screens of the X Window proxy are displayed. By default all recorded screens of all displays are displayed.

This sub-statement may be configured multiple times and includes sub-sub-statements, which further specify the playback of a particular display or screen.

## Destination

The sub-sub-statement

            toDisplay display_name

defines the screen of an X Window server to be used for playback. The value of the environment variable $DISPLAY is taken by default.

You may arbitrarily distribute any number of recorded screens on any number of screens available for playback. An partially or totally obscured playback window can be make visible using one of two hotkeys (Hotkeys).

The X Window server may differ from the server used during recording with regard to vendor and capabilities. However, it may happen, that the playback is impossible, for instance due to lack of color models (visuals). In order to make playback on different servers possible, the XmetaX and XposeXrecord proxies allow to restrict such capabilities (Common resources and capabilities).

The option VisEmu emulates PseudoColor visuals of depths 4 and 8 on a 24 bits deep TrueColor visual. Thus it is possible to playback a recording made on older graphics systems of lower depths on modern hardware often supporting 24 bits depth only.

This sub-sub-statement may be configured multiple times and includes sub-sub-sub-statements, which further specify the playback on an individual screen.

### Connection

The sub-sub-statement

            connectTimeout timeout

determines the period of time (Points of time and periods of time), within which the xposextool program tries to connect to the X Window server used for playback. If the connection cannot be established within the timeout (20 seconds by default), the playback is not started.

The sub-sub-statement

            offlineTimeout timeout

determines the period of time (Points of time and periods of time), within which the X Window server has to honor X11 requests, before it is regarded as broken. The default value of 0 seconds disables this check.

### Displaying

The sub-sub-sub-statement

     displayMode fullscreen|window|iconic

further determines the playback destination:

With fullscreen (default) the playback is displayed filling the whole screen(s). Unoccupied areas up to the screen border are black.

With window the playback is displayed in an X11 window, which may be positioned and minimized using the window manager.

icon is like window, but the window is showed as icon initially.

The sub-sub-sub-statement

     startHidden on|off

determines whether the playback window should be hidden while positioning to the start time (Start, termination and speed) or not (default).

The sub-sub-sub-statement

     onTop on|off

determines whether the playback window should be displayed unobscured on top of other windows (by default) or not.

The sub-sub-sub-statement

     suppressScreenSaver on|off

determines whether the screen saver should be disabled during playback or not (default).

The sub-sub-sub-statement

     title text

specifies a title for the playback window. The default title is a dynamic string reflecting the current state of the playback process, unless there was a title specified for recording (Meta data).

Every recording file contains the fonts used during the recording in form of bitmaps. For the potentially zoomed playback these bitmaps are scaled accordingly, which may yield an unattractive text display. The sub-sub-sub-statement

     serverFonts on|off

determines whether the most fitting fonts of the displaying X Window server or the bitmaps of the recording file (default) are used for text display.

The sub-sub-sub-statement

     pointerZoom factor

defines a factor for all pointer images of a screen. The smoothing algorithm works best with a power of two as factor. The default value is 1. Some X Window servers clip or even distort large cursor images.

The sub-sub-sub-statements

     osd on|off
     osdX [+|-]horizontal_position_in_pixels
     osdY [+|-]vertical_position_in_pixels

configure whether the on screen display should be shown or not (default) as well as the position of the display (default: upper right corner).

### Positions, dimensions and scaling

The sub-sub-sub-statements

                clipX horizontal_position_in_pixels
                clipY vertical_position_in_pixelns
                clipWidth width_in_pixels
                clipHeight height_in_pixels
                clipGeometry widthxheight[+horizontal_position+vertical_position]

specify a rectangular clipped area of the screen to be replayed. The default value of 0 for all scalar parameters and 0x0+0+0 for clipGeometry, respectively, denote the whole screen.

The sub-sub-sub-statements

                displayX horizontal_position_in_pixels
                displayY vertical_position_in_pixels
                displayWidth width_in_pixels
                displayHeight height_in_pixels
                displayGeometry widthxheight[+horizontal_position+vertical_position]

specify the rectangular area, in which the playback is displayed. Thus, width and height can be scaled independently. The default value of 0 for all scalar parameters and 0x0+0+0 for displayGeometry, respectively, denote unscaled display.

## Scope of the playback

The sub-sub-sub-statement

                type|types {all|none|{[+|-]output}|{[+|-]visible}|{[+|-]pointerImages}|{[+|-]bell}
                    |{[+|-]input}|{[+|-]buttonHits}|{[+|-]pointerMovements}|{[+|-]keyHits}
                    |{[+|-]buttonClicks}|{[+|-]buttonFeedback}|{[+|-]keyClicks}}...

denotes a list (Lists) of (group of) types of data to be replayed from the specified screen (by default output and pointerMovements are replayed):

output stands for all X11 requests with visible or audible effects:

visible comprises all drawing and window manipulating requests,

pointerImages stands for requests changing the image of the pointer,

bell denotes the audible bell signal.

input stands for all input events:

buttonHits denotes pointer clicks,

pointerMovements stands for the movements of the pointer device,

keyHits denotes keyboard input,

buttonClicks stands for the audible feedback of the mouse buttons,

with buttonFeedback for each click with one of the first three mouse buttons the mouse pointer briefly shows a symbol for the button pressed,

keyClicks stands for the audible feedback of the keyboard.

all stands for the complete X11 protocol traffic, including requests without any visible effects.

If only input events are specified, they are sent to the running session, as if they are actually input. Otherwise a window is opened (Destination) to display the output.

## Start, termination and speed

The sub-statements

        startTime begin [+period_of_time]
        startTime start [+period_of_time]
        startTime end [-period_of_time]
        startTime point_of_time

determine the start time of the playback (default: begin for the beginning of the first file) (Points of time and periods of time). From the preceding snapshot (Snapshots) to the start time the recorded data is replayed asynchronously with maximum speed.

The sub-statements

        stopTime begin [+period_of_time]
        stopTime start [+period_of_time]
        stopTime end [-period_of_time]
        stopTime point_of_time

determine the end time of the playback (default: end for the end of the last file) (Points of time and periods of time).

The sub-statement

        ignoreEOF on|off

determines that the playback should not be terminated when the end of the recorded file is reached or not (default).

The sub-statement

        playMode once|wait|loop

determines the action at the end of the playback:

once lets the program xposextool terminate.

wait lets the program xposextool display the graphical user interface (XposeXtool: control and configuration with graphical user interface) for additional user interaction. This is the default behaviour.

loop repeats the playback infinitely; only after pressing the appropriate hot key combination (Dialog box) the graphical user interface is displayed.

The sub-statement

        speed factor [sync|synchronous|async|asynchronous]

specify the playback speed. The factor determines the speed as floating point number in relation to the real time. The default value 1.0 means playback in real time, the special value 0 denotes playback at maximum speed.

The speed may be changed by pressing a hot key combination (Hotkeys), too.

If the synchronous playback is delayed, for example due to insufficient performance of the X Window server, an additional parameter determines, whether the speed should be increased temporarily to catch up with the real time (sync or synchronous, default value, for instance to synchronize with an audio recording) or whether the speed should remain constant (async or asynchronous).

## Screenshot

Using the graphical user interface (XposeXtool: control and configuration with graphical user interface) or a hot key combination (Hotkeys) you may generate a file in PPM format containing screenshots of all displayed screens. The sub-statement

        screenshotTo file_name|-

specifies the destination, - stands for the standard output stream stdout, ~ for the home directory. The file_name may contain pattern elements (Pattern elements) like the default value ~/%Y-%m-%d_%H:%M:%S.ppm.

## Hotkeys

The sub-statements

        hotKey suspend
            {Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
            [key|none]
        hotKey previousSnapshot
            {Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
            [key|none]
        hotKey nextSnapshot
            {Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
            [key|none]
        hotKey doubleSpeed
            {Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
            [key|none]
        hotKey maxSpeed
            {Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
            [key|none]
        hotKey halfSpeed
            {Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
            [key|none]
        hotKey hundredthSpeed
            {Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
            [key|none]
        hotKey thousandthSpeed
            {Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
            [key|none]
        hotKey previousScreen
            {Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
            [key|none]
        hotKey nextScreen
            {Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
            [key|none]
        hotKey screenshot
            {Shift|Lock|Control|Mod1|Mod2|Mod3|Mod4|Mod5|none}...
            [key|none]

define the hot key combinations to control the playback without graphical user interface:

suspend (Control Space by default) temporarily suspends the playback, an arbitrary key press resumes the playback.

previousSnapshot (Control Left by default) positions to the previous snapshot (Snapshots) or file.

nextSnapshot (Control Right by default) positions to the next snapshot (Snapshots) or file.

doubleSpeed (Control KP_Add by default) doubles the playback speed (Start, termination and speed).

maxSpeed (Control KP_Multiply by default) plays at maximum speed asynchronously (Start, termination and speed).

halfSpeed (Control KP_Subtract by default) halves the playback speed (Start, termination and speed).

hundredthSpeed (no default) decelerates the playback by the factor of 100 (Start, termination and speed).

thousandthSpeed (no default) decelerates the playback by the factor of 1,000 (Start, termination and speed).

previousScreen (Control Up by default) shows the next playback window (Destination).

nextScreen (Control Down by default) shows the previous playback window (Destination).

screenshot (Control S by default) triggers a screenshot (Bildschirmauszug).

top
Copying
Recording

Copyright © 2021 X-Software GmbH
info@x-software.com