Package edu.rit.slides contains Slides, a service and collaborative application based on Many-to-Many Invocation (M2MI).


Table of Contents

1. Overview
2. Running the Slides Application
3. Creating a Slide Show


1. Overview

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.


2. Running the Slides Application

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.

  1. Configure the M2MI Layer. See package edu.rit.m2mi and class M2MIProperties for further information.
     
  2. Configure the M2MP Layer and run the M2MP Daemon in a separate process. See package edu.rit.m2mp, class M2MPProperties, and class Daemon for further information.
     
  3. Run an instance of the Slide Screen by typing this command in a separate process:
     
        java edu.rit.slides.SlideScreen
     
    The application displays a window:
     

     
  4. The Slide Screen automatically discovers all existing theatres and displays them in the list at the right. To make the Slide Screen join one of the existing theatres, click on the theatre name in the theatre list. To make the Slide Screen create and join a new theatre, click the "New Theatre..." button. To make the Slide Screen not part of any theatre, click "<none>" in the theatre list.
     
  5. The slide or slides being projected by the Slide Projectors in the theatre are displayed in the large area at the left. If no slides are being projected, or if the Slide Screen is not part of a theatre, this area is black. To show the slides on the full screen, click the "Slide Show" button. To return to the Slide Show window display, click the mouse button.
     
  6. Run an instance of the Slide Projector by typing this command in a separate process:
     
        java edu.rit.slides.SlideProjector
     
    The application displays a window:
     

     
  7. The Slide Projector automatically discovers all existing theatres and displays them in the list at the right. To make the Slide Projector join one of the existing theatres, click on the theatre name in the theatre list. To make the Slide Projector create and join a new theatre, click the "New Theatre..." button. To make the Slide Projector not part of any theatre, click "<none>" in the theatre list.
     
  8. Click the "Open..." button to open a slide show. In the file dialog, select the file that contains the desired slide show. The slide show file must contain an instance of class SlideShow in serialized form written using Java object serialization. The M2MI Library contains two example slide show files in the directory "lib/edu/rit/slides/test/", file "SlideShow01.ss" and file "SlideShow02.ss". The first slide appears in the Slide Projector window and in every Slide Screen that is part of the same theatre:
     

     
  9. Click the "Next slide", "Previous slide", "First slide", and "Last slide" buttons to move through the slide show. You can also click on the slide itself to move to the next slide. You can also use the following keys for navigation:
     
    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

     
  10. Click the "Blank" button to make the Slide Projector temporarily stop projecting slides. This will cause all the Slide Screens in the theatre to go blank (unless another Slide Projector is still projecting slides). While the Slide Projector is blanked, you can change theatres, navigate through the slide show, or open another slide show. Click the "Unblank" button to make the Slide Projector start projecting slides again.


3. Creating a Slide Show

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.