                   E N D E A V O U R   M A R K   I I

                 I N T E R P R O C E S S   S Y S T E M

                    http://wolfpack.twu.net/Endeavour2/

              Copyright (C) 1997-2003 WolfPack Entertainment
                       http://wolfpack.twu.net/


	This document describes the Endeavour Mark II Interprocess
	System (Endeavour2 InterPS).

-----
ABOUT

	The Endeavour2 InterPS system allows other applications to
	communicate with the Endeavour2 program.

	It allows other programs to notify Endeavour2 about disk object
	changes (added, modified, removed, etc), drive mounting,
	and many other things that would affect Endeavour's listing
	so that Endeavour2 displays the most up to date information.

	Other programs can also instruct Endeavour2 to map new windows,
	such as map a new File Browser or Image Browser. Even map the
	Properties dialog and display the properties for a particular
	object.


------------
HOW IT WORKS

	The Endeavour2 InterPS system works by using basic signals
	(UNIX signals) to notify a running process of Endeavour2 that a
	new InterPS command is to be processed.

	The Endeavour2 process information is stored in the user's
	local Endeavour2 data directory as a link's destination:

		$HOME/.endeavour2/lock

	The programs that are capable of sending InterPS commands must
	use the Endeavour2 API Library. This library has functions
	which create an interprocess command file in the user's local
	Endeavour2 data directory then sends a signal (SIGUSR1) to
	the running Endeavour2 process (the pid is obtained from the
	link's destination mentioned above).

	The interprocess command file is created by the Endeavour2 API
	Library and is placed in the user's local Endeavour2 data 
	directory as a file:

		$HOME/.endeavour2/cmd

	Endeavour2 will then receive the signal and read the
	interprocess command file, delete it, and process the commands
	from the interprocess command file. The commands are stored as
	newline ('\n') deliminated lines, each line is one command.

-------------
HOW TO USE IT

	To make a program use the Endeavour2 InterPS system, just link
	it to the Endeavour2 API library found in:

		/usr/lib/endeavour2.so

	Using the header files found in:

		/usr/lib/endeavour2/include/

	The demos found in the source can be a tutorial source for 
	learning how to use the Endeavour2 API library:

		$SRC/endeavour2/lib/demos/


----------------
INTERNAL MODULES

	Modules that contain code for the Endeavour2 program and the
	Endeavour2 API library to use the Endeavour2 InterPS system
	(not for other programs) are:

		$SRC/endeavour2/edvcb.c
		$SRC/endeavour2/edvinterps.c

	Other programs do not need to use these modules, instead they
	should use functions from the Endeavour2 API library.

	Only the Endeavour2 program and the Endeavour2 API library need
	the functions from the above mentioned modules to properly use
	the Endeavour2 InterPS system.

                                                      -----------------
                                                      ENDEAVOUR MARK II
