Das ATOS-Magazin 4/98
ATOS Programmierpraxis
GEMScript Teil III - GEMywood

# Kamera ab, Ton ab...

Bei GEMScript nun ist dies ein wenig anders realisiert. Um ein Skript aufzunehmen, sollte man als Applikation zuerst einmal den Scriptinterpreter nachstarten. Dies geschieht durch Ermitteln der Environmentvariablen "GEMSCRIPT" und anschließendem Starten des dort gefundenen Programms, vorzugsweise mit shel_write(). Der Vorgang hierzu ist dem Nachstarten des OLGA-Managers nicht unähnlich, wer das schon einmal gemacht hat, dem sollte es nicht schwerfallen, auch den Skriptinterpreter derart aufzurufen.

Ist das geschehen, müssen wir dem Interpreter mitteilen, daß wir ein solches Makro aufnehmen wollen. Dies geschieht über die folgende Message im bereits bekannten Messageformat:

    GS_OPENMACRO

    msg[0] GS_OPENMACRO
    msg[1] AES-ID der Applikation
    msg[2] 0
    msg[3]
        +  Pointer auf Dateinamen, unter dem das Skript gespeichert
        werden soll
    msg[4]
    msg[5] 0
    msg[6] 0
    msg[7] 0

Die Antwort vom Interpreter auf diese Message ist GS_MACRO:

    msg[0] GS_MACRO
    msg[1] AES-ID
    msg[2] 0
    msg[3]
        +  exakt die Werte der empfangenen GS_OPENMACRO-Nachricht
    msg[4]
    msg[5] ID (am einfachsten das Dateihandle) zur Identifizierung des Scripts
    msg[6] 0: Datei ist geöffnet, Aufzeichnung kann beginnen; sonst: Fehler
    msg[7] 0

Die Extension des Dateinames, der bei GS_OPENMACRO mitgeschickt wird, erfahren wir aus der in der Message GS_REPLY mitgeschickten GS_INFO-Struktur (siehe letzte Ausgabe).

Es empfiehlt sich folgendes Vorgehen, wenn der User ein Makro aufzeichnen möchte:

- Suchen und Starten des Interpreters
- Anmelden beim Interpreter
- Öffnen eines Fileselectors, mit der ermittelten Extension vorgeblendet
- Senden von GS_OPENMACRO an den Interpreter unter Übergabe des Dateinamens aus dem Fileselector

und Action...