US006028643A

United States Patent 19 11 Patent Number: 6,028,6439 9

Jordan et al. 45 Date of Patent: Feb. 22,9 2000

54 MULTIPLE-SCREEN VIDEO ADAPTER 0574 748 A2 12/1993 European Pat. Off.. WITH TELEVISION TUNER O 579 402 A1 1/1994 European Pat. Off.. WO 93/21574 10/1993 WIPO. 75 Inventors: Douglas A. Jordan, Lawrenceville; WO 97/04382 2/1997 WIPO. Bruce L. Biskey, Cumming; Ezra Mintz, Atlanta; Thomas D. Young, OTHER PUBLICATIONS Grayson, all of Ga. O O International Search Report in corresponding International 73 Assignee: Color:graphic Communications Application No. PCT/US98/18149 dated May 27, 1999. Corporation, Atlanta, Ga. Annex to Form PCT/ISA/206-Communication Relating to 21 Appl. No.: 08/922,614 the Results of the Partial International Search dated Jan. 20, y - - - 9 1999. 22 Filed: Sep. 3, 1997 51 Int. Cl." ...... H04N 7/00; H04N 5/445 Primary Examiner. Sherrie Hsia 52 U.S. Cl...... 348/552; 348/569; 348/553 Attorney, Agent, or Firm-James L. Ewing, IV, Kilpatrick 58 Field of Search ...... 348/552, 553, Stockton LLP 348/555, 563, 569; H04N 5/445, 7/00 57 ABSTRACT 56) References Cited Video adapter hardware and Software permitting the display U.S. PATENT DOCUMENTS of computer information and television Signals acroSS Sev eral display devices. The Video adapter hardware includes s 3.E. this et al. . two graphics user interface accelerators, two television so45946 3. 991 alaa tuners, one or more Video decoders, and one or more video 5.140425 sf1992 Yamaguchi et al multiplexers. Each accelerator is coupled to a memory unit 5285,284 2/1994 Takashima et al. for access to graphics data. One television tuner accepts 5.434624 7/1995 Ishimura. input from an outside television Source, Such as a cable 5,438,372 8/1995 Tsumori et al.. television company or a Video cassette recorder. In addition, 5,448,315 9/1995 Soohoo. the Video multiplexerS accept input from other external 5,502,808 3/1996 Goddard et al.. video sources. Video data is output from the graphics 5,504,535 4/1996 Abe. accelerators to multiple Screens. Video adapter Software 5,557,342 9/1996 Eto et al.. displays a tool window allowing the user to Select first input 55948505,592,234 1/1997f1997 GardnerPalmer et et all all 395/330 for the first display device and a Second input for the Second 5,606.656 2/1997 Yamaguchi ------display device. The software displays the results of the two 5,610,663 3/1997 Nan et al. inputs on the respective display devices. If the inputs are 5,615,338 3/1997 Poole et al.. identical, however, the information may be displayed acroSS both display devices. FOREIGN PATENT DOCUMENTS O 553 549 A1 8/1993 European Pat. Off.. 25 Claims, 26 Drawing Sheets

21s

MEMORY c PERMANEMT BRIDGE

235 28S Gl wedpe

224 239 25 MEMORY, POWER 4 supply MAYT U.S. Patent Feb. 22, 2000 Sheet 1 of 26 6,028,643

13O 1OO \ DISPLAY 1 11 O

14O

15O DISPLAY 2

VIDEO ADAPTER 137

VIDEO CASSETTE RECORDER

139

CABLE TELEVISION CONNECTION

16 O

MOUSE 1 O 4

VIDEO ADAPTER 125 SOFTWARE A/G 7 1 O2

CPU U.S. Patent Feb. 22, 2000 Sheet 2 of 26 6,028,643

215

MEMORY, 15O 4. MEGABYTE A/G 2 237 21O

GUI VIDEO ACCELERATOR DECODER

22O

MEMORY PC PERMANENT BRIDGE

24O

GU WDEO ACCELERATOR DECODER

224 239

225 MEMORY, POWER 4. SUPPLY MEGABYTE U.S. Patent Feb. 22, 2000 Sheet 3 of 26 6,028,643

245 VIDEO CONNECTION MONITOR FOR AUDIO NTERFACE 8 VDEO COMPONENTS VIDEO 237 MONITOR 2

26O

TUNER TV SOURCE

28O

VIDEO TYPE AN 1 VIDEO TYPE AN 2

29 O - VIDEON5Ex

2

239

AUDIO INDEX

AND HAB853E St

A/G 24 SOUND AUDió MASTER

o PROCESSOR OUT

VIDEO MONITOR VIDEO MONITOR INTERFACE COMPONENTS

255

U.S. Patent Feb. 22, 2000 Sheet 4 of 26 6,028,643

312 3OO

OTWINTUNA / OOX) FILE VIEW HELP

VIDEO WINDOW O 64O X 48O CH:O2 a 322 324 326 32O

A/G 3 U.S. Patent Feb. 22, 2000 Sheet 5 of 26 6,028,643

START APPLICATION

INTIAL VARBLES 4O4.

4O6 4O 8 4 O

A COPY OF EXIT TWN PROGRAM YES TUNER ALREADY APPLICATION

RUNNINGP

GET 412 VERSION OF OS

414 DISPLAY N

DRVER WINDOW WAIT FOR OPERATOR INSTALL IN NO "ERROR, DRIVER TO RESPONSE OK SYSTEM NOT INSTALLED" TO ERROR MESSAGE A DRIVER

DISPLAY IN

WINDOW FOR THIS Y-NO "ERROR, HARD- DRIVER NOT

WARE INSTALLED"

NITALIZE TO

424 DEFAULT SOURCE PATH. A/G 4

COPY THE SOURCE 426 DIRECTORY AND ADD THE FILE NAME.

U.S. Patent Feb. 22, 2000 Sheet 6 of 26 6,028,643

INITIALIZE APPLICATION, AND SHARED ITEMS, 5O2 (SUB C )

GO TO NT AZATIONT STEP4 O

5O 5

insifice HANDLE 5 O6 A/G 5

5O8

DISPLAY IN

DD WINDOW "ERROR, DLL DD NOT DLL LOAD LOAD. DLL MUST

NO BE IN THE SAME OK P DIRECTORY WITH TWNTUNA EXE"

514 512 513

GET ENTRY PONT TO DL - U.S. Patent Feb. 22, 2000 Sheet 7 of 26 6,028,643

DISPLAY IN WINDOW "ERROR, COULD NOT GET GO TO ENTRY POINT NO ENTRY POINT TO STEP 418 THE CONTROL ROUTINE"

YES

6O8 CALL INITIALIZE SUB OF DLL

DISPLAY IN WINDOW "ERROR, EVERYTHIN COULD NOT GO TO NTALIZE NO NT ALIZE STEP 418 HARDWARE

YES

GET 614 HARD WARE DEFAULT

SETTING.

DISPLAY IN

WINDOW "ERROR, DEFAULT COULD NOT GET GO TO SETTIN HARD WARE STEP 418 DEFAULTS "

SET UP 8. PANT BACKGROUND COLOR A/G 6

LOAD 624 GLOBAL FLAGS. U.S. Patent Feb. 22, 2000 Sheet 8 of 26 6,028,643

PERFORM NITIALIZATIONS THAT APPLY TO A SPECIFIC NSTANCE AND OFPEN MAN VIDEO WINDOW... ( SUB D )

DD

GO TO WE

STEP NT ALIZE NO 4 O OK P

7O8 YES O

GET THREADED WINDOW MESSAGE

HANDLE DALOG TRANSLATE DIS PATCH MESSAGE MESSAGE MESSAGE

YES 718

UNLOAD DLL A/G 7

CLEAN UP MEMORY 72O U.S. Patent Feb. 22, 2000 Sheet 9 of 26 6,028,643

PREFERENCES VTOOL WINDOW v STATUS BAR

VIDEO WINDOW O 64O X 48O CH:O2

A/6. 3 U.S. Patent Feb. 22, 2000 Sheet 10 of 26 6,028,643

9 O2

START SUB C NITAL APPLICATION

SET UP WINDOW 9 O 4 CLASS STRUCTURE FOR MAIN WINDOW

CREATE POP UP 9 O6 MENU FOR WINDOW

ADD FOLLOWING TEMS

DD TO POP MENU: POP UP "PREFERENCES"

MENU "TOOL WINDOW" CREATE "STATUS BAR" OK P BLANK LINE. "CLOSE"

REGISTER CLASS NFORMATION WITH WINDOWS A/G 9

914 EXT SUB C WITH SUCCESS/ FAILURE CODE U.S. Patent Feb. 22, 2000 Sheet 11 of 26 6,028,643

START SUB D OO2 NITIALIZE FOR SPECIFIC INSTANCE AND OFPEN MAN WINDOW

GET PROFILE FOR 1 OO4 THIS WINDOW SET UP

CREATE MAN 1OO 8 VIDEO WINDOW A/G /O OO

WINDOW CREATE

ENSURE COMMON CONTROL DLL S LOADED

EXT SUB D WITH SUCCESS/ FAILURE CODE

1 O14 U.S. Patent Feb. 22, 2000 Sheet 12 of 26 6,028,643

START MAN WINDOWS 11 O2 PROCEDURE FOR MESSAGES

GET WHAT OPERATOR DD IN WINDOW 1 Oa

11 O6

DD 11 O8

OPERATOR GO TO REGUEST TO NO CLOSE STEP WINDOW P 12O2

YES 111O A/G //

SUB 1 FROM NUMBER OF VIDEO WINDOWS OPENEO

1114

DOWN TO STEP ONE VIDEO VIRTUAL WINDOWP MODE

112O IS

TOOL CLOSE TO NO VIDEO WINDOW TOOL WINDOWS2 ALSO WINDOW OPENP

1126 POST OUTE MESSAGE FOR MAN LOOP TO EXIT MAN WINDOWS EXT TWIN TUNE PROCEDURE FOR APPLICATION MESSAGES U.S. Patent Feb. 22, 2000 Sheet 13 of 26 6,028,643 ax-120? OPERATOR GO TO

$SEVIDEO NO-e STEP13 O2 winPow YES 12O6 12O7

USE WINDOW WINDOWS VISIBLE DEFAULT HANDLING

PROCEDURE

FOR THIS YES CASE 2O -N-1208 TURN OFF THIS JUST YES VIDEO FOR

{icon Fox- WINDOW, JUST WINDOW AN CON ON

N/ TASK BAR NO 1212

GET DISPLAY AREA FOR VIDEO

IN WINDOW A/G 2

SUBTRACT OUT SIZE OF STATUS BAR F NEEDED.

SET UP FLAGS GO TO DLL TO POINT TO TO SET NEW NEW LOCATION VIDEO BY AND SIZE OF CHANG ING

VIDEO SECTION REGISTERS OF WINDOW iN D!SPLAY

ACCELARATOR 1216 1218 U.S. Patent Feb. 22, 2000 Sheet 14 of 26 6,028,643 /6){ 13 O2 OPERATOR REQUEST TO GO TO A/G /3 <5.OF VIDEO sé No STEP14 O2 WINDOWP N/ YES 13O6

IS WINDOW GO TO 2 NO STEP

VISIBLE 26

YES 13 O

13O8 IS REDRAW STATUS STATUS BAR BAR TURN ON P YES-9RTECORRECT SIZE OF THIS WINDOW NO

GET DISPLAY AREA FOR VIDEO 1312 N NEW SIZED WINDOW

SUBTRACT OUT SIZE OF STATUS 1314 BAR F NEEDED.

1316 1318

SET UP FLAGS GO TO DLL TO TO POINT TO SET NEW VIDEO NEW LOCATION BY CHANG NG AND SIZE OF REGISTERS IN

VIDEO SECTION DISPLAY OF WINDOW ACCELARATOR. U.S. Patent Feb. 22, 2000 Sheet 15 of 26 6,028,643

DD SYSTEM REQUEST U GO TO TO REDRAW NO STEP WINDOW P 15O2

YES

REDRAW OUR 14 O 6 WINDOW

A/G 74

REDRAW OUR STATUS BAR 14O 8 |F NEEDED

FILL VIDEO SECTION WITH DEFAULT COLOR (VIDEO WILL BEGIN TO FILL

AREA LATER, 141 O KEEPS OLD JUNK FROM DISPLAYING) U.S. Patent Feb. 22, 2000 Sheet 16 of 26 6,028,643

15 O 4

PERATOR REQUEST TO NO RECQUEST TO CLOSE THIS MINIMIZE OR WINDOW AXIMIZE WNDO

YES

CALL DLL AND 5OO ARE TURN OFF WIDEO WE IN DISPLAY FUNCTION VIRTUAL OF ACCELERATOR MODE

SAVE CURRENT POSITION OF 1512 WINDOW FOR NEXT TIME IN SET UP FLAGS PROFILE AND PARAMETERS OF WINDOW TO PROCESS THE RESZING

CORRECTLY SEND MESSAGE THRU WINDOWS 1514 15 O 8 TO NOW DESTROY WINDOW

GO TO A/G /5

STEP 1126

U.S. Patent Feb. 22, 2000 Sheet 19 of 26 6,028,643

17O2 17O4

OPERATOR OPERATOR GO TO PRESS LEFT)-No PRESS AND NO BUTTON LET UP ON THE OF RIGHT BUTTON STEP MOUSEP OF MOUSE P 18O2 NY N: YES YES

IS 171O THE GET CURRENT MENU BAR WINDOW WE TURN ARE IN ON 2

SEND MESSAGE IS THRU WINDOWS THE MENU TO LET USER BAR YES MOVE VIDEO CURRENTLY WINDOW IN THIS/ WINDOWP N/ NO

SET POP UP MENU AS ACTIVE WINDOW FOR TWIN TUNA APPLICATION.

A/G f7 GET POSITON

DISPLAY POP UP MENU IN VIDEO WINDOW AT CURSOR POSITION AND LET WINDOWS TRACK MENU U.S. Patent Feb. 22, 2000 Sheet 20 of 26 6,028,643

/\ 18O2 OPERATORS GO TO

SIZING THEy-No 1814 VIDEO STEP S SET V WINDOW.jp 19 O2 1812 PAST/ WINDOW EF)-yes WINDOWDEO MOST IgMAX POSITO

YES 18O4. 5SE POSITION NY SET FLAG NO WITH CURRENT DRAG LOCATION 1816 OPERATOR 1818 SET WANT TO SIZE WINDOW VIDEO VIDEO WINDOW PASOPY-yEs-WNPOW MOST TO MAX POSITON TOP DE5D POSITION NO YES 182O

SET INDOW. VIDEO PAST RIGHTR YES WINDOW NO 18O8 MOST TO MAX

POSITION RIGHT SETUP FLAG SETUP FLAG DESIRED p POSITION WITH MAX WITH MAX SIZE THIS SIZE THIS NO

YE"NowBE ON WINDOWVIDEO THIS SCREEN CAN BE ON 1824 1826 ser ALL SCREENS

INDOW VIDEO PAST YESWINDOW BOTTOMMOST TO MAX YROSITION BOTTOM DE5D? POSITION

NO

GO TO

STEP 1126

A/G /9 U.S. Patent Feb. 22, 2000 Sheet 21 of 26 6,028,643

19 O2 S

GO TO 1914 1916 PERATOR MOVING THEY NO STEP S SET VIDEO 2OO2 WINDOWN VIDEO WINDOWP PAST LEFT YES WINDOW N/ MOST > TO MAX YES 19 O4 19 O6 POSITON LEFT DESREDP POSITION N/ SET FLAG NO WITH CURRENT SET FLAG DRAG LOCATION WITH CURRENT OPERATOR VIDEO WINDOW

SET WANT TO MOVE POSITION VIDEO VIDEO WINDOW LOCATIONS WINDOW (SNPSMOST YES TO MAX POSITON TOP DES REDP POSITION NY IS NO ONLY

ONE VIDEO WINDOW S SET OPEN ? WINDOWN VIDEO PASRIGHTyEss WINDOW POSITIONMOST GHMAX DES RED POSITON SETUP FLAG SETUP FLAG WITH MAX WITH MAX N6 LOCATIONS LOCATIONS THIS VIDEO THIS WIDEO 1926 WINDOW CAN WINDOW CAN SET BE ON THIS BE ON ALL VIDEO SCREEN SCREENS / WINDO WINDOW PAST BOTTOMYES TO MAX S. Most BOTTOM POSITION POSITION DES RED NY NO

GO TO

STEP 1126

A/G /9 U.S. Patent Feb. 22, 2000 Sheet 22 of 26 6,028,643

2OO2 2OO4.

DD LET WINDOWS

WE GET HANDLE THE

A SYSTEM Y- NO REST OF THE MESSAGE OPERATOR ENTRIES BY THE FAULT METHOD.

YES 2OO6

GNORE MESSAGE

A/G 2O GO TO

STEP 1126 U.S. Patent Feb. 22, 2000 Sheet 23 of 26 6,028,643

O TWIN 'TUNA' FILE VIEW HELP

WDEO WINDOW O 64 O X 48O CH : O2 32O

A/G 27 U.S. Patent Feb. 22, 2000 Sheet 24 of 26 6,028,643

A/G 22 FILE VIEW HELP PREFERENCES V TOOL WINDOW V. STATUS BAR

VIDEO WINDOW O 64O X 48O CH, O2

A/G 23

23 O6 23O4.

2314

23O8 232O

2337 2331 2327 U.S. Patent Feb. 22, 2000 Sheet 25 of 26 6,028,643

CONTROLS FOR WINDOW O X VOLUME

A/G 24 STEREO MODE. BASS TREBE O NORMAL E E OPSEUDO 24O2 OSPATIAL s DTUNER LR

24O4. 24 O6

CONTROLS FOR WINDOW O

VOLUME 7 89 Po | 4 || 5 || 6 23 AD Mo A A/G 25 VIDEO PROCESSING COLOR TINT BRIGHT CONTR

25 O2 U.S. Patent Feb. 22, 2000 Sheet 26 of 26 6,028,643

CONTROLS FOR WINDOW O X VOLUME Po AD

A/G 26 VIDEO INPUT ROUTING

INTERNAL SOURCES

OTUNA 1 O TUNA 2

EXTERNAL SOURCES 26O2 O GVBS 1 OS VIDEO 1

O GVBS 2 OS VIDEO 2

VOLUME | 7 || 8 || 9 || Po

A/G 27 VIDEO OUTPUT ROUTING GVBS OUTPUT 1 GVBS OUTPUT2 OTUNA 1 OTUNA 1 OTUNA 2 OTUNA 2 OEXT CVBS 1 OEXT CVBS 1 27O2 OEXT CVBS 2 OEXT CVBS 2 OAUTOMATICOAUTOMATIC 27O 4 27O6 6,028,643 1 2 MULTIPLE-SCREEN VIDEO ADAPTER AS more Video data becomes necessary, the need for WITH TELEVISION TUNER additional Screens increases. The number of available screens, however, is limited by the number of available BACKGROUND OF THE INVENTION expansion slots within the computer. AS more Screens are needed, additional cards may be added. Most of today's 1. Field of the Invention computers include at least Six expansion slots that may be The present invention is directed to Video adapters for use used for additional monitors or for other peripherals. in personal computers and Software for controlling the same. Additionally, under the current paradigm, each Screen must More particularly, the Video adapter of the present invention typically be supported by its own CPU. This additional includes at least two television tuners and Sends Video data "footprint” requirement is an unwelcome encroachment on, to multiple computer displayS. for example, the desk or floor Space of StockbrokerS. It 2. Background would be advantageous to Support multiple displayS from a Video adapters (or “video cards”) convert computer data single CPU. to Video Signals for output to a monitor or Similar output Unfortunately, as a greater number of peripherals hit the device. Atypical (“VGA) card has its 15 market, the number of expansion slots appears to be dwin own memory and digital-to-analog converter (“DAC), but dling. In other words, Sound card manufacturers, Zip rive does not actually proceSS data, which is performed by the makers, and CD-ROM drive makers are competing for the computer's CPU, including writing and reading of text, as Same finite number of expansion Slots within each computer. well as drawing simple graphics primitives Such as pixels, Moreover, differing bus standards, such as PCI and ISA, lines and memory transferS for images. further limit the number of expansion slots. Thus, a card Programs such as DOS-based word processors run in having a PCI bus interface would be limited to the number VGA while graphics-based programs like games of PCI bus expansion slots in the computer. run in graphics mode. The Sold under the The addition of multiple graphics cards has the further trademark Windows 3.1 by Microsoft Corp. runs in VGA disadvantage of requiring the user to control each Screen graphics mode as default, meaning that every pixel that is 25 independently. If two cards are provided by different displayed as a part of the background, a window, or a text manufacturers, the Software utilities for each card may not character must be written using basic VGA calls. The be compatible. Even if two cards from the same manufac low-level nature of the VGA command set dictates that turer are used, there is no guarantee that the Software numerous commands be required to do Something as Simple required to run both cards will run Seamlessly and without as moving or closing a window. Clearly, an enormous error. The user may become confused when faced with amount of data is required to move from the VGA card, numerous video inputs and outputs to manage. along the bus, into the CPU, and on into the cards memory, and Vice-versa. SUMMARY OF THE INVENTION

Accelerated video cards, however, have their own pro 35 The present invention provides hardware and Software cessor (or “accelerator”). Thus, an accelerated card may devices for displaying Video information acroSS one or more perform many Video operations with only minimal input Screens. In addition, television tuning capabilities permit the from the CPU. Indeed, the accelerated video card can display of television Signal on one or more display devices. perform all of the operations usually performed by the CPU The video adapter hardware of the preferred embodiment of with a VGA card. This frees the bus and the CPU to execute 40 the present invention includes two graphic user interface other tasks, and Speeds-up Video operation. Unlike VGA accelerators. Each accelerator is coupled to an independent mode, where every pixel must be moved to and from the memory unit and a shared memory unit. The adapter com card via the bus and CPU, the accelerated card can perform municates with the computer's main CPU over the internal the Same operations with instructions consisting of only a bus via a bus interface. A bus bridge handles data flow and few bytes being transferred along the bus. This results in an 45 concurrency issues between the two accelerators. The enormous performance gain for most common graphics adapter further includes Several Video inputs. Two television operations, including bitmap and pixmap transferS and tuners accept external television signals from an outside painting, movement of Sprites and icons, opening and clos Source, Such as a cable television company or a video ing of windows, etc. cassette recorder. The television tuners tune the Signal from The increased performance of accelerated cards has per 50 the outside Source and pass the data to a Video multiplexers mitted the introduction of more advanced graphics features. which routes the Video Source to one or both of the graphics For instance, certain advanced accelerated cards now feature accelerators via a Video decoder. The adapter may further television tuning capabilities. Television cards include a include an audio multiplexer/Sound processor for processing television tuner capable of receiving and tuning a video audio data. Source from a cable or a Video cassette recorder. The card 55 The graphics accelerators proceSS data from the bus then converts the incoming Video Source into a signal that bridge and the video decoders. The video data may then be may be displayed on a conventional . Sent to one or more computer monitors for display. The Cards with television tuners typically have additional pro acceleratorS Send data to the monitors via a video monitor cessing and memory requirements. interface. Data may be displayed on one monitor, alone, or Television-tuning video cards have numerous real-world 60 acroSS Several monitors. Multiple adapters may be used to applications. Medical perSonnel, for instance, may require add additional monitors. Video images together with computerized data during Sur To facilitate the display of information acroSS Various gery. Seismic technology experts must locate, use, and display devices, a preferred embodiment of the present analyze video tape of areas along fault lines or experiencing invention further includes video adapter software. The soft minor Seismic activity. In the busineSS arena, Securities and 65 ware includes a tool window that allows the user to modify commodities brokerS rely upon Several television and com the Video and audio inputs and outputs. In addition, the user puter Screens to advise their clients. may Select particular audio and Video characteristics of the 6,028,643 3 4 active window. Specifically, the tool window includes a FIG. 11 is a flow chart illustrating control flow of the main Video output window that provides a choice of inputs for Windows procedure for the software. each display device. The user may Select a television Source FIG. 12 illustrates processing that occurs when the user or an external Source for each display device. If the same input is Selected for both display devices, the information requests that a window be moved in a preferred embodiment will be displayed acroSS multiple display devices. AS addi of Software according to the present invention. tional cards, are added, more display devices become avail FIG. 13 illustrates processing that occurs when the user able. requests that the window be re-sized in a preferred embodi In accordance with the purpose of the invention, as ment of Software according to the present invention. embodied and broadly described herein, the invention is a FIG. 14 illustrates processing that occurs when the System Video adapter for use in a computer having an internal bus, 1O requests a window redraw in a preferred embodiment of the video adapter comprising a first graphic user interface Software according to the present invention. accelerator, a Second graphic user interface accelerator, at FIG. 15 illustrates processing that occurs when the user least one video decoder coupled to at least one of the first requests that a window be closed in a preferred embodiment and Second graphic accelerators, a first television tuner receiving a first television signal, a Second television tuner 15 of Software according to the present invention. receiving a Second television Signal, a mechanism for cou FIG. 16 illustrates processing that occurs when the user pling the first and Second television tuners to the at least one opens a menu in a preferred embodiment of Software accord Video decoder, and a plurality of Video monitor outputs. ing to the present invention. In further accordance with the purpose of this invention, FIG. 17 is a flow chart illustrating processing that occurs as embodied and broadly described herein, the invention is when the user clicks a mouse button in the main window in a method for displaying information on multiple computer a preferred embodiment of Software according to the present Screens, comprising the Steps, performed by a computer, of invention. displaying a tool window, wherein a first Screen output FIG. 18 illustrates processing that occurs during Sizing of window having a group of Selectable inputs, and a Second a video window in a preferred embodiment of software Screen output window having a group of Selectable inputs, 25 according to the present invention. are displayed; inputting an indication that a user wishes to FIG. 19 is a flow chart illustrating processing that occurs Select a first input for the first Screen output, inputting an during moving of a Video window in a preferred embodi indication that a user wishes to Select a Second input for the ment of Software according to the present invention. Second Screen output, displaying results of the first input on the first Screen; and displaying results of the Second input on FIG. 20 is a flow chart illustrating the handling of system the Second Screen. messages in a preferred embodiment of Software according Objects and advantages of the invention will be set forth to the present invention. in part in the description which follows and in part will be FIG. 21 illustrates a File Menu displayed when the user obvious from the description or may be learned by practice Selects "File' from the main program menu in a preferred of the invention. The objects and advantages of the invention 35 embodiment of Software according to the present invention. will be realized and attained by means of the elements and FIG.22 illustrates a View Menu displayed when the user combinations particularly pointed out in the appended Selects “View' from the main program menu in a preferred claims. embodiment of Software according to the present invention. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 23 illustrates a Tool Window 2302 that is displayed 40 when the user Selects “Tool Window' from the View Menu FIG. 1 is a functional block diagram of a computer System or from the Pop-up menu in a preferred embodiment of using the Video adapter and Video adapter Software accord Software according to the present invention. ing to a preferred embodiment of the present invention. FIG.24 illustrates the Tool Window when an audio button FIG. 2 is a functional block diagram of a preferred is Selected in a preferred embodiment of Software according embodiment of a Video adapter of the present invention. 45 to the present invention. FIG.3 shows an initial screen display of the embodiment FIG.25 illustrates the Tool Window when the user selects of FIG. 1. a video button in a preferred embodiment of software FIG. 4 is a flow chart illustrating Steps performed during according to the present invention. initialization of a preferred embodiment of Video adapter Software according to the present invention. 50 FIG. 26 illustrates the Tool Window when the user selects FIG. 5 is a flow chart further illustrating initialization of an input button in a preferred embodiment of Software the Video adapter Software. according to the present invention. FIG. 27 illustrates the Tool Window when the user selects FIG. 6 is a flow chart further illustrating initialization of an output button in a preferred embodiment of Software the Video adapter Software. 55 FIG. 7 is a flow chart further illustrating initialization of according to the present invention. the Video adapter Software. DETAILED DESCRIPTION OF THE FIG. 8 is a Screen illustrating a pop-up menu displayed PREFERRED EMBODIMENT when the user right-clickS in the Video window of a display according to a preferred embodiment of the present inven 60 Reference will now be made in detail to a preferred tion. embodiment of the invention, examples of which are illus FIG. 9 is a flow chart describing the steps of a menu trated in the accompanying drawings. Wherever possible, Subroutine in a preferred embodiment of Software according the Same reference numbers will be used throughout the to the present invention. drawings to refer to the Same or like parts. FIG. 10 is a flow chart describing the steps of a main 65 I. Overview of the Present Invention. window Subroutine in a preferred embodiment of software FIG. 1 is a block diagram of a computer system 100 in according to the present invention. accordance with a preferred embodiment of the present 6,028,643 S 6 invention. Computer system 100 includes a computer 110. mini phone jacks (Master/slave audio out, slave audio in). Computer 110 includes a CPU 102, a memory 104, a bus The tuners 260,270 accept an F-style cable television input 105, a first display device 130 (e.g., a computer monitor), a that is separate from the 44-pin connector. Second display device 140, an input device 160 (e.g., a mo Video decoders 275,285 convert the analog video signals use), and a video adapter 150 coupled to the first display from the video multiplexers 280,290 into a digital compo device 130 and the second display device 140 by electrical nent stream for use by the graphics accelerators 210, 235. connections. Video adapter 150 is further coupled to two The video decoders 275, 285 include full video acquisition Video Sources, a Video cassette recorder 137 and a cable capability, including text slicing for intercast, teletext, and television input 139. Computer system 100 can further closed-captioning capability. Numerous input formats, include a second display device 140 connected to the including NTSC-M, NTSC-44, PAL-B, PAL-G, PAL-H, computer by way of the video adapter 150. Memory 104 PAL-I, PAL-M, PAL-N, PAL-60, SECAM, and S-VHS are includes Videographics Software 125 that controls operation supported. Computer software 125 may be used to control of the video adapter 150. The operation of the video graphics various video processing features via control buSSes 237, Software 125 is described in detail below. It will be under 239. Specifically, a user may control the hue, brightness, stood by perSons of ordinary skill in the art that computer 15 contrast, window cropping/Scaling, horizontal and vertical system 100 may also include numerous elements not shown resizing, and anti-aliasing features. The Software 125 is in the figure for the Sake of clarity, Such as disk drives, discussed in greater detail below. keyboards, display devices, network connections, additional The adapter 150 of the present invention includes two memory, additional I/O elements, additional CPUs, etc. graphic user interface (“GUI”) accelerators 210,235. Each Computer System 110 also includes an operating System accelerator 210, 235 is coupled to a memory unit 215, 225. (not shown), such as the Windows 95 operating system. The memory units 215, 225 are synchronous graphic ran “Windows 95” is a registered trademark of Microsoft Corp. dom access memory (“SGRAM") units, although other It will be understood that the present invention is not limited memory types may be used. Preferably, each memory unit to any particular hardware, operating System, or type of has a peak memory bandwidth of 800 Megabytes per second computer System. 25 (MB/s). The memory units 215, 225 store decoded video II. Video Adapter Hardware data, graphic data from computer operations, character FIG. 2 is a block diagram of the video adapter 150 of the fonts, and other information required for operation of the present invention. The video adapter 150 is implemented as adapter 150. The shared memory 230 serves as the BIOS for a circuit board having a plurality of integrated circuits the accelerator card 150. Rather than using two separate mounted or etched thereon. The adapter 150 includes a BIOS chips for each accelerator, the memory is shared 32-bit PCI Version 2.1-compliant bus interface 220 that between the two accelerators 210, 235. couples with a single PCI bus expansion slot (not shown) in The GUI accelerators 210,235 are preferably accelerators the computer 110. Data flows between the computer 110 and sold under the trademark CL-GD5480, by Cirrus Logic, Inc, the adapter 150 through the bus interface 220. It should be although any graphic accelerator chip may be used. Each apparent to one of ordinary skill in the art, however, that 35 GUI accelerator 210, 235 is a graphic visual media accel other bus standards, Such as ISA, and other versions of PCI erator integrated circuit with additional graphic Support may be used. logic. The GUI accelerators 210, 235 Support a synchronous The video adapter 150 processes video data from the dynamic random access memory (“SDRAM”) interface, a computer 110 via a PCI bridge 240. The PCI bridge 240 40 digital camera interface, a PCI bus interface, a graphics bridges data from the PCI bus interface 220 to multiple controller, a BITBLT engine, a stream engine, a VGA accelerators on the card. The PCI bridge 240 includes graphics controller, and CRT controller functions. The GUI control logic, concurrency control, and buffering that permit accelerators 210, 235 combine decoded video data from the multiple accelerators to access the Single PCI bus interface video decoders 275, 285 with the computer graphics infor 220. Specifically, the bridge 240 implements delayed trans 45 mation stored in memory 215, 225. Resultant data from the actions for all PCI configurations, I/O, and memory-read GUI accelerators 210, 235 is output to computer monitors commands, Such that three of the aforementioned transac 130, 140 via video monitor interface components 245, 255. tions may be performed Simultaneously in each direction. The video adapter 150 may further include an audio The bridge 240 supports five simultaneous posted write multiplexer/sound processor 295. The audio multiplexer 295 commands, with 88 bytes of buffering for each command. 50 accepts audio inputs from each of the television tuners 260, The PCI bridge 240 further provides concurrent primary and 270, and an external Sound Source. Computer Software may Secondary bus operation, as well as enhanced address decod be used to control various audio processing features via ing to thereby isolate traffic in both directions. control busses 237,239. Specifically, a user may control the The video adapter 150 includes six distinct video inputs. Volume, balance, mute control, pseudo-Stereo, Spatial Two television tuners 260, 270, each accept television 55 function, treble, and bass characteristics of the audio output Signals from a cable television connection, a Video cassette through the video adapter software 125. Processed audio is recorder, a television antenna, or Similar television signal output to an external Speaker System or amplification device. Source. Two video multiplexer inputs 280,290 accept phono The accelerator card 150 is powered by a power supply RCA inputs from a variety of Sources, including outputs 224. The power Supply 224 draws power from the comput from the tuners 260,270, and routes these signals to one or 60 er's main power supply (not shown) via the PCI bus inter both of the graphics accelerators 210, 230. In addition, the face 220. The power drawn by the power supply 224 is then multiplexer accepts two mini-DIN S Video inputs. Most converted to the proper Voltages required to power each audio/video connections are made through a single HD44 element of the accelerator card 150. Specifically, the PCI pin cable 247. The cable includes, but is not limited to, two bridge 240, the video multiplexers 280,290, the tuners 260, HD 15 VGA outputs, two RCA phono in (composite video 65 270, and the remaining circuitry all require different volt in) inputs, two RCA phono Out (routed composite video ages. The power Supply 224 converts the main Voltage to a output), two Mini DIN in (S-Video input), and three Stereo particular Voltage for each card element. 6,028,643 7 8 III. Video Adapter Software correct Source, Sets the channel on the tuners, etc. The FIG.3 shows an initial screen display 300 of the embodi Software, in step 510, checks to ensure that the DLL loads ment of FIG. 1. The screen display of FIG. 3 is the initial properly. If the DLL fails to load, the program displays the message: “Error: DLL did not load. DLL must be in the same Screen display shown when the Video adapter Software of the directory with XXX.exe” in the active window, where described embodiment is first executed in a Windows 95 XXX is the name of the executable file containing the environment. Screen display 300 includes a video area 302, Software described herein. The program then continues a menu bar area 310, and a status bar area 320. Menu bar control at step 418. If the DLL loads properly, the software area 310 includes three menu items: a “File” menu item 312, attempts to obtain the entry point for the DLL for later use a “View' menu item 314, and a “Help” menu item 316. in step 602. If the entry point is not obtained in step 602, the Status bar area 320 includes three parts: a video window part Software displays the message: “Error: Could not get entry 322 indicating a video window number, a resolution part 324 point to the control routine' in step 604 and goes to step 418 indicating a video resolution for the active Video window, where the program eventually terminates. and a channel part 326 indicating a tuned channel within the active video window. Once the DLL entry point is obtained, program control 15 continues at Step 608, where the program calls an initial FIG. 4 is a flow chart illustrating Steps performed during ization Subroutine of the DLL. If the DLL fails to initialize, initialization of the video adapter software in Windows 95. the Software, in Step 612, displays the message: “Error: (Hereinafter, the words “software” and “program” will be Could not initialize hardware” and goes to step 418. Fol used interchangeably.) It will be understood by persons of lowing initialization, the Software obtains the default Set ordinary skill in the art that the flow charts in this document tings for the video adapter 150 in step 614. In step 616, the generally represent steps performed by CPU 102 in accor Software confirms the receipt of these Setting. Failure to dance with instructions stored in memory 104. When the obtain the Settings results in the display of the message: Video adapter Software is started, it first instantiates, in Step “Error: Could not get hardware defaults.” The program 404, all variables associated with the Software. In addition, would then continue at step 418. If the hardware defaults are when the Software is first executed, the program Searches the 25 obtained, the program creates and paints a background color System for another running instance of the program. If for the active window in step 622. In step 624, the software another instance of the program is found, the new instance loads all global flags that will be used by the operating of the program must terminate. Accordingly, the Software System. calls an operating System command to Sound the internal In step 702, the program goes to step 704, where the main computer bell at step 408. The new instance of the software Video window is opened and instance initializations are exits the system at step 410. performed by a subroutine (Subroutine D described below). In step 412, the software obtains the version number of If initialization is properly performed, processing continues the operating System. The Software then determines, in Steps at step 704. Otherwise, the program terminates. At step 708, 414 and 420, respectively, whether a generic driver and the program enters a message loop to obtain threaded Video-adapter-specific driver have been installed. If no 35 window messages from the operating System. If the message generic driver is found, the program displays the message is “WM QUIT,” the message loop ends and program flow “Error: generic driver not installed” in the active window at continues in step 718. For all other Windows messages, the Step 416. The program then proceeds to wait for the user to program goes to Step 712. The Software first handles all issue an “OK” response to the error message. Similarly, if a dialog box messages. Following the processing of the dialog Video-adapter-specific driver is not found, the program dis 40 box message, the Software translates any virtual key codes plays the message: "Error: Video adapter driver is not generated by Windows 95 into character messages in Step installed,” in the active window at step 422. Program control 714. Once the message has been read and translated, it is continues at Step 418. Following a response from the user, dispatched back to the operating system in step 716. Win the software exits at step 410. dows 95 then holds this message until it can be passed to the Once the appropriate device driver has been located, the 45 programs window function. When the software receives a Software, in Step 424, initializes to a default Source path “WM QUIT" message in step 710, it unloads the DLL from (disk drive location). The default Source path is the path in memory. In Step 720, the program cleans up all memory and which the software was originally installed. In step 426, the resources and terminates. Software copies the Source directory and a default file name FIG. 8 is a Screen illustrating a pop-up menu created by to a variable. 50 Subroutine C and displayed when the user right-clicks in the Program initialization continues in FIGS. 5–7. In step Video window. The pop-up menu includes five menu items: 502, the program goes to step 504, where an application a “Preferences “menu item 802, a “Tool Window' menu instance and shared items are initialized by a Subroutine item 804, a “Status Bar” menu item 806, a blank line, and (Subroutine C described below). If the initialization was an “Exit” menu item 808. Each of these items is described performed without error, the program continues to step 506. 55 in detail in the discussion of menu processing below. Otherwise, the program goes to Step 410 and terminates. In FIG. 9 is a flow chart describing the steps of Subroutine step 506, an instance handle provided by the operating C, which is called from other points in the program. Sub System is saved in an instance handle variable. Next, the routine C begins processing at step 902. In step 904, the Software loads an operating System dynamic link library (the routine defines a window class structure for the main win “DLL) in step 508. The DLL is a library of low-level 60 dow. The window class structure includes the default fields routines used to access the hardware. The primary function for the WNDCLASS structure. The instance handle obtained of the DLL is to determine the hardware present in the in step 506 is used to define the HINSTANCE field of the System and carry out the device control requests of an structure. In step 906, a pop-up menu is created for the application. For example, the DLL turns on and off the Video defined window. The software in step 908 ensures that the registers in the graphic accelerators, Sets the Video window 65 pop-up menu was created properly. If the menu was properly Size in the graphic accelerators, controls the Sound proceSS created, the Software creates the menu items. Once the menu treble and bass, Switches the video multiplexers to the items have been created, the window class is registered with 6,028,643 9 10 the operating system in step 912. The software exits Sub modifying the registers in the display adapter accelerator routine C in step 914. associated with a given window. If the window is the FIG. 10 is a flow chart illustrating subroutine D, which is first-opened window, the registers in graphics accelerator called from other points in the program. The Subroutine 210 are modified. If the window is the second-opened begins at step 1002. At step 1004, the software obtains the window, the registers in graphics accelerator 235 are modi profile for the window set-up. Specifically, the software fied. All other messages for moving are Sent to the default obtains the size of the window and the current input Settings handling for the Windows procedure. for the window. These are usually saved from a previous FIG. 13 illustrates processing that occurs when the user Session. If no Settings have been Saved, the Software will use requests that the window be re-sized. The Software, in Step default window settings. The main video window is created 1302, determines whether the user requested that the size of at step 1008. If the main window is properly created, the the window be modified. If the user did not request a Software goes to step 1010. Otherwise, the Subroutine exits window re-sizing, processing continues at Step 1402. with a failure code. Once the window is created, however, Otherwise, the Software determines whether the window to program control continues at Step 1012 where the Software be sized is visible. If the window is not visible, the default ensures that the Windows 95 common control DLL is 15 Windows procedure handling is used. If the window is loaded. The common controls are an extended Set of visible, the Software ensures that the status bar is visible. If controls, Such as drag list boxes, rich edit controls, and the status bar is visible, the Software redraws the status bar toolbars, that are used by the software. If the common for the correct window size in step 1310. If the status bar is control DLL is properly loaded, the Subroutine exits with a not present, the Software obtains the display area for the success code at step 1014. video in the newly-sized window. The size of the status bar FIG. 11 is a flow chart illustrating control flow of the main is subtracted from the total area in step 1314. In step 1316, Windows procedure for the software. The Windows proce the Software creates flags to point to the new location and dure is called by Windows 95 when it needs to pass a size of the video portion of the window. The software then message to the Software. It is through this function that enters the DLL to set the new video by modifying the Windows 95 communicates with the program. The Windows 25 registers in the display adapter accelerator. If the window is function may be implemented in many ways, but it often the first-opened window, the registers in graphics accelerator consists of a “Switch’ Statement that links a Specific 210 are modified. If the window is the second-opened response to each message that the program will respond to. window, the registers in graphics accelerator 235 are modi In step 1104, the Software obtains the user's action within fied. All other messages are Sent to the default handling for the main window. In step 1106, the software determines the Windows Procedure. whether the user requested to close a window. If the user FIG. 14 illustrates processing that occurs when the System requested that the window be closed, processing continues at requests a window redraw. The software, in step 1402, step 1202. Otherwise, processing continues at step 1110, determines whether the operating System requested a where the Software subtracts one from the total number of redrawing of the window. If a redraw is not requested, open windows. If only one window remains open, the 35 processing continues at step 1502. In step 1406, the software Software places the open window in Virtual mode in Step redraws the main window. In step 1408, the Software 1114. Virtual mode allows a single video window to be redraws the status bar if the status bar is visible. The moved from one display to another or sized to fit on more Software, in step 1410, fills the video section of the window than one display. This mode allows more than one video with a default color. This step is performed to prevent window to be opened at one time. If no video windows are 40 previous material from displaying in the area. When new open following step 1110, the software goes to step 918 to Video signals are received, the new Video picture will fill the determine whether the tool window remains open. If the tool redrawn area. Program control continues at Step 1126. window is open, the Software closes the tool window in Step FIG. 15 illustrates processing that occurs when the user 1120. Once the tool window is closed, (or if the tool window requests that a window be closed. In step 1502, the software was not open in step 1118), the windows procedures calls the 45 monitors a request to close the window. If no request to close PostOuitMessage() function of the operating System which, the window is made, the Software goes to step 1602. If no in turn, causes a WM QUIT message to be sent to the request is made to minimize or maximize the window, the Software. Once a WM QUIT message is received, the Software checks to see if the system is in virtual mode. If the Software automatically halts. The Windows procedure exits System is in Virtual mode, the Software creates flags and at step 1126. 50 parameters for the window to correctly process the resizing. FIG. 12 illustrateS processing that occurs when the user Program control then continues at step 1602. If the user requests that a window be moved. In step 1202, the software requests that a window be closed, the Software goes to Step determines whether or not the user requested that a video 1510 and calls the DLL to turn off the video display function window be moved. If a move was not requested, processing of the accelerator. In Step 1512, the program Saves the continues at step 1302. Otherwise, the Software ensures that 55 current position of the window for later use. In step 1514, the the video window is currently visible. If the window is not Software Sends a message to destroy the window to the visible, the default Windows processing occurs (via a call to operating System. The Software then exits the main window Def WindowProc()). If the window is visible, the software procedure. ensures that the window is not simply an icon in step 1208. FIG. 16 illustrates processing that occurs when the user In step 1210, if the video cannot be displayed on the screen, 60 opens a menu. In step 1602, the software determines Such as by minimizing, the Software turns off any Video that whether the operating System requested that a window be is being sent to the window. In step 1212, the software activated. If no request from the operating System was obtains the display area for the video in the window. Next, received, the Software monitors a change in the display the size of the status bar for the window is Subtracted from resolution at step 1604. If no change to the display resolution the area. In Step 1216, the Software creates flags to point to 65 is made, the System looks for the Selection of a command on the new location and size of the video portion of the window. the software menu at step 1606. Menu processing is dis The software then enters the DLL to set the new video by cussed below. If the operating System requests that a window 6,028,643 11 12 be activated, the software, in step 1610, updates the tool Size that the current window can be on all Screens. If other window and exits the Window procedure. If the user changes windows are open, the Software, in Step 1912, creates a flag the display resolution, the Software, in Step 1612, creates with the maximum size the video window can be on this flags to point to the location and Size of the Video portion of screen alone. In steps 1914-1928, the software determines the window. In step 1614, the software enters the DLL to set whether the window is past the farthest desired point. If the the new Video modifying the registers in the display accel window is beyond that point, the video window is set to the erator. Processing then goes to step 1606. maximum desired position. The Windows procedure then If the user does not Select a command on the menu, the exits. Software looks for a double-click in the window. If no FIG. 20 is a flow chart illustrating the handling of system double-click is received, the software continues at step 1702. messages by the Software. If a System message is not If a double-click is received, the software, in step 1618, received, the software, in step 2004, allows windows to obtains the current window and current setting. In step 1620, handle all remaining user entries by the default method. If a the Software looks for a title bar in the window. If the System message is received, the Software ignores the mes window has no title bar, the software, in step 1624, sets a sage in step 2006. The Windows procedure then exits. NO MENU flag to provide a title bar for the window. The 15 window is also given a menu in step 1626. The old window Menu control flow will now be described. FIG. 21 illus is then erased. If the window has a current title bar, a flag is trates a File Menu displayed when the user selects “File” set to remove the title bar. The new window is modified to from the main program menu. The File Menu 2102 includes remove the menu in step 1630 and the old window is then three menu items: a “New Window' menu item 2105, a erased. In Step 1634, the new window is painted according blank line, and an “Exit” menu item 2107. When “New to the set flags (i.e., either a full window or a window with Window' is selected, the software opens a new window a title bar and menu). containing data from a new Video Source. The new window FIG. 17 is a flow chart illustrating processing that occurs is opened on the next available monitor. The Selection of when the user clicks a mouse button in the main window. In audio and video sources will be described below. The program terminates when the user Selects “Exit” from the step 1702, the software looks for a left mouse button click. 25 If no left mouse button click is received, the Software looks File menu 2102. for a right mouse button click in step 1704. If a left mouse FIG.22 illustrates a View Menu displayed when the user button click is received, the Software determines whether the selects “View” from the main program menu. The View menu bar is on or off. If the menu bar is off, messages are Menu includes three menu items: a “Preferences' menu item sent through Windows to allow the user to move the video 2205, a “Tool Window' menu item 2207, and a “Status Bar” window in step 1708. If the menu bar is on, the Windows menu item 2209. When the Preferences menu item 2205 is procedure exits. If a right mouse button click is received, the Selected, the Software creates a dialog box containing the Software obtains the current window the user is in. If no current Setting for tuner input. Specifically, the dialog box menu bar is on in the current window, the Software creates indicates whether an air antenna or cable is Selected. In the pop-up menu described above as the active window of 35 addition, the type of cable Selected is displayed. The user the application in step 1714. The software then obtains the also has the option of keeping the Tool Window on top of current cursor position in step 1716. Finally, the software multiple windows. Other information may be included in the displays the pop-up menu in the Video window at the cursor Preferences menu, Such as the audio connections, external position and allows Windows 95 to track the menu. The Video names, etc. Windows procedure then exits. 40 When the “Tool Window' item 2207 is selected from the FIG. 18 illustrates processing that occurs when the user Preferences menu, a check is entered next to the item and a sizes a video window. If no right or left mouse button is Tool Window 2302 (see FIG. 23) is displayed. When the received and no double-click is received, the Software deter “Status Bar” menu item 2209 is selected, the status bar 320 mines whether the user is sizing the Video window at Step is displayed. Both the Tool Window and the status bar may 1802 in FIG. 16. If the user is not sizing the video window, 45 be toggled on and off. processing continues at step 1902. Otherwise, the software, FIG. 23 illustrates a Tool Window 2302 that is displayed at Step 1806, creates a flag with the current drag location when the user Selects “Tool Window' from the View Menu where the user would like to size the window. If only one or from the Pop-up menu. The Tool Window contains a title Video window is open, a flag is created with the maximum bar 2306 and a main window 2304. The main window 2304 Size that the current window can be on all Screens. If other 50 includes a keypad 2308, a volume slider 2314, and a mute windows are open, the software, in step 1808, creates a flag button 2320. The keypad 2308 allows the user to select with the maximum size the video window can be on this particular audio and Video Settings for the active window. screen alone. In steps 1812-1826, the software determines The keypad 2308 includes a “PC” button 2327 that allows whether the window is sized past the farthest desired point. the user to select the previously-tuned channel. A “CN' If the window is beyond that point, the video window is set 55 button 2331 allows the user to modify the name of the to the maximum desired position. The Windows procedure channel (e.g., “ABC”) for the currently-tuned channel. The then exits. “AD” button 2337 allows the user to modify the audio FIG. 19 is a flow chart illustrating processing that occurs characteristics of the active window. The "AV' button 2341 during moving of a video window. In step 1902, the software opens an audio/video window 2402 that is discussed in determines whether the user is moving the video window. If 60 greater detail below. The volume slider 2314 allows the user the user is not moving the Video window, the Software looks to increase or decrease the Volume within a particular for a System message in Step 2002. If the user is moving the window. The volume slider 2314 controls the volume for video window, the software, in step 19046, creates a flag either window. The volume may be muted by pressing the with the current location to which the window has been mute button 2320. dragged by the user. In step 1906, the software creates a flag 65 When the user Selects the “AV' button 2341 on the with the current video window position location. If only one keypad 2308, an audio/video window 2402. The audio/video Video window is open, a flag is created with the maximum window 2402 allows the user to select particular audio and 6,028,643 13 14 Video input and output Sources. In addition, the window 3. The video adapter, as recited in claim 1, further 2402 allows the user to select specific audio and video comprising: characteristics of the active window. FIG. 24 illustrates the a bus interface communicating with the internal bus, Tool Window when an audio button is selected. A stereo a bus bridge coupled to the first and Second graphic mode window 2404 lets the user select a particular stereo accelerators and coupled to the buS interface. mode from a group of radio buttons. The user may select 4. The Video adapter, as recited in claim 1, wherein the “Normal, “Pseudo,” or “Spatial” stereo mode. In addition, coupling circuitry further comprises a Video multiplexer. the user may select the tuner LR check box that allows the 5. The video adapter, as recited in claim 4, further user to hear both left and right audio Simultaneously. A comprising a Second Video multiplexer having an external bass/treble window 2406 includes two slider controls for input and coupled to the at least one video decoder. allowing the user to increase or decrease the amount of bass 6. The video adapter, as recited in claim 5, wherein the and/or treble in the Volume. All audio Selections are Sent to external Video multiplexer input is an S-Video input. the audio multiplexer and Sound processor 295 via the 7. The video adapter, as recited in claim 1, further control buses 237,239. comprising: FIG. 25 illustrates the Tool Window when the video 15 button in the Tool Window is selected. A video window 2502 a first memory unit coupled to the first accelerator, and opens allowing the user to adjust the Video characteristics of a Second memory unit coupled to the Second accelerator. the active window. Specifically, the user may adjust the 8. The video adapter, as recited in claim 7, further color, tint, brightness, and contrast of the display using one comprising a main memory unit coupled to the first and or more Slider controls. Second accelerators. FIG. 26 illustrates the Tool Window when the user selects 9. The video adapter, as recited in claim 1, further an input button. A video input routing window 2602 allows comprising a Sound processor coupled to at least one of the the user to use either internal or external Sources for the first and Second television tuners. Video. If an internal Source is Selected, the user may toggle 10. The video adapter, as recited in claim 1, wherein the back and forth between two open Screens using the "Tuner 25 first television signal is an external Signal. 1' or "Tuner 2' radio buttons. If an external Source is 11. The video adapter, as recited in claim 10, wherein the Selected, the user may select among two CVBS inputs and external Signal is provided by Video-producing equipment. two S-Video inputs. 12. A computer System, comprising: FIG. 27 illustrates the Tool Window when the user selects a central processing unit; an output button. A video output routing window 2702 opens a Video adapter communicating with the central process allowing the user to Send the input Source to one or more ing unit; different output cables. Options for the first output cable are a first video Source providing a first Video Signal to the represented in the CVBS Output 1 window 2704. Options Video adapter; for the second output cable are represented in the CVBS a Second Video Source providing a Second Video signal to Output 2 window 2706. Both output cables may display 35 the Video adapter; information from the Tuner 1 input, the Tuner 2 input, the external CVBS1 input, and the external CVBS2 input. An a first graphic accelerator; automatic button makes the first cable follow the first video a Second graphic accelerator, window and the second video cable follow the second video a bus interface communicating with an internal bus of Said window. 40 computer System; Having thus described a preferred embodiment of a video a bus bridge coupled to the first and Second graphic adapter, it should be apparent to those skilled in the art that accelerators and coupled to the buS interface; certain advantages have been achieved. It should also be a first display device coupled to the Video adapter, the first appreciated that various modifications, adaptations, and display device displaying results of the first graphic alternative embodiments thereof may be made within the 45 accelerator; and Scope and Spirit of the present invention. For example, a Second display device coupled to the Video adapter, the analog video signals have been illustrated, but it should be apparent to those skilled in the art that the teachings Second display device displaying results of the Second described herein would be applicable to digital Video signals graphic accelerator. as well. The invention is further defined by the following 50 13. The computer System, as recited in claim 12, wherein claims: the first video signal is a television signal. What is claimed is: 14. The computer System, as recited in claim 12, wherein 1. A video adapter for use in a computer having an internal if the first Video signal is identical to the Second video signal, bus, the Video adapter comprising: the results of the first video Signal are displayed on the first 55 and Second display devices. a first graphic accelerator; 15. The computer system, as recited in claim 14, wherein a Second graphic accelerator; the results of the first Video Signal are displayed as a Single at least one video decoder coupled to at least one of the window acroSS the first and Second display devices. first and Second graphic accelerators, 16. A method for displaying information on multiple a first television tuner receiving a first television Signal 60 display devices, comprising the Steps, performed by a a Second television tuner receiving a Second television computer, of: Signal; providing a computer containing an adapter which Sup circuitry for coupling the first and Second television tuners plies Signals to a plurality of monitors, the adapter to the at least one video decoder; and containing a plurality of Video tuners, a plurality of Video monitor outputs. 65 displaying a tool window interface coupled to control the 2. The Video adapter, as recited in claim 1, further adapter, wherein a first display device output window comprising a plurality of CVBS outputs. having a group of Selectable inputs including at least 6,028,643 15 16 one Video input, and a Second display device output 21. The method for displaying information on multiple window having a group of Selectable inputs having at display devices, as recited in claim 20, wherein the plurality least one video input, are displayed; of Selectable Video characteristics includes a color inputting an indication that a user wishes to Select a first characteristic, a tint characteristic, a brightness input for the first display device output window; 5 characteristic, and a contrast characteristic. inputting an indication that a user wishes to Select a 22. The method for displaying information on multiple Second input for the Second display device output display devices, as recited in claim 16, further comprising window; the Steps of: causing the adapter to display, on the first display device, displaying an audio window within the tool window, the Signals according to the first display device input audio window including a plurality of Selectable audio indication; and characteristics, causing the adapter to display, on the Second display inputting an indication that the user wishes to Select a device, Signals according to the Second display device particular audio characteristic for an active window; input indication. 15 and 17. The method for displaying information on multiple display devices, as recited in claim 16, wherein if the first adjusting the Selected audio characteristic for the active input is identical to the Second input, the adapter displays, on window. the first display device and the Second display device, 23. The method for displaying information on multiple Signals according to the first display device input indication. display devices, as recited in claim 16, wherein the plurality 18. The method for displaying information on multiple of Selectable audio characteristics includes a bass charac display devices, as recited in claim 17, wherein the first teristic and a treble characteristic. group of Selectable inputs includes an external television 24. The method for displaying information on multiple input. display devices, as recited in claim 16, further comprising 19. The method for displaying information on multiple 25 the Steps of: display devices, as recited in claim 17, wherein the Second displaying an input window within the tool window, the group of Selectable inputs includes an external television input window including a plurality of Selectable inter input. nal video inputs and a plurality of Selectable external 20. The method for displaying information on multiple Video inputs; display devices, as recited in claim 16, further comprising inputting an indication that the user wishes to Select a the Steps of: particular internal Video input; and displaying a video window within the tool window, the inputting an indication that the user wishes to Select a Video window including a plurality of Selectable video particular external Video input. characteristics, 25. The method for displaying information on multiple inputting an indication that the user wishes to Select a 35 display devices, as recited in claim 24, wherein the plurality particular video characteristic for an active window; of Selectable external Video inputs includes a plurality of and S-Video inputs. adjusting the Selected Video characteristic for the active window.