Homework #1: Benchmark Description

Introduction

This benchmark is an interface to the remote control of an AIWA shelf stereo system. This is implemented as a series of approximately twenty forms that are navigated through a combination of tabs, menus, and selection lists. Only two of these forms have complex interface elements such as scrollable lists. The remaining forms are simple, containing only buttons, pull-down menus, and other common interface elements. This makes the benchmark possible even though there are a large number of forms.

This benchmark tests the form capabilities of toolkits in a variety of different form factors. The intent is to implement the form interface in three different form factors: PC (Visual Basic and Amulet), handheld (Palm), and cell. phone (UIML rendering to WAP).

This benchmark is also conducting a test of UIML's ability to render acceptable interfaces. In the event that UIML is not capable of generating acceptable WML/WMLScript, WML/WMLScript will be used directly.

Handling the back-end logic of the stereo is a major issue for this benchmark. Since a stereo will not be controlled, the interface logic must pretend that it is sending information and receiving feedback. I will implement this as an external C++ object that is linked into each implementation. In other words, a stereo proxy. This will be linked through an ATL DLL in the Visual Basic and PocketPC cases, and directly in the Amulet case. The code will also be linked to the WAP/WML implementation, through UIML's mechanism for interfacing with external program code.

The external object will simulate the complete functionality of the stereo. Ideally the proxy stereo object would be replaceable by an object that could actually send and receive feedback from the stereo. This means that the interfaces generated for each of these benchmarks should be able to control every function of the existing stereo, assuming one could be connected. This extra work is worthwhile because it should help give me some insights on how to integrate the front-end (UI) with the back-end (device commands) of the personal universal controller project.

The proxy stereo will assume the following initial state:

  • Three discs in the player
    1. 12 tracks, all five minutes
    2. 8 tracks, all six minutes
    3. 10 tracks, first five four minutes, last five six minutes
  • Two tapes in the player
    1. 60 minute
    2. 90 minute
  • Radio set to 1200 AM
  • No presets set initially

Detailed Interface Specification

The stereo has five major modes, representing each of the five playback inputs. Two of these inputs are ports on the back of the unit which accept audio from an external source. The remaining three inputs come from playback units that are integrated into the device. They are (click for detail):

A recording feature is also implemented for all of these input types. The interface for each of the input types and their recording feature is briefly described below.

In addition to each of the input types, screens will be created for four global setup screens. These screens are titled (click for example):

3-Disc CD Player

The CD player has three modes (click for example):

2-Deck Tape Player

The tape player has only a single minor mode (click for example).

AM/FM Tuner

The AM/FM tuner has only one minor mode (click for example). The tuner also supports preset radio stations, which are displayed in a pull-down menu and will not be saved from session to session.

Example Figures

figure 1 Figure 1. Set Audio Settings
The dialog that allows setting of global audio settings. Note the duplication of the volume control to ensure that the speakers can be turned down while in this modal dialog.
Figure 2. Set Delayed On/Off
This dialog allows access to two separate but similar features of the stereo. Delayed On turns the stereo on a predetermined time for a set duration. Delayed Off is applied when the stereo is already on. The stereo is turned off after a set duration.
figure 2
figure 3 Figure 3. Set Clock
This dialog lets the user set the clock. Alternatively the user may choose to use the time set on the current machine (in this case a Palm handheld) as the time to set on the stereo.
Figure 4. CD Player Single Disc Mode
This is a traditional CD player interface.
figure 4
figure 5 Figure 5. CD Player Programmed Mode
This is a specialized interface for custom specification of a CD track playlist. The only limitation is that tracks must be added at the end. Tracks may be dragged once they are in the list. The underline represents the track that is currently playing.
Figure 6. CD Player Karaoke Mode
This mode is similar to the CD Player Programmed Mode. There are three differences. A "reservation" scheme is used. The track at the top of the list is always the track playing, tracks can only be added at the end of the list, and tracks cannot be dragged.
figure 6
figure 7 Figure 7. Tape Player Mode
This is a typical tape interface. Changes may be made to the auto-reverse play button and the Mode pull-down menu.
Figure 8. Tuner Mode
This tuner allows seeking and manual tuning functionality using the arrow keys on either side of the station indicator. Presets can be set using the "set" button below, or selected from the pull-down list.
figure 8

Toolkit Choices

As mentioned above, these are the toolkits that I will use to implement this interface:

  • Visual Basic
  • PocketPC
  • UIML, rendering to WML and WMLScript
  • Amulet

Presentation

View my PowerPoint presentation slides.


Jeffrey Nichols
Last modified: Sun Feb 4 03:36:50 EST 2001