Topic : User Manual for TeraDesk Author : Wout Klaren, Henk Robbers, Djordje Vukovic Version : February 2017 Subject : Documentation/Utilities Nodes : 87 Index Size : 2746 HCP-Version : 3 Compiled on : Atari @charset : atarist @lang : en @default : Main @help : @options : -i -t4 +z @width : 75 View Ref-File Contents Supported Protocols 10.2 The AV Protocol TeraDesk This protocol (first developed for use with the Gemini desktop) allows certain blocks of information to be passed between concurrently running applications, and actions to be performed on the basis of that information. In order to utilize this protocol, an 'AV-Server' has to be declared through an environment variable, e.g. if TeraDesk is to be the AV-Server, the environment variable AVSERVER should be set to: AVSERVER=DESKTOP Clients using this protocol sign-on to the server and request certain actions by sending messages. Generally, upon receiving a request, the server performs an action and replies by sending to the client an appropriate acknowledgment message. TeraDesk currently supports a large subset of AV-protocol message exchanges (listed below in client request / server reply pairs): AV_PROTOKOLL/VA_PROTOSTATUS:Establish client-server communication and inform each other of capabilities. AV_EXIT: Terminate client-server communication. AV_SENDKEY: Pass an unused key code to the server VA_START/AV_STARTED: Pass parameters to the client. AV_STARTED reply is ignored. AV_ASKFILEFONT/VA_FILEFONT: Ask the server about the current font for the Directory windows AV_ASKCONFONT/VA_CONFONT: Ask the server about the current console window font. Currently, TeraDesk replies by sending the directory window font info. VA_FONTCHANGED: Inform any AV-client which had previously requested the directory font that this font has changed. AV_OPENWIND/VA_WINDOPEN: Tell the server to open a directory window with the given path. AV_XWIND/VA_XOPEN: Similar to the above, but with additional parameters passed. Currently, some of the additional parameters are ignored; this capability is not fully compliant to the specifications. AV_ACCWINDOPEN: Inform the server that the client has opened a window. This window is then included in TeraDesk's window cycling and can also be closed, fulled or iconified from TeraDesk's Window menu. AV_ACCWINDCLOSED: Inform the server that the client has closed a window. VA_DRAGACCWIND: Inform the client that objects have been dragged to its window. AV_COPY_DRAGGED/VA_COPY_COMPLETE: Replies to VA_DRAGACCWIND AV_DRAG_ON_WINDOW/VA_DRAG_COMPLETE: Inform the server that objects have been placed on its windows or the desktop. AV_STARTPROG/VA_PROGSTART: Tell the server to start an application with a given name, or an application that will open a file with a given name. AV_VIEW/VA_VIEWED: Tell the server to start an application which is the viewer for the given file. Currently, TeraDesk does not distinguish between filetype-specific viewers and processing applications, it will start the first application for which the given filetype is assigned. AV_PATH_UPDATE: Tell the server to update a window with the given path. AV_FILEINFO/VA_FILECHANGED Tell the server to show information about the files the names of which are passed. AV_DELFILE/VA_FILEDELETED Tell the server to delete some files. AV_COPYFILE/VA_FILECOPIED Tell the server to copy some files. In the current implementation, this function is not fully compliant to specifications: symbolic links can not be created. VA_PATH_UPDATE Inform clients of a change in a directory. AV_STATUS Ask the server to save the client's status AV_GETSTATUS/VA_SETSTATUS Ask the server about saved client status. AV_SETWINDPOS Fix the position of the next client window to be opened. Messages currently not supported: AV_OPENCONSOLE/VA_CONSOLEOPEN Open the console window AV_ASKOBJECT/VA_OBJECT Ask for the names of selected objects. In the single-TOS version, only the following messages are supported: AV_PROTOKOLL/VA_PROTOSTATUS AV_EXIT AV_SENDKEY VA_START/AV_STARTED AV_ASKFILEFONT/VA_FILEFONT AV_ACCWINDOPEN AV_ACCWINDCLOSED VA_DRAGACCWIND AV_COPY_DRAGGED/VA_COPY_COMPLETE AV_STARTPROG/VA_PROGSTARTED This limitation is a consequence of the desire to reduce the size of the Desktop program by removing options which are very unlikely to be used in single-TOS. However, TeraDesk can be compiled for single-TOS with full AV-protocol support. Certain AV-protocol data is exchanged between Tera Desktop and clients through a globally available memory buffer. Size of this buffer in Tera Desktop is between 0.2% and 0.4% of the largest free memory block at the time of allocation, but always at least 1KB and no more than 128KB. It should be noted that in some cases the size of this buffer may limit the number of names that can be handled in one AV-protocol operation. In a multi-tasking environment with memory protection, TeraDesk may run into problems with some AV-protocol clients, and fail with the 'memory protection: type private' error. This will most probably be a fault of a badly programmed AV-protocol client that doesn't set its data-exchange buffer to be globally available. In some cases it can be cured if the memory-protection flag in the header of the offending AV-protocol client is set to 'readable' or, if that doesn't help, to 'supervisor' or 'global'. Examples of such programs are ST-Guide and aMail. Note that the nature of the AV-protocol is such that the AV-server (i.e. TeraDesk in this case) will crash first if it encounters an offending client; the client will not be affected. See also: Installation TOS version compatibility