Topic : Documentation for Thing
Author : Arno Welzel/Thomas Binder/TransAction
Version : thing.hyp 1.27E (23/8/1998)
Subject : Documentation/Shells
Nodes : 269
Index Size : 6336
HCP-Version : 4
Compiled on : Atari
@charset : atarist
@lang :
@default : %I
@help : %Hilfe
@options : +g -i -s +y +zz -t4 -d10
@width : 75
@hostname : THING
View Ref-FileAV Protocol Thing
The AV Protocol was developed for use with Stefan Eissing's Gemini
replacement desktop. Gemini comprised a GUI (Graphical User Interface)
desktop named Venus, and a command line interpreter called Mupfel.
To allow Venus to communicate with desk accessories the AV Protocol was
developed and is widely supported today. The name derives from:
(AV ~ Accessory <-> Venus)
In the meantime there have been some additions to the original definition
and to be able to differentiate between the original and extended versions
the date of the new definition has been added to the descriptions in this
text. The Thing package contains a revised version of the file VAPROTO.H
listing all the new messages, which can be used by programmers.
The additions have been agreed with Stefan Eissing and it is safe to assume
that no conflicts will arise with future Gemini versions.
Thing supports most of the messages defined up to 26th June 1995 and as a
consequence is an excellent 'AV-server' that improves the functionality
of your desk accessories and operation under a multitasking OS.
Filename quoting is still not supported!
In the following description Thing acts as the 'Server' and accessories
and applications that use Thing's server functions are 'Clients'.
In order to use Thing as an AV-server under a multitasking environment
you must set an environmental variable for Thing called AVSERVER. This
can be done very elegantly with an additional entry in the appropriate
configuration file of the relevant operating system (MagiC or MultiTOS):
MagiC Enter '#_ENV AVSERVER=THING' in the file MAGX.INF (must be added
before '#_CTR'!)
MultiTOS Enter 'setenv AVSERVER=THING' in the file MINT.CNF.
The following functions are supported by Thing:
Client -> Server Server -> ClientAV_PROTOKOLLAV_GETSTATUSVA_PROTOSTATUSVA_SETSTATUSAV_STATUSAV_SENDKEYVA_STARTVA_FILEFONTAV_ASKFILEFONTAV_ASKCONFONTVA_CONFONTVA_WINDOPENAV_OPENWINDAV_STARTPROGVA_PROGSTARTVA_DRAGACCWINDAV_ACCWINDOPENAV_ACCWINDCLOSEDVA_COPY_COMPLETEVA_THAT_IZITAV_COPY_DRAGGEDAV_PATH_UPDATEVA_DRAG_COMPLETEVA_FONTCHANGEDAV_WHAT_IZITAV_DRAG_ON_WINDOWVA_XOPENVA_VIEWEDAV_EXITAV_STARTEDVA_FILECHANGEDAV_XWINDAV_VIEWVA_FILECOPIEDAV_FILEINFOAV_COPYFILEVA_FILEDELETEDAV_DELFILEVA_PATH_UPDATESome hints for implementing the protocol in your own programs: ∙ Under Single-TOS only the (main-) application 0 can act as
AV-server.
In a multitasking environment like MagiC or MultiTOS, you have
to establish the presence of an AV-server by checking the
environmental variable AVSERVER. Under no circumstances make the
unsafe assumption that the server also has an application-ID 0
here, just because under MagiC the desktop by chance is always
started with ID 0! Because under MultiTOS the desktop does not have an ID 0!
∙ Once a program uses AV_PROTOKOLL it must use AV_EXIT before
terminating! The AV_PROTOKOLL message may only be sent once
unless one has sent an AV_EXIT beforehand)!
∙ A program should always wait for the return of VA_PROTOSTATUS before sending any other AV_... messages to the server! It may
well be that the current server does not support all the
documented functions and hence the relevant AES messages do not
trigger the desired actions!
∙ All memory blocks, which are used to pass file and folder names,
parameters etc. must be allocated 'global' when running under
under MultiTOS!!! (hint: Mxalloc(<size>,0x42)). Otherwise memory
violations will occur! ∙ All filenames and folder names must contain complete path names
including the drive e.g. 'i:\test.txt').
∙ If the server supports filename 'quoting' they can be enclosed
in single quote marks. If a quote mark is part of the file name,
it has to be repeated once:
d:\letter to moni becomes 'd:\letter to moni'
d:\peter's picture becomes 'd:\peter''s picture'
∙ If there is more than one file/folder name, the names should
be separated using a single space (ASCII character 32).
∙ Folder names must be terminated with a backslash ('\' - ASCII 92)
e.g. 'i:\letters\' (even if Gemini 1.a doesn't seem to do this)!
∙ To provide 'global' window cycling, AV clients should send
Control + W to the server via the AV_SENDKEY message.