Controlling the flow of electronic information through computer hardware5987528Abstract A method for controlling flow, through a computer hardware resource, of information to and from computer applications. When a flow of information is initiated from one of the applications, a determination is made whether the resource is being accessed by another one of the applications and, if so, the flow of information from the first application is delayed. If not, then the flow of information is enabled. When a flow of information is initiated toward the applications, a determination is made to which one of the applications the information is flowing, and the flow is directed to that one application. A graphical interface associates, in the mind of a user, a computer hardware resource with a corresponding real office device, the computer resource enabling the computer to function like the consumer device. The graphical interface includes a surrealistic image having physical features which represent functional components of the resource, the physical features of the image resembling corresponding features of the office device; and an animation routine which causes the image to change when the user selects one of the features of the image, thereby invoking the change occurring in a manner which resembles changes to the office device when the corresponding feature of the office device is invoked. Claims We claim: Description BACKGROUND
TABLE 1
______________________________________
Control Yes No
______________________________________
Restore .about.
Move .about.
Size .about.
Minimize .about.
Maximize .about.
Close .about.
Switch To . . . .about.
______________________________________
Of course, users can place a call or send a FAX via the TAM and FAX applications. They also can "jump" to those applications via the Operator screen. When there is No incoming call, the Operator's window looks like FIG. 5. The help bubble in FIG. 5 speaks to the user in simple, concise sentences; in this case, simply by asking "What would you like to do?" The user may: Go elsewhere via standard Windows navigation. minimize the Operator via standard Windows controls. Press Place a Call which invokes/restores the TAM application, brings it to foreground, and displays the main screen. Press Send a FAX which invokes the FAX application and pseudo-presses the Create FAX button to launch the user directly into FAX creation. Press Options to invoke the Operator's options dialog box. Note that the TAM application will NOT provide its speakerphone functionality unless the PC or monitor has integrated speakers and a microphone (see the TAM and Setup specifications for more information). With external speakers, only the Answering Machine functionality is available. If no speakers are installed, the application cannot run. The ECI Setup utility will report the customer's speaker/microphone configuration. Obviously the configuration determines how the Operator's screens and buttons are presented. The screen shown in FIG. 5 assumes fully integrated speakers and microphone. If speakers and microphones are not integrated, the Place a Call button is reworded to say Get Messages and launches TAM with only its Answering Machine enabled. If speakers are not installed, the Place a Call button is removed (since you must have speakers to hear anything!). When the telephone rings, the application will move immediately to foreground in its current iconized or restored state. Note that when iconized, the user can simply double click the icon to restore the window. Bombay will notify the application of each ring and show the cadence. In the Options dialog box, the user can choose to "hear" the phone ring (default), matching the Telco cadence, or play a .WAV file for each ring. The Operator will count rings in preparation for taking the call automatically. When the Operator is restored, its window looks like FIG. 3B. The bubble help tells the user who is calling if CallerID information is available. If not, the middle line is omitted and the two remaining lines are displayed in the center of the bubble, as shown in FIG. 6F. There are several possibilities while the phone is ringing. The user can: Select Answer the Phone. This tells the Operator you want to talk to the caller. By default, it invokes the TAM and commands it to route audio in/out via the PC's speakers and microphone. Select Take a Message. This tells the Operator you want to let the caller leave a message. do nothing (minimize, go elsewhere, or otherwise let the ring timer expire). This tells the Operator you want to let the caller leave a message. The caller can simply hang up. In this case, the Operator returns to its initial state (restored or minimized) and shows the application that previously was in foreground. Exactly how and when the Operator routes an incoming call is based on several factors: whether the owner will accept unsolicited Faxes (set in Options screen). whether the caller is allowed to leave a message (set in Options screen). The number of rings to count before answering automatically (set in Options screen). Whether the caller is a FAX machine or a real person. Whether the user has installed a microphone. As mentioned before, how the Operator handles a call depends on the customer's speaker/microphone arrangement. The screen shown in FIG. 6F is used when speakers/microphones are fully integrated. If speakers are not integrated, Answer the Phone is removed and the Operator will only answer the phone if Take a Message is pressed or if the ring count expires (routed to answering machine or FAX). If no speakers are installed, both buttons are removed and the Operator answers the phone only if the ring count expires (routes call only to FAX, if FAX). One of the Operator's most useful traits is its ability to discern incoming FAX calls while also mimicking an answering machine. By default, all calls are routed to the TAM application. However, when the phone goes offhook, the Operator must start a short countdown timer: 8 to 10 seconds is probably sufficient; and then launch the TAM. If FAX carrier is heard before the timer expires, the TAM must be told to "shutdown" and the call is rerouted to the FAX application without user intervention. This must be done quickly to prevent the calling FAX machine from timing out. The chart of FIG. 3A shows the sequence of events, beginning with the first ring. As the diagram shows, the Operator always answers the phone and routes the call to the TAM application (in either voice or answering machine mode). If, within some reasonable time (6-8 seconds), FAX carrier is detected, the Operator must tell the TAM to relinquish control of the line, launch the FAX application, and command it to receive the FAX. When control is revoked from the TAM application, any greeting playback or message recording already in progress is stopped. Any partially recorded message is discarded. The following rules apply when launching the FAX and TAM applications: When placing a call or sending a FAX: If the application is already running, simply bring it to foreground and show Restored. If the application is NOT already running, launch it, bring it to foreground, and show Restored. When taking a call: If the application is already running, simply bring it to foreground in its current state (Restored or Minimized). If the application is NOT already running, invoke it as iconic and bring it to foreground. This method lets the user decide "how much" of each application they want to see. Since the Operator is something of a Remote Control for the telephony applications, it can handle most routine calls. Placing calls and sending FAXes requires the respective applications--therefore they are shown Restored. Taking calls can be handled, minimally, from the Operator screen. If they want the "real" application, they can just double-click its icon. What happens to the icons and focus after the call completes? Ideally, you would want the software to "get out of the way" and let the user keep working. However, one could also argue that the software should not second-guess the user--instead, let them minimize/hide the applications to suit themselves. Compaq's Human Factors group will be testing user preference in this area. But note that a final decision will probably NOT be made until the working software (early Beta) is tested. When handling an incoming call, the Operator's screen changes depending on the type of call: voice, FAX, or voicemail. During a pure voice call (talking to the caller), the screen looks like FIG. 3C. Hang Up terminates the call immediately. Take a Message reroutes the call to the Answering Machine. It is useful, for example, when the caller wants to leave a message for someone who is away. The slider adjusts the audio volume. When receiving a FAX, the Operator screen looks like FIG. 3E. Again, Hang Up terminates the call immediately and discards any partial FAX received. Finally, the screen looks like FIG. 3D when someone is leaving a voicemail. In this mode, the call is routed to the Answering Machine but, presumably, someone is listening (screening the call). The slider switch can be used to control the volume. Pressing Talk stops greeting playback/message recording and treats the call as if the user had pressed Answer the Phone. Any partially recorded message is discarded. The user may press the Options button to set program options whenever the Operator is not taking a call (see FIG. 5). The Options screen looks like FIG. 6A. The three buttons let the user set options for the telephone, answering machine, and FAX. As can be seen in FIGS. 6B and 6G, 6C and 6H, and 6D and 6I, the options affect not only their respective devices, but the Operator's behavior as well. The options are simply organized this way for coherence. Unfortunately, not all FAX options can fit within the ECI metaphor. Some topics, such as modem settings and cover page information, are somewhat confusing. To solve this, we will (A) assume reasonable defaults (shown in FIG. 6E), (B) "hide" expert settings under the FAX option screen's Advanced Options button, and (C) rely on thorough online help to guide a wayward novice in and out of this area. The screen looks like FIG. 6E. The Save Settings and Cancel buttons return to the previous screen. Windows allows only one task at a time to use a serial port. If a port is in use and another program asks for it, Windows displays an offensive, somewhat cryptic message trying to report the collision. One of ECI's goals is to help insulate the user from this message. This code could probably be part of the Operator since it must answer a ringing phone anyway. Rather than respect FutureSoft's existing driver, we will simply list the functional requirements we need: 1. Cooperating telephone applications will request use of the serial port via a messaging API. If access cannot be granted, a MessageBoxo will appear telling which application has control of the port. If granted, the Operator passes the serial port handle to the requesting application. Similarly, the application must relinquish the handle when it is finished using it. 2. For non-ECI compliant applications, a separate "loader" applet can ask CAPI to relinquish a serial port, and provide the new owner's window handle. CAPI, in turn, can reassert ownership of the port when the comm application completes. As you can imagine, the answering machine and FAX machine are useless if the PC'S hard drive becomes full. To help prevent the problem, the Operator will occasionally check the PC's hard drive to make sure sufficient disk space exists. It will work off of two thresholds set in the Options screen. The first threshold decides the point at which the Operator starts to warn of the impending problem (e.g., when 10% or less free space remains). When the threshold is reached, the Operator displays a panel like FIG. 4A. This panel alternates with the "What do you want to do/place a call/send a FAX" panel (FIG. 5)--is visible for a predetermined amount of time and then the previous panel is restored. (The interval should be set in the INI file, for example, in the format: WARN=aaa,bbb where aaa is the number of seconds the warning panel is visible and bbb is the number of seconds before the warning is shown again. Default should be something reasonable, such as WARN=10, 20.) We also need to alert the user with a mild beep--nothing so obvious that it becomes too bothersome. The user can click on the Help button to receive a polite description of the painfully obvious--disk space is required in order to record answering machine messages and receive FAXes. If they ignore the warning and eventually reach the second threshold, the panel of FIG. 4B appears. Again, this panel alternates with the "What do you want to do/place a call/send a FAX" panel (FIG. 5)--same time interval for alternating the screens, and the same warning tone. As before, the user can click the Help icon to get hints on how to free disk space by deleting unwanted files. At this point, the Operator should: Refuse to accept incoming FAXes. Refuse to dispatch calls to the answering machine. Gray-out the Take a Message button in all panels. As disk space is released, the Operator should revert to its "first threshold warning", as appropriate, and finally to its normal operation. In order for programs to locate ECI applications (i.e. tell whether they are running), each application must have a static Windows Class name. In doing so, programs can simply use FindWindow() to locate a given ECI application. See Table 2. Note that these class names are NOT translated.
TABLE 2
______________________________________
ECI Application Class Name
______________________________________
Operator Compaq Operator
TAM Compaq TAM
FAX Compaq FAX
Multimedia Sound System
Compaq MMediaSS
Card File Compaq CardFile
______________________________________
All hardware configuration information, serial port selection, etc. will be recorded in Plug and Play BIOS. Given the hardware dependency of this project, the software will refuse to run unless the conditions in Table 3 are met. These conditions are in addition to any file, DLL, driver, etc. dependencies the software may have. If any test fails, the software will produce an applicable error message in a standard MessageBox() and then exit.
TABLE 3
______________________________________
Condition Application
______________________________________
Running on a Compaq PC
All
Windows version 3.1 All
Bombay modem / TAM audio driver
FAX.TAM
present
ESS Audio Driver / hardware
TAM, Media Rack
present
Speaker(s) present TAM, Media Rack
______________________________________
In order to coordinate access to the ESS audio hardware, all applications must use a similar method for controlling their audio settings. We have tentatively chosen Microsoft's MSMIXMGR.DLL from windows Sound System 2.0. The TAM application manages the voice portion of the Bombay modem and also implements voicemail (the answering machine appliance). This paper describes the software's functional characteristics. The actual technical information needed to implement the code may be found in several sources: The Bombay Modem Functional Specification (Compaq). The Bombay TAM Audio Driver Functional Specification (Compaq). Windows Multimedia Programmer's Guide (Microsoft). Windows Multimedia Programmer's Reference (Microsoft). Despite its fairly straightforward appearance, this application may be difficult since it uses several system components at once: the call discriminator/serial port arbitrator, the sound card via Windows MCI, the Bombay audio DSP via Windows MCI, and the actual Bombay modem itself. The chart of FIG. 9E shows the relationship between the components. Essentially both the ESS audio chip and the Bombay TAM DSP will be driven via Windows' MCI WAV series. By opening the appropriate device via Windows MCI services, the application can direct output to, or receive input from either the ESS or Bombay. The ESS chip manages the PC's speakers (2-speakers, stereo) and built-in microphone. Bombay TAM DSP provides access only to the handset speaker and the microphone and to the local Telco wire service. While TAM's restored window looks like FIG. 7A, the application runs in a traditional Windows dialog box and supports the controls shown in Table 4.
TABLE 4
______________________________________
Control Yes No
______________________________________
Restore .about.
Move .about.
Size .about.
Minimize .about.
Maximize .about.
Close .about.
Switch To . . . .about.
______________________________________
The graphic always appears center screen and can be moved or iconized (but not sized). It can be viewed from the Windows shell, from the ECI shell, or via the ECI Address Book application. Note that when the Address Book launches the TAM application, it always provides a telephone number to dial. Only one instance of the TAM application may be running at a time; however, additional instances may run long enough to tell the first instance to dial the number. From this screen, the user can take or place calls, consult the Address Book, listen to messages, record memos to other family members, or access other features via the Mailboxes button. We will cover each topic individually. To place a call, the user simply provides a phone number and presses the Dial button. Users may choose dial digits by: Clicking digits on the GUI's phone pad: Each digit appears in the LCD status bar. When the user presses Dial, the modem goes offhook and the number is dialed. The user presses Clear to erase the bar and start over. Pressing numeric keys on the keyboard: Each digit appears in the LCD status bar. When the user presses Dial, the modem goes offhook and the number is dialed. The user presses Clear to erase the bar and start over. Lifting the handset and dialing the complete number: Lifting the physical handset and pressing buttons will, of course, introduce dialtone and digits will be dialed as keys are pressed. When the receiver goes offhook, the application will erase any numbers already in the LCD status bar and begin echoing keys as they are pressed (by detecting their DTMF tones). Note that we cannot support only numeric characters in the phone number string! Some users will, no doubt, want to hook into a switch or centrex where alpha characters must be used to select lines, features, etc. Additionally, the user can dial from the Address Book by clicking the button showing the Address Book icon. Special note, we must be able to send DTMF from the keyboard, keypad graphic, or handset after connect to support dialing-up online services. (User must be able to tap on the C-UI keypad to send DTMF tones after a connect.) When the user finally presses Dial, the graphic changes to look like FIG. 7B. We will provide an animation sequence showing the handset lift of offhook when placing a call. As long as the phone is offhook, the controls are in the state shown in Table 5. The LCD bar shows information about the number being called. At a minimum, it shows the number dialed. At best, it should show the name of the called party. The name is available immediately when the user dials from the Address Book. When dialing from the keypad or handset, however, the application will have to look up the information in the Address Book once the Dial button is pressed. The user can terminate the call via the Hang Up button in either this application or in the Operator, at which time the window reverts to the "General" mailbox screen (FIG. 7A).
TABLE 5
______________________________________
Control State
______________________________________
All recording controls and
Grayed out - inactive
pushbottons
Clear, Dial/Answer and Address Book
Grayed out - inactive
buttons
Keypad Visible but inactive
Help Displays Help Screen
(TBD)
Speaker Volume Controls speaker volume
Hang up Terminates the call
Mute Mutes the microphone
Windows Close System Menu Command
Grayed out - inactive
______________________________________
When the Operator tells TAM to answer the phone and talk, the window moves to foreground in its current state (iconic or restored). The restored graphic is the same as the one shown in FIG. 7B. The Operator may, at some point, send two levels of CallerID information: (1) the basic information taken from the wire; and (2) reconciled information derived by looking up the number in the Address Book. In either case, the information is displayed in the LCD bar. Other than that difference, all the controls work the same as for placing a call. Hangup hangs up the phone, the volume controls adjust speaker and microphone volume, etc. The graphic for the Take a Message function looks just like FIG. 7B. It shows the main screen with the phone offhook and any available CallerID information shown in the LCD window. The difference, however, is that the TAM lets the user leave a voicemail message. Both sides of the conversation (the recordings and the caller's audio) may or may not be heard based on an option set in the Operator. TAM supports two modes at this point: voicemail mode and Owner mode. In Owner mode, the caller (after providing the password) can change greetings, listen to voicemail, change mailboxes, etc. We will cover that topic further below. For now, we will discuss only Voicemail mode. TAM supports a level mailbox structure for recording voicemail. It works by always declaring a mailbox as "ACTIVE"--that is, the active one will receive any voicemail left by the caller. By default, mailbox 0 (General) is active while voicemail is active. Table 6 describes the TAM's behavior while receiving voicemail.
TABLE 6
______________________________________
DTME
Step Action Command
______________________________________
1. Make mailbox 0 active
2. Begin playing active mailbox's greeting or WAV
file 8 if none defined
3. Honor DTMF command to stop greeting playback. If
#
heard, stop playback and go to step 5
4. Wait for playback to finish
5. Play RECORD TONE to signal start of recording.
Begin recording voicemail into active mailbox
6. Honor DTMF command to change mailboxes. If
0-9
heard, go to step 13
7. Honor DTMF command to stop recording. If heard,
#
go to step 17
8. Honor DTMF command to enter Owner mode. Ignore
*0nnnn-
sequences that timeout. If heard, go to step 20
*9nnnn
9. When recording complete, close file and add to
active mailbox.
10. Restore graphic, hang phone up, etc.
11. END OF CALL
13. Is specified mailbox valid?
14. YES: delete recording in progress and go to
step 1.
15. NO: delete recording in progress and go to
step 2.
17. Stop greeting playback
18. Go to step 5
20. Valid mailbox requested?
21. NO: delete recording in progress and go to
step 2
22. Valid password?
23. NO: delete recording in progress and go to
step 2
24. Delete recording in progress
25. Enter Owner Mode (see Remote Access discussion
later in this document)
______________________________________
The software supports ten voicemail boxes. Table 7 describes their attributes. Mailboxes are numbered 0 through 9. The numbers are significant ONLY when dealing with the DTMF commands; press 1 to leave a message for Suzy, 2 for Bob, and 3 for Leroy. Their three mailbox numbers are 1, 2, and 3, respectively. Mailbox 0 is always the default mailbox. Its default name is General and cannot be changed (no provision in the software). The user can create up to nine additional mailboxes. All mailboxes have an associated greeting file that plays when the mailbox is opened (when taking a phone call). Boxes 1-9 can be password protected to prevent other family members from listening to their messages. Mailbox 0 also has a password, but it is only used when listening to messages via DTMF remote access to prevent tampering.
TABLE 7
______________________________________
Mailbox Has Password Protected?
Can Leave
Number Default Name
Greeting?
Local Remote Memo
______________________________________
0 General Yes No Yes Yes
1-9 None (user Yes Yes Yes Yes
defined)
______________________________________
As you saw earlier, the main screen displays an LCD Status Bar, a small blinking dot, and a series of buttons. The dot is visible and blinking ONLY when there are unread (unlistened to?) messages in one of the mailboxes. By default, the General mailbox status is displayed. As the graphic shows, it contains two new messages. This format is always used to report the mailbox status: mailboxname: #NEW For example, they might say: Will's Mailbox: 2 NEW Mom's Stuff: 0 NEW The Next Mailbox button cycles to the next defined mailbox. If no others are defined, this button is invisible. Note that new messages (those not yet listened to) stay new until you listen to them. Further, new messages stay new until you leave the mailbox. Once they lose their new status, you must go to the Mailboxes screen if you want to access them again. More about that later. The buttons under the LCD display manipulate the messages in the named mailbox. If there are no new messages in a mailbox, the buttons are grayed out. Otherwise, Table 8 describes the relevant button actions.
TABLE 8
______________________________________
Button Action
______________________________________
Plays all new messages back to back, with 3 seconds
of silence in between
Plays the previous new message from the beginning
.box-solid.
Stops playback
Begins playing the next new message from the
beginning
Delete Deletes the message currently playing. This button
is grayed out if no message is playing. The button
is visible during message playback and for 3 seconds
of silence immediately after.
______________________________________
All mailboxes may be password protected. When the user presses one of these buttons in a protected mailbox (except General), they are prompted to enter the password as shown in FIG. 9F(a). If they provide the wrong password, they are notified via the MessageBoxo shown in FIG. 9F(b) and the button press is ignored. This sequence repeats each time they press one of the aforementioned buttons. Once they enter the correct password, they are not prompted again as long as they remain in the mailbox. Once they leave the mailbox, they must satisfy any password imposed on the new mailbox. Note that passwords are optional--some mailboxes may be protected while others are not. The General mailbox has a password that is used for remote access only. We never prompt for a password to access the General mailbox from the PC keyboard. Message playback is done via the PC speakers. Playing messages through the handset is not supported. To promote security, if the application is idle for 30 seconds, the screen returns to the General mailbox. (This feature needs to be implemented but inactive by default. Activate it via an INI file switch.) The actual timeout (seconds) should be configurable in an INI file but not in the GUI. The screen also has the buttons shown in FIG. 9G. Memos are useful reminders to other family members. For example, Mom could remind Dad to stop for milk and bread on the way home from work. To leave one, just press a "Next Mailbox" (FIG. 9H(a)) button to move to the desired mail box. Then press the "Memo" (FIG. 9H(b)) button (no password is required). A screen like FIG. 8C appears superimposed on the main screen with the handset visible. The mailbox name is displayed at the top of the screen. The object is to leave a voicemail just as if it had been taken from the phone line, except the words "Memo" will replace the data ordinarily left by CallerID. A waveform drawing at the top would be nice, but not required. Optionally, an LCD bar similar to the VU meter on home cassette recorders might be used. The object is to give the user some entertainment/feedback while the memo is recorded. The buttons listed in FIG. 9I are active. When the user presses the Record button, the handset lifts off the cradle (as it does when taking a call) and exposes the Hang Up and Mute buttons and the Mic Volume control. The Mute button is grayed out and inactive--the others work as intended. The PC's built-in microphone is used for input and the PC's speakers are used for playback. We do not support playback or recording via the handset. Recording or playback halts if the handset is lifted. If recording, the partial message is deleted. Pressing the Mailboxes button on the main screen brings you to the Mailbox Maintenance level. Here you can move among the mailboxes, read, move, and delete messages, create greetings, and assign passwords. The graphic looks like FIG. 8A. On entry, the LCD bar is empty and the listbox shows all the defined mailboxes. Note that both the mailbox name and number are shown. The controls listed shown in FIG. 9J are used. As you scroll the listbox, each highlighted mailbox name, in turn, is displayed in the LCD bar and the total number of messages in each box is displayed in the small box on the right. In FIG. 9J, YES in the "Prompts for Password" column means the software prompts for the mailbox password before allowing this function. The password is requested only once. If it fails, the last accessed mailbox remains active. If successful, the new mailbox becomes active and the user is not prompted again until they select another mailbox. As before, to promote security, if the application is idle for 30 seconds, the screen returns to the General mailbox. Recording a greeting is almost exactly like leaving a memo. The greeting is applied to the selected mailbox A screen like FIG. 9K is used. Again, the mailbox name is displayed at the top of the dialog box; the same buttons are used, and work exactly as they did for Memos. The Save button saves the current greeting; the Cancel button returns to the previous screen, leaving the existing greeting intact. The Find File button invokes a standard Windows Find File dialog box that they can use to locate a .WAV file to use as the greeting. The selected file is copied into the pseudo-greeting file for this mailbox--do not simply point to the .WAV file. As before, the waveform drawing at the top would be nice, but is not required. Optionally, an LED bar similar to the VU meter on home cassette recorders might be used. The object is to give the user some entertainment/feedback while the memo is recorded. Once in a mailbox, you may set or change its password. Clicking the Password invokes a dialog box like FIG. 9L. The user may now type a 4-byte numeric password for the mailbox. Two boxes are provided--type it once, then type the same digits again to verify the original. Standard OK and Cancel buttons are used to exit this dialog box; Cancel means return and do not change the password, and OK means save and apply the password. When they press OK, we must insure that the two editboxes contain the same value. If not, a MessageBoxo like FIG. 9M is displayed. When they press OK, both editboxes are cleared and the user must type both values again. Note that we said passwords must be exactly four-numeric characters. If a non-numeric character is typed or if a password is not exactly four bytes long, the dialog box like FIG. 9N is displayed. When they press OK, both editboxes are cleared and the user must type both values again. Users can add a new mailbox simply by clicking Add Mailbox. A dialog box like FIG. 9O appears. They simply type the new mailbox name and press OK. The new mailbox is assigned the next available sequential number. No greeting file or password is assigned--the user may perform those actions via the buttons on the Mailbox Maintenance screen. Note that the Add Mailbox button is invisible if all ten mailboxes are defined. To delete the selected mailbox, simply click Delete Mailbox. A confirmation dialog box like FIG. 9P is displayed. The user may confirm by pressing OK or abort by selecting Cancel. Note: when you delete a mailbox, you also implicitly delete all the messages it contains. Note that this will leave "holes" in the mailbox numbering. If you have boxes 3, 4, and 5 and delete 4, boxes 3 and 5 remain. We must do this in order in insure that the remote DTMF commands still match the instructions in mailbox greetings. A user can access messages by highlighting a mailbox name (in the mailbox screen) and pressing the Messages button, as shown in FIG. 8B. Initially the LCD bar is blank. Messages are shown in the listbox; the small "letter" icon to the left of some means they are NEW (unlistened). From here, the user can select one or more messages and do what is shown in FIG. 9Q. Where CallerID is not available, a message description will contain only the timestamp when it was recorded. Memos will simply say "Memo". This button lets the user enter a description for the selected message. A dialog box like FIG. 9R is used for each selected message. The current message description appears at the top of the box followed by instructions to enter a short description. The user may type a new description in the editbox--it is not scrollable. When the user presses OK, the message description is updated as follows: 2/22/94 11:01 <USER INPUT>Note that the timestamp cannot be edited. If the user selects Cancel, the message description is not changed. Users can move one or more messages to another mailbox by selecting them and pressing Move. A dialog box like FIG. 9S appears. Mailbox names appear in the scrollable listbox. The user can select a mailbox and press OK or double-click a mailbox to move them. When the operation is complete, they are returned to the Messages screen. Cancel cancels the operation and no files are moved. Earlier we talked about someone calling in to leave voicemail. We also said that certain DTMF commands (*0nnnn-*9nnnn) let you enter Owner Mode. This mode lets you play back voicemail and do other maintenance chores. The graphic for this function looks just like the one used for voice-mail. It shows the main screen with the phone offhook and any available CallerID information shown in the LCD window. Both sides of the conversation (the recordings and the caller's audio) may or may not be heard based on an option set in the Operator. Table 9 describes the TAM's behavior while in Owner Mode:
TABLE 9
______________________________________
DTME
Step Action Command
______________________________________
1 Active mailbox was set by previous DTMF
command (see step 20 in previous state table)
Play WAV file 9 or 10 as appropriate
2. Is disk space within preset thresholds
(Operator Option)?
YES: Play WAV file 3 or 4 as appropriate
3. Honor DTMF command to stop playback. If
#
heard, go to step 5
4. Play WAV files 11, 12, 14, 15, 16
5. Honor DTMF command to change Owner mailbox.
*0nnnn-
Ignore sequences that timeout. If heard, go
*9nnnn
to step 17
6. Honor DTMF command to record a new greeting
2
for active mailbox. If heard, go to step 24
7. Honor DTMF command to pay current greeting for
4
active mailbox. If heard, go to step 24
8. Honor DTMF command to play new messages in
6
active mailbox. If heard, go to step 28
9. After ? seconds of silence, or if caller hangs
up, hang up, reset graphics, etc.
10. END OF CALL
12. Honor DTMF command to stop recording. If
#
heard, go to step 14
13. Play WAV file 5.
Begin recording greeting for active mailbox
14. When recording complete, close and save file;
update pointers, etc.
15. Go to step 2
17. Valid mailbox requested?
18. NO: play WAV file 1 and go to step 3
19. Valid password?
20. NO: play WAV file 2 and go to step 3
21. Specified mailbox becomes active
22. Go to step 3
24. Honor DTMF command to stop playback. If
#
heard, stop playback and go to step 3
25. Begin playing greeting for active mailbox
26. When complete, go to step 3
28. Honor DTMF command to stop playback. If
#
heard, go to step 30
29. Play first new (unlisted) message
30. Play WAV files 11, 12, 13, 14, 15, 16, 17
31. Honor DTMF command to delete last message
3
played. If heard, go to step 42
32. Honor DTMF command to play next new message in
6
active mailbox. If heard, go to step 39.
Honor DTMF command to play message again. If
7
heard, go to step 45
33. Honor DTMF command to change Owner mailbox.
*0nnnn-
Ignore sequences that timeout. If heard, go
*9nnnn
to step 17
34. Honor DTMF command to record a new greeting
2
for active mailbox. If heard, go to step 12
35. Honor DTMF command to play current greeting
4
for active mailbox. If heard, go to step 24
36. After ? seconds of silence, or if caller hangs
up, hang up, reset graphics, etc.
37. END OF CALL
39. Remove NEW status for last message played
40. More messages?
YES: Go to step 28
NO: Play WAV file 9 and go to step 2
42. Delete last message played
43. Play WAV file 7
44. Go to step 3
45. Play last message again
______________________________________
When in Owner Mode, WAV files are played across the phone to help the user navigate and to report system status. The messages shown in Table 10 have been identified. In some cases (specifically steps 4 and 30), several WAV files must be played back to back in order to present the entire range of choices.
TABLE 10
______________________________________
WAV
File Meaning Sentence
______________________________________
1 User tried to enter an
"That mailbox number is
invalid mailbox invalid"
2 Incorrect password given
"Password incorrect --
for mailbox access
access denied"
3 First disk space threshold
"Your hard disk is nearly
has been reached (see
full"
Operator Options dialog box
description)
4 Second disk space threshold
"Your hard disk is full.
has been reached (see
The answering machine
Operator Options dialog box
cannot take any new
description) messages."
5 Tells how to begin and stop
"Begin recording your
recording a greeting
greeting when you hear the
tone."
6 Greeting not found for this
"This mailbox has no
mailbox greeting."
7 Last message has been
"Message deleted."
deleted
8 Simply tells user to leave
"Please leave a message
a message at the tone.
when you hear the tone."
Used when there is no
microphone attached.
9 Tells the owner that there
"There are no new
are no messages in the
messages."
current mailbox.
10 Tells the owner that there
"You have new messages."
are messages in the current
mailbox
11 Prefix to "Press #### to
"Press"
########" sentences.
12 Press # to record a new
"two to record a new
greeting greeting."
13 Press # to delete the last
"three to delete this
message message."
14 Press # to play greeting
"four to play the
greeting."
15 Press # to play next
"Six to play the next
message message."
16 Press # to change Owner
"To change mailboxes,
mailbox press star, then the
mailbox number, then the
password."
17 Press # to play the last
"seven to play the last
message again message again."
18 Tells caller they can't
"Sorry, the answering
leave a message because the
machine's tape is full."
disk is full.
______________________________________
In order for programs to locate ECI applications (tell whether they are running), each application must have a static Windows Class name. In doing so, programs can simply FindWindowo to locate a given ECI application. See Table 11. Note that-these class names are not translated.
TABLE 11
______________________________________
ECI Application Class Name
______________________________________
Operator Compaq Operator
TAM Compaq TAM
FAX Compaq FAX
Multimedia Sound System
Compaq Mmediass
Card File Compaq CardFile
______________________________________
All hardware configuration information, serial port selection, etc., will be recorded in Plug and Play BIOS. Given the hardware dependency of this project, the software will refuse to run unless the conditions of Table 12 are met. These conditions are in addition to any file, DLL, driver, etc. dependencies the software may have. If any test fails, the software will produce an applicable error message in a standard MessageBoxo and then exit.
TABLE 12
______________________________________
Condition Application
______________________________________
Running on a Compaq PC
All
Windows version 3.1 All
Bombay modem/TAM audio driver
FAX, TAM
present
ESS Audio Driver/hardware present
FAX, TAM, Media Rack
Speaker(s) present TAM, Media Rack
______________________________________
Note that this application is somewhat different in that it contains two tightly-knit applications--a speakerphone and an answering machine. Its functionality must change somewhat, depending on the customer's speaker and microphone arrangement as indicated in Table 13. The ECI Setup utility must prompt the user for their speaker/microphone configuration and set flags to tell the TAM software how to act. When acting as an Answering Machine only, the keypad, Clear, Dial, and Address Book buttons are nonfunctioning. Additionally, when no microphone is installed, the memo and greeting Rec(ord) buttons are nonfunctioning.
TABLE 13
______________________________________
Speaker/Microphone Configuration
Functionality
______________________________________
Speakers and microphone fully
Full functionality
integrated in PC (Sun Valley)
Speakers and microphone inte-
Full functionality
grated in Compaq monitor
(future)
External microphone and speakers
Answering Machine only. NO
SPEAKERPHONE. Can record greet-
ings and memos via external
microphone.
External speakers, no microphone
Answering Machine only. NO
SPEAKERPHONE. Cannot record
greetings (must used canned
ones) or record memos.
No speakers Application refuses to run
______________________________________
In order to coordinate access to the ESS audio hardware, all applications must use a similar method for controlling their audio settings. We have tentatively chose Microsoft's MSMIXMGR.DLL from Windows Sound System 2.0. In order to conserve disk space, the TAM should have the capability of compressing messages (those left by callers) before they are made accessible to the user. The most likely choice of compression algorithm will be Microsoft TrueSpeech, from the Microsoft Windows Sound System 2.0 SDK. In preparation for this feature, we offer the following architectural suggestion: 1. Save messages, uncompressed, into a temporary holding area--essentially a directory beneath the TAM directory. 2. Create a process that periodically checks the directory for files. When an uncompressed file is found, it compresses it, copies it to the "real" mailbox directory, and then deletes the original. The user can access the file only when it appears in the mailbox directory. 3. When a caller leaves a message, send a (Windows) message to the process to alert it to the file's presence. This will let it work on demand, while the timed polling is used for cleaning up files left over from reboot. Compression can be turned on and off via the Operator's Answering Machine Options screen. Note that the setting affects recording only--playback must work on either compressed or uncompressed files regardless of the switch setting. The ECI FAX machine is adapted from Eclipse FAX SE. Based on talks with Phoenix, Future Soft, and Compaq Product Marketing, we found that SE contains nearly all of the functionality we want in a FAX application. The goal of this project is to port much of SE to a GUI that meets our ECI requirements, yet maintains much of the existing product's functionality. The software supports most of the basic features that SE provides: FAXes organized into two "folders" or tabs. Integrated text editor. Optional user-defined editor. Ability to annotate and forward a FAX. Add clipart, letterhead, signatures, logos, etc. via drag and drop. Schedule for immediate or deferred delivery. Send to individual or group. Create and maintain groups of frequently used FAX numbers. Maintain a log of all sent and received FAXes. When invoked, the screen looks like FIG. 9A. The application is displayed in a traditional Windows dialog box and supports the controls listed in Table 14.
TABLE 14
______________________________________
Control Yes No
______________________________________
Restore .about.
Move .about.
Size .about.
Minimize .about.
Maximize .about.
Close .about.
Switch to .about.
______________________________________
The main screen shows two tabs, IN Box and OUT Box, which alternate between sent FAXes, respectively. Member FAXes are shown in the listbox; their description includes their current status, the time and date they were last handled, and the originator/recipient's name (if known). FAX status is reported using the words shown in Table 15. The controls shown in Table 16 are used.
TABLE 15
______________________________________
Status Meaning Goes In
______________________________________
Received FAX was received completely -- no errors
IN Box
Incomplete
FAX was partially received -- last page
IN Box
incomplete or pages missing
Sent FAX was successfully sent
OUT Box
Pending FAX is waiting to be sent
OUT Box
Aborted FAX could not be sent -- no answer,
OUT Box
hardware failure, etc.
______________________________________
The Print Log command prints the log entry for the selected FAX(s). The output may contain one or more of the following fields: Status--Received, Incomplete, Sent, Pending, Aborted. FAX Number--Lists the recipient or sender's FAX number. Pages--Number of pages. Duration--Time required to send/receive this FAX. Description--User-supplied text. Set via Change Label button. Filename--The TIF file's complete path and name. The Print Log dialog box (SEE FIG. 14A) lets the user choose which fields they want to see. Initially, all boxes are checked--you get everything. Just uncheck the things you don't want and press OK to start printing. Settings are saved from one invocation to the next and, on subsequent invocations, are reset according to preference. The Print FAX command (see FIG. 14B) prints the selected FAX(s) on the current printer. It lets you choose the whole document or selected pages, and also provides full-page or thumbnail output. Printer Setup is accessible from both the Print Log and Print FAX dialog boxes. It launches a dialog box like FIG. 14C that lets the user choose a printer for subsequent printing. It contains the usual printer setup and options screens (as in Control Panel). The Details command invokes a dialog box like FIG. 14D containing information about the selected FAX, whose controls/fields are shown in Table 17.
TABLE 17
______________________________________
Control Type Purpose
______________________________________
FAX Text - not editable
Causes incoming FAXes to be shown
in the listbox
Type Text - not editable
Displays the compression model
used to store the file
File: Text - not editable
Displays the TIFF file's
complete path and name
File Specs:
Text - not editable
Displays the file's proper-
ties (resolution)
Status: Text - not editable
Received. Incomplete. Sent.
Pending. Aborted
Pages: Text - not editable
Number of pages
Duration:
Text - not editable
Time required to send/receive
this FAX
Description:
Editbox By default, contains CallerID
(received FAXes) or recip-
ient's name (sent FAXes).
User can change the
description.
Save Button Button is active if the user
changes the FAX description.
When selected, saves the new
description and returns to
the previous screen.
Cancel Button Discards any changes made to
the description and returns
to the previous screen.
Help Iconic Button
Displays online help
______________________________________
The Delete command lets you delete the selected FAX. The FAX name (label) is shown at the top of the dialog box (FIG. 14E). Two mutually exclusive radio buttons lets them delete both the FAX and the log entry or the FAX (TIFF file) only. By default, both will be deleted. The whole process of creating a FAX is somewhat unnerving to novice users. Traditional FAX software gives you no clue as to what steps are required, the order, or exactly when you are in the process. ECI addresses this problem by presenting a Checklist when you start to Create a FAX. The checklist details the required steps and, as its name suggests, uses a checkmark for each completed step. The screen looks like FIG. 9B. Buttons are used to invoke each step. Send is grayed out until all required steps have been completed. Note that some steps say "Optional". In fact, the only required steps are Enter Text and Choose Recipients. To "work on" a step, the user simply clicks the associated button. Upon return, a checkmark appears in the box to let the user know they have completed that step. Users may perform each step an arbitrary number of times while preparing a FAX. In other words, they may choose recipients, go edit the text, choose more recipients, add more text, etc. until ready to send. Data is maintained between steps, but not between FAXes. Note that the Address Book icon is visible but inactive on this screen (FIG. 9B). This checklist screen becomes a hub that ties all the FAX-creation steps together as shown in FIG. 14F. Although the steps are presented in a sensible, preferred order, the user should be able to do any step, in any order, as many times as they like. Subsequent steps must adjust to account for the data (or lack of) provided by previous steps. For example, if they go first into Page Layout, only a blank page will show. If they choose a coversheet and then Page Layout, the rasterized coversheet will show. The following paragraphs document the behavior of each step. One of the prompts in the Operator application's FAX Options screen lets you choose between the "built-in" editor and one of your own. When this button is clicked, the user's editor-of-choice is launched. By default, the built-in one, shown in FIG. 14G, is used. It is a simple edit-box control that supports text only. By its nature; it supports Clipboard cut and paste via traditional Windows keychords. On the first invocation, the editbox is blank. Subsequent invocations show the last text block the user saved. Press Save to save changes and return to the checklist screen, or Cancel to disregard changes and return. Note that when the user clicks Save, the editbox content is transparently printed on the proverbial Fax Printer Driver. If the user's own editor was launched, they have the burden of manually selecting the FAX driver and printing the document--just like in the "olden days". When an external editor is used, the application remains on the Checklist screen. Again, the Address Book icon is inactive on this screen. The Choose Cover Sheet button lets you choose a FAX coversheet from your "collection". As we can do elsewhere in Ed, we need to create and maintain a directory (collection) of coversheets from which the user can choose. Our goal is to provide at least two or three samples per language. Coversheets may be standard Windows .BMP files or TIF files. The screen looks like FIG. 14H and has a listbox that contains all the coversheets in the collection. As you scroll about the list, each coversheet is opened and displayed in the large box on the right. This lets the user see what each one looks like before choosing one. On first invocation, "NONE" is selected. On subsequent invocations, the user's current choice is selected and the file (if any) is displayed. Again, press Save to return to the Checklist screen or Cancel to retain the previous cover sheet. Note that a Find File button is also available. It invokes a standard Windows Find File common dialog box that lets you hunt for a file. Once found, the file is added to the collection and is, thereby, available in subsequent sessions. The Select Recipients screen lets you build the FAX's address list. Two modes are supported: individual and group FAX. Individual, of course, simply means one FAX--one recipient. Group FAX lets you queue a FAX to multiple addresses. The screens look like FIGS. 14I and 14J. The GUI alternates between these two screens based on the state of the Individual and Group radio buttons. By default, individual is always selected. Note that data should be retained between modes. In other words, click Individual, add data, click Grout, click Individual again and the data you typed is still there. Table 18 shows the controls available.
TABLE 16
______________________________________
Control Type Action
______________________________________
Individual
Radio Inactive while in Individual Mode. In
Button Group Mode, switches screens back to
Individual Mode.
Group Radio Inactive while in Group Mode. In
Button Individual Mode, switches screens back
to Group Mode.
Cancel Button Returns to the Checklist screen with no
changes.
Save Button Saves addressee data and returns to the
Checklist screen.
Address Book
Button Invokes the ECI Address Book.
Help Button Displays online help.
Individual Mode
Add to Button Adds the data currently in the fields
Address Book to the ECI Address Book. Record is
added in the alpha tab corresponding to
the first character of the last name.
Therefore, the button is grayed out
until the last name field is provided.
Blank fields are not updated.
Last Name Editbox See * below
First Name
Editbox See * below
Company Editbox See * below
Address Editbox See * below
Voice Editbox See * below
Fax Editbox See * below
Group Mode
Delete Group
Button Deletes the group named in the Group
Listbox.
Create Group
Button Creates the group named in the Group
Listbox.
Group Listbox
ComboBox (1) Lists the defined group names, (2)
lets the user enter a new group name.
Group Listbox Lists the members of the group named
Members in the Group Listbox.
FAX Listbox Lists the names of people who will
Recipients receive a copy of this FAX.
Add Button Adds the selected name from the Group
Members listbox to the FAX Recipients
listbox.
Add All Button Adds all names from the Group
Members listbox to the FAX Recipients
listbox.
Remove Button Removes the selected name from the
FAX Recipients listbox.
Remove All
Button Removes all names from the FAX
Recipients listbox.
______________________________________
* The properties of all fields in the Individual recipient record match
the corresponding fields in the ECI Address Book application.
In Individual Mode, only the FAX number field is required. Other fields are optional but mirror those used in the ECI Address Book. The user can click the Address Book icon (to invoke the ECI Address Book) and select a name. Upon return, all available data is inserted into the appropriate edit fields. Group Addressing is very flexible: The Group Name combobox lists all the user-defined groups plus a default one called Everyone (discussed later). The Group Members listbox contains the names of all members in the selected group. The FAX Recipients listbox will list the names of everyone who is to receive a copy of this FAX. The object of the game is to choose names from the Group Members box and copy them to the FAX Recipients box. You do it by highlighting Group Member names and pressing Add to add them to the recipient list. Similarly, you can high-light a name in the recipient list and press Remove to remove it. The Add All button adds all names in the members list to the recipients list. Conversely, the Remove All button removes all names from the recipient list--effectively emptying it. The user can add names from one group, select another group and add more names, etc. until the recipient list is complete. A byproduct of this process can easily be a new group (subsets or supersets of other groups). To save a group, just type the new name in the Group Name combobox and press Save Group. Similarly, you can press Delete Group to delete the selected group. It responds with a typical Windows MessageBox(), like FIG. 14K, asking confirmation. Now, let's take a small step backward. Upon entry, a group called Everyone is displayed. This group is always available and references all entries in the ECI Address Book that have FAX numbers. Besides that, it serves as a launching pad for creating new groups. While the Everyone group is selected, the Save Group and Delete Group buttons are grayed out (e.g., you cannot delete the Everyone group). When you are finished creating the recipient list, just press Save Changes to go back to the Checklist screen. The Add Graphics screen lets the user see FAX pages as they will be transmitted (FIG. 14L). On entry, all available text, clipart, etc. is rasterized and placed on the pages in rubber band boxes. Boxes can be sized and moved (drag-n-drop) to new locations. Controls for the screen of FIG. 14L are shown in Table 19. Tool controls for FIG. 14L are shown in Table 20.
TABLE 19
______________________________________
Control Type Action
______________________________________
Left Arrow
Button Displays the previous page.
Inactive when page 1 is shown for a
1-page FAXes.
Right Arrow
Button Displays the last page. Inactive
when the last page is shown and for
1-page FAXes.
Help Button Icon
Displays online help (TBD)
Address Book
Button Icon
Inactive
Clip Art Button Lets the user choose clip art (see
discussion below).
Checklist Button Saves changes and returns to the
Checklist screen.
Cancel Button Discards changes and returns to the
Checklist screen.
______________________________________
The Clip Art button lets the user select clip art to appear in the current FAX page. It launches the dialog box like FIG. 14M. The Clip Art Library is a collection of TIF or BMP clipart files. It's where we will provide sample coversheets, cool pictures, logos, etc. The user can scroll about the listbox--each highlighted file is displayed (thumbnail) in the box on the right to let the user sample each one. Both BMP and TIF file formats should be supported. This provides a variety of ways for users to create and edit their files. To use a file, just click Paste. To return without selecting a file, click Close. To add a file to the collection, press Find File to launch a standard Windows Find File common dialog box. If a file is selected, it is added to the "collection", the listbox is updated, and it is selected and displayed. When Paste is selected, the selected file is superimposed on the active FAX page, center screen, in a rubber band box like FIG. 14N. The user can drag-n-drop the box to move the object, or they can resize it by dragging the size boxes. Note that "center screen" assumes the object is applied to a standard 81/2.times.11 page. The file itself could consume the entire page--for example, a form letter or company stationery. Oversize images should be shrunk, proportionally, to fit on the page. A Schedule Delivery screen like FIG. 14O lets you choose when the FAX is to be sent--ASAP (now) or at a specified time and date. While the other screens overlay the main graphic, this screen is a simple pop-up dialog box since it is so small. The only consideration for this screen is time/date presentation. The format must follow the user's choice in Control Panel--12/24 hour clock, date format, separator characters (:and/), and am/pm labels. The Send command is available from the main screen (while Inbox and OUTbox contents are showing) and is used to forward a FAX to another individual/group. This command works exactly like Create FAX, with the following exceptions: The Enter Text choice is removed, or possibly Checked and inactive. The complete FAX includes the original coversheet. User can go into Add Graphics and use the toolbar to annotate the FAX. Select Recipients and Schedule work as before. When you select a FAX and press Forward (on the main screen), you essentially perform the same steps as creating a new FAX, except the rasterized image of the original FAX is appended to the new one. A slightly modified Checklist screen (like FIG. 9C) is used for forwarding a FAX. The View command is available from the main screen (while the Inbox and OUTbox contents are showing) and is used to view a FAX. The screen looks like FIG. 9D. This is the same basic screen as create FAX's Add Graphics page viewer with the edit controls removed. Controls for FIG. 9D are shown in Table 21.
TABLE 21
______________________________________
Control Type Action
______________________________________
Left Arrow
Button Displays the previous page. Inactive
when page 1 is shown and for 1-page
FAXes.
Right Button Displays the next page. Inactive when
Arrow the last page is shown and for 1-page
FAXes.
Help Button Icon
Displays online help (TBD)
Address Button Icon
Inactive
Book
Tools Button Launches the viewer toolbar (see below)
Magnifying
Button Click On/Off. Zooms in on the selected
Glass item. Other buttons are inactive until
the button is clicked again (screen is
normalized).
Rotate Button Rotates the image 90 degrees right.
Close Button Returns to the main screen
______________________________________
We will not discuss the FAX Engine's behavior in this specification since the Eclipse engine is complete and essentially behaves as intended. We anticipate that the engine will show its own dialog box containing relevant progress messages as FAXes are received and sent. Note, however, that the FAX engine must support sending FAXes both from the ECI GUI and from the traditional way of printing to the FAX driver. When someone prints to the FAX driver from outside the ECI GUI, the checklist should appear with the "Edit Text" button checked. The user can complete the other steps via the checklist. In order for programs to locate ECI applications (tell whether they are running), each application must have a static Windows Class name. In doing so, programs can simply use FindWindow() to locate a given ECI application. See Table 22. Note that these class names are NOT translated.
TABLE 22
______________________________________
ECI Application Class Name
______________________________________
Operator Compaq Operator
TAM Compaq TAM
FAX Compaq FAX
Multimedia Sound System
Compaq Mmediass
ECI Address Book Compaq Address Book
______________________________________
All hardware configuration information, serial port selection, etc. will be recorded in Plug and Play BIOS. Given the hardware dependency of this project, the software will refuse to run unless the conditions of Table 23 are met. These conditions are in addition to any file, DLL, driver, etc. dependencies the software may have. If any test fails, the software will produce an applicable error message in a standard MessageBoxo and then exit.
TABLE 23
______________________________________
Condition Application
______________________________________
Running on a Compaq PC
All
Windows version 3.1 All
Bombay modem / TAM audio
FAX, TAM
driver present
ESS Audio Driver / hardware
TAM, Media Rack
present
Speaker(s) present TAM, Media Rack
______________________________________
In order to coordinate access to the ESS audio hardware, all applications must use a similar method for controlling their audio settings We have tentatively chosen Microsoft's MSMTXMGR.DLL from Windows Sound System 2.0 FIG. 15A describes the operation of each of the controls on the MiniPilot remote control. FIG. 15B describes the operation of each of the controls on the TV remote control.
|
Same subclass | ||||||||||
