mgpm is designed as a one-to-many application, where a master node can unidirectionally transmit a presentation to a potentially large number of receivers.
The application uses a FEC-based reliable multicast protocol to distribute the presentation data to the receivers, and a special-purpose protocol to deliver commands (e.g. page changes, annotations, etc.) from the master sender to the receivers. In order to achieve scalability, the protocol is fully unidirectional and uses no feedback whatsoever from the receivers.
Transmission is done using RTP-encapsulated packets over a number of multicast groups. The application uses a congestion-controlled version of our Reliable Multicast Data delivery Protocol (RMDP) which is based on the RLC congestion control scheme. More info on RMDP and RLC is available at my research page http://www.iet.unipi.it/~luigi/research.html
RLC and RMDP are joint works with Lorenzo Vicisano and Jon Crowcroft.
bin/mgpm, bin/sen-sample, bin/rec-sample, lib/libttf.so.2.0 (FreeBSD only)(you don't need to install things in the system's directory, but then make sure that the bin/ directory in your PATH and LD_LIBRARY_PATH contains the lib/ directory with the above shared libs.
Then do the following:
cd /usr/ports/misc (or some other directory you like) tar xvzf /usr/ports/distfiles/rlc981215.tgz tar xvzf /usr/ports/distfiles/rmdp981215.tgz tar xvzf /usr/ports/distfiles/mgpm981222.tgz cd rlc-port make install cd ../rmdp make install cd ../mgpm make cp work/kit/mgp /usr/local/bin/mgpm
mgpm [options] -M group/port/ttl filenamewhereas receivers can start the program as
mgpm [options] -S rmdp://group:port/With the above command, the sender runs an RMDP session on the specified multicast group addresses, and a command session on the group address immediately before. The receiver will in turn launch an RMDP receiver to download the presentation, then starts displaying the current slide and execute any command coming from the sender.
Other combinations are possible, e.g. the receiver can load the presentation from a local file or using http, just replacing the URL of the file with a local filename or a generic URL (e.g. /tmp/a.mgp or http://host/file).
In this case the address to be used for the control stream can then be specified with the option -r group/port on the receiver, and -s group/port on the sender. Unicast addresses can be used, in which case they should reflect the receiver's IP.
Section "Files" ... ModulePath "/usr/X11R6/lib/modules" EndSection Section "Module" Load "xf86Wacom.so" EndSection Section "Xinput" SubSection "WacomStylus" Port "/dev/cuaa1" DeviceName "Wacom" Mode Absolute Suppress 6 AlwaysCore EndSubSection EndSectionIn this way you can have both the mouse and the pen active at all times.