The two key remote interfaces in Slides are interface Screen and interface Projector.
A screen is an object that displays slides on some medium. For example, a digital projector in a classroom or auditorium might provide a permanent screen service for displaying slides at the front of the room. For another example, an individual's mobile computing device, like a PDA, laptop PC, or tablet PC, might provide a screen service for displaying slides on the device's screen.
A projector is an object that provides slides for a screen to display. A projector object advertises the slides it has available. A screen object obtains slides from the projector object. By providing a projector object, discovering one or more screen objects, and telling the screen object(s) to display a sequence of slides, a client application can make a slide show appear on the screen objects.
A theatre is a group of screen objects and projector objects that are collaborating to do a slide presentation. Each theatre has a name. The screen objects in a theatre display the slides from the projector objects in the theatre. Different theatres with different names display separate slide presentations.
Here is a typical setup. A classroom has a permanent screen service (object) driving a (physical) digital projector and attached to a wireless network. A professor comes to class with a wireless tablet PC that has a client application with a projector object and a bunch of slides. As the professor taps the tablet PC's display, the client application uses M2MI to send the slides to the screen service and display the slides one by one at the front of the room. Simultaneously, students can run screen services on their laptop PCs and see the same slide presentation up close on their laptop screens.
Better still, a screen object can display multiple slides at once -- just like putting multiple transparencies on an old-fashioned overhead projector. In this way, multiple slide projectors can collaborate to produce a combined slide presentation. The pieces of the overall slide presentation don't have to be integrated together ahead of time, and the devices with the slide projectors don't have to know about each other ahead of time. The multiple slide projectors and screen services automatically form an ad hoc collaborative application where the slides from all the slide projectors are displayed on all the screen services.
To run the Slides application, do the following steps on each participating machine. There must be at least one machine running an instance of the Slide Screen and at least one machine running an instance of the Slide Projector.
Return | Next slide | Page Up | Previous slide | |||
Space bar | Next slide | Page Down | Next slide | |||
Up arrow | Previous slide | Home | First slide | |||
Down arrow | Next slide | End | Last slide | |||
Left arrow | Previous slide | |||||
Right arrow | Next slide |
As stated above, the Slide Projector reads a file containing an instance of class SlideShow in serialized form written using Java object serialization. The M2MI Library does not at present include a WYSIWYG application for creating slide show files. However, you can write a Java program to create a SlideShow object and serialize it into a file. To learn how, study the source code for classes SlideShow01 and SlideShow02 in package edu.rit.slides.test. Class SlideShow01 created the file "SlideShow01.ss". Class SlideShow02 created the file "SlideShow02.ss".
Each SlideShow object contains a number of Slide objects. Each Slide object in turn contains a number of SlideItem objects. Package edu.rit.slides.items provides various kinds of slide items, including text, images, rectangles, and lines with various bullets, colors, outlines, and arrows. You can also write your own subclasses of class SlideItem to define your own kinds of slide items.