Elan Microelectronics Corporation v. Apple, Inc.

Filing 86

Declaration of Derek C. Walter in Support Apple's of Opening Claim Construction Brief re 85 filed by Apple, Inc. (Attachments: # 1 Exhibit A, # 2 Exhibit B, # 3 Exhibit C, # 4 Exhibit D, # 5 Exhibit E, # 6 Exhibit F, # 7 Exhibit G, # 8 Exhibit H, # 9 Exhibit I, # 10 Exhibit J, # 11 Exhibit K, # 12 Exhibit L, # 13 Exhibit M, # 14 Exhibit N, # 15 Exhibit O, # 16 Exhibit P, # 17 Exhibit Q, # 18 Exhibit R, # 19 Exhibit S, # 20 Exhibit T, # 21 Exhibit U, # 22 Exhibit V) (Powers, Matthew) (Filed on 5/7/2010) Modified on 5/10/2010 (bw, COURT STAFF).

Download PDF
EXHIBIT T IIIIIIIIIIIII~ UISI0II0I5~7I6I42I1I8IA~IIIIIIIIIIIIIIII I ~ United States P a t e n t Della Bona et al. [54] [19] [11] [45] P a t e n t Number: Date o f Patent: 5,764,218 Jun. 9, 1998 M E T H O D AND APPARATUS F O R CONTACTING A TOUCH-SENSITIVE C U R S O R - C O N T R O L L I N G INPUT DEVICE T O G E N E R A T E BUTTON VALUES I n v e n t o r s : M a r k A . D e l l a B o n a . L o s Altos; J o n a t h a n D o r t i n a n , Berkeley; J a y F. H a m O n . S a n t a C r u z . a l l o f Calif. Assignee: A p p l e C o m p u t e r , I u e.. Cupertino, Calif. Appl. No.: 3 8 1 , 4 7 1 Filed: J a n . 3 1 , 1995 6 a r H E R PUBLICATIONS P C f P r e l i m i n a r y Examination Report f o r International Application No. P C f I U S 9 5 / 0 0 1 1 6 . m a i l e d Aug. L 1997 (6 pages). International Search Report, PCfIUS96/00116. Jul. 6. 1996. Hamman, et al., " N o d at Your Computer: Switchless Select i o n T e c h n i q u e s Using a Headphone D e v i c e " , P r o c e e d i n g s o f the A n n u a l Conference o f the Engineering in Medicine. M a c w o d d . Feb. 1 9 9 6 . " r o u c h p a d s " . p p . 6 8 - 6 9 . [75] [73] [21] [22] [51] [52] [58] Primary E m m i n e r - R a y m o n d J. B a y e d Assistant E x a m i n e r - J o h n F. Suraci Attome.» Agen~ o r F i r m - B l a k e l y . Sokoloff, Taylor & zatman [57] ABSTRACT I u t . Cl. U.S. C l . G06F 3 / 3 3 3451157 3451145, 173. 345/174. 166. 163. 158. 157 Field of Search [56] References Cited U.S. PATENT D O C U M E N f S 5,305,017 5,327,161 5,404,458 5,432,531 5,559,943 4/1994 7/1994 4/1995 7/1995 911996 Gerpbeide Logan e t aI Zetts Calder e t aI C y r e t aI 3451174 3451157 3451173 345/145 3451145 F O R E I G N PATENT D O C U M E N f S 0490001 2544103 12/1990 1011984 European Pat. 0 0 France G 0 6 F 3/033 G 0 6 F 3/033 A method and an apparatus for contacting a touch-sensitive c u r s o r - c o n t r o l l i n g i n p u t device t o g e n e r a t e b u t t o n v a l u e s s i m u l a t i n g t h e b u t t o n state o f a m e c h a n i c a l b u t t o n s w i t c h . This method and apparatus enable an operator to utilize the touch-sensitive cursor-controlling i n p u t device to change the v a l u e o f a B u t t o n S t a t e variable ( w h i c h s i m u l a t e s t h e ButtonState o f a m e c h a n i c a l button s w i t c h ) b y ( 1 ) d e t e c t i n g contact intervals w h e n the user contacts the touch-sensitive input device. ( 2 ) detecting g a p intervals b e t w e e n subsequent contact intervals. and (3) moving the cursor o n the display screen a n d changing the value o f the ButtonState variable based on the duration o f the contact a n d gap intervals. I n turn, this button generation capability enables an operator to p e r f o r m w i t h a s i n g l e touch-sensitive i n p u t d e v i c e numerous c o n t r o l o p e r a t i o n s . s u c h as c u r s o r m a n i p u l a t i o n . c l i c k . m u l t i click. d r a g . c l i c k - a n d - d r a g , a n d m u l t i - c l i c k - a n d - d r a g o p e r a tions. 1 2 C l a i m s , 14 D r a w i n g S h e e t s No ~ t M "s.ef r e - c o n t a c t t t . toudl.-Rl1SJDW- m p u l d"~rel"btlun ISMAX? /43.5 rDisplay Device ~ - - - - ..... - - - - - - - - - - - 1 Mail Memory Stalic Memory Mass Storage e · 0 .0 m v I I I I I ill 120 Device 125 I J [ ~ ~ B .. ~~ Bus {} W <l Keyboard l m Cursor Controue~ I I I Microcontroller r I J ~ ill f- I I I I ~ ~5 Processor ;.. ill! I'I I I - ~ ga ~ ~ L ____________ HardCopy Device lli ,. . .100' J 7 FIG. I Sound Recording and Playback Device ~ ~ '{' Computer Network ~ .I:>. ".. ,. 01 .,~ . 00 ~ ....... N u.s. Patent Jun. 9, 1998 Sheet 2 o f 14 5,764,218 r 220 21 5 ~ 200 ---,' z x 225 FIG. 2 u.s. Patent Jun. 9, 1998 Sheet 3 o f 1 4 5,764,218 300 \ FIG. 3 u.s. Patent Jun. 9, 1998 Sheet 4 o f 14 400 5,764,218 .... Yes -. Start/Reset B u t t o n S t a t e =U p / Contact initiated t n > t"JMAX N=l No Just cursor tracking V / ~ 405 410 B u t t o n S t a t e I I : Down N=N+1 ,..--_....:...-_-/ Yes , 415 - Is d u r a t i o n o f t i m e b e t w e e n t h e ( N - 1 ) t h and Nth c o n t a c t intervals l o n g e r than t ? GMAX 420 "N _ _ / , - - - _ - . 1 -O I s tTN> t"JMAx? Yes No 425 430 / S u p p l y c u r s o r tracking data to the computer ... ,/ B u t t o n S t a t e = Up ~~ Contact terminated Yes ..- No FIG. 4 ~ Does the user re-contact t h e touCh-sensitive i n p u t d e v i c e i n l e s s than tSMAX? 435 / e CURSOR TRACKING FlNGER UP DOWN UP BUTTON DOWN 00 · l t-----1 tTl>tTMAX r I CLICK I .~. .. tT1~tTMAX t T2 S tTMAX I I ~ :Tl~tT FIG. 5 8 r I nr GAP ALLOWED TO LIFT AND REPOSmON FINGER. I a ~ FIG. 5A FIG. 5C ~ ~ ~ ..... I FlNGER UP I ItG1 S~MAX ~2~~MAX t CUCK & DRAG 'I / DOWN tTl~tTMAX BUTTON UP I rn _ t > tsMAX Ul ~lSteMAX ~s~tsMAX DRAG & STICK / / I a Ut ga n~:JI~ ~ ..... ". ~ tTMA>< tT2~ tTMAX DOWN I n rI t > tsMAX t T l ~ tTMAX t TZ > tTMAX r t s > tsMAX -.0 1 . -.. FIG. 5D FIG. 5E FIG. 5 F '~ " N ...... oc 600 e .L1 r Gap timcr2 ell pires berore anOlher finger down (mulli-click) ~ fT 5 ' ' 0 ::s n L: ~' ~l)Q SlanlResel BUlIonStale", Up IIQ ;p · ~ ~ o ooG ... 0 Q.~no a. o ~ 605 / 610 '" Q:.r;""r~... .... l n:" " Tap timer does nOI expire before a finger up -'-~(1 a Gap limer! docs not expire before another finger down 625 630 f""I'~ / Initiate mulliclick timer s~ ... Initiate lap timer Initiate gap limerl & send bullon down 615 :::'lrl:;;I Jil 0'''2.'0 '0 <:: . . . . . "i' 3.'. . . ( 1: " .., n 620 Initiate latenl press timer Lalent press timer does nOI expire before finger moves Tracking Finger Up Lalent press timer expires before finger moves To step 600 ~ff;;:ri' c~ ..,. ' l5,~ ... /f-C~ Mulli-<Iick limer does nol expire before another finger up I " Ie u' e 2 nJua gap m r , BUIlOnSlale Up (click), and then Butlon5tate = down Gap timer2 does nOI expire fore another fmger down / = ~\C ~ g::::+ i r.I:J 6 5a Send bullon down Btl '1 hi'- ~ FIG. 6 ! t:r 635b Finger up & not moving Track (Dragging) Q'\ ~ ."co". "" Slicky disengage limer expires before another finger up 640 Sticky drag timer expires before another finger down Slicky disengage timer does nol expire before another fmger up Sticky drag timer does not expire before another finger down Initiate slicky disengage limer " Finger Up and Moving Initiate slicky drag timer 64S / ~ Ul N t .....:a 00 ....... CURSOR TRACKING FINGER UP l I I I I DOWN UP DOWN t T1 >tTMAX I 1 f I CUCK It I G1 >!<;MAX I I I DOUBLE - C U C K t T1 <tTMAX BUTTON r I I t n ~tTMAX tT2~ trMAX I 1 tG1$~MAX tGi>~MAX I I ~ · 00 · ~ ;..p... ~ I I II = ~ nr I = e= I.e I.e I.e 00 FIG. 7A FIG. 78 FIG. 7C ". =! rJ:l FINGER UP l I DRAG T~!<;i t T2 >trMAX r DRAG (LATENT PRESS) -..I DOWN UP t T1 ~trMAx 1 tTAP TIMER ~ I .I;l. + tLATENT PRESS TIMER BUlTON DOWN 'I FIG. 7D t snCK -- r I I FIG. 7E t STICK --- I '- ...... ~ N ~ 01 00 GAP ALLOWED TO UFT AND REPosmON F1NGER. I ~ ·0 0 · ;p I UP F1NGER DOWN C l l C K & DRAG I tGP~MAX tG2~te;MAX tT1~tTMAX tT2~tTMAX I DRAG & STICK Vl t STICK tG1~~MAX tG2~tsTICKM~ n~ - / I i..... ~ \e - . . . . . . - - - 1 1I t T3>tTMAX B~~~~: In. FIG. 7F r tT1~tTMAX I t T2> tTMAX t T3>toISENGAGEMAX I r". ~ 00 FIG. 7G rJ:l ~ C'" .... 00 UP FlNGER DOWN I DRAG & STICK DISENGAGE t G1.S;-t-e;-MAX t t s 5~TICKMAX - - ' - - - :tS . .- - -, -,.....:-, I s, .I;l. tT1~trMAX B~ONUP I DOWN I trrtTMAX tT3~toISENGAGEMAX I FIG. 7H ~ N ~ ~ 01 00 u.s. Patent Jun. 9, 1998 Sheet 9 o f 14 5,764,218 800 (s the data No positional data relating ....---to a change in the user's contact with the touchpad ? Yes SampleTime = lock at time of the transition fro step B10 to step 820 Yes B.2.Q Finge rDown=true DownTime=SampleTime 840 Yes Install TimerManager to call up TimerProc every Time rPe riod 870 BBO FIG. 8 u.s. Patent Jun. 9, 1998 Sheet 10 o f 14 5,764,218 TimerManager calls up TimerProcedure ~ read Z axis from touchpa No Yes 9ZQ UpTime= Clock at time of transition from 915 to 92 No Toggle ButtonState ~ FingerDown=false TimerRu nning=false Cancel TimerManage BuUonState=Up 950 FingerDown=false .932 reset TimerMgr 940 for another pass FIG. 9 'J'1 · e · ~ ~ 1-----------------------1 I : PROCESSOR I I------l: a ~ I , 1050 : MEMORY 1 0 4 0 DESKTOP ,MOUSE MANAGER IAPPUCATION DRIVER I 'I 1035 'MICRO- f - - - f - - - L . . . f - - - - C - - r - - - - - - , - - - - - - - - - , CONII MICROI TROLLER I I MICROMICROCONTROLLER -.~ ~ ... ~ g3 ~ I I ,-' I NTERRUPll DATA I TOUCHPAD HANDLER IPACKET I DRIVER , ---~--r-L- I L DESKTOP TRANSCEIVER I I " 10 4 5 L- - - - - - - - - - - - - - - - - - - ~OMPurz~ I ,I II "I 1005 I IL I 1010 J ',CONTROLLER I - "Vl CONTROLLER I -- fl I I I ~030 --;/- II I' II fl I , II -.l MOUSE L .-1 KEYBOARD L 1)1 .-1 ~ ~ ~ ~15 io20 TOUCHPAD " s, ~ 1025 oIlo. FIG. 10 -0 1 . .....:a N -" . . ~ ~ QO e · I nNGER CURSOR TRACKING ~ 00 · UPl DOWN UP r I CLICK I t >tSllCKMAX t r 1 ~tTAPMAX UI I CLICK I I ' a r..., ~ ~ t n >tTAPMAX BUTTON DOWN 'I FIG. IIA I DOUBLE CLICK t>tsncKMAX r'I U I tT2~tTAPMAX t n ~tTAPMAX tT2~tTAPMAX I I ' ~ '..e .... FIG. II B FIG. IIG ~ r.IJ 11 =~ nNGER UP DOWN U t T l ~tTAPMAX t>tsnCKMAX .... s, ....... ~ BUTTON D O : 'I I I ..(. J ) . ...... FIG. II D ~ ~ ~ QC e · · 00 I UP nNGER DOWN t DOUBLE CLICK I I DOUBLE CLICK I .~. ... ~ a ~ >tsncKMAX tT1~tTAPMAX tT2~trAPMAX tT3~tTAPMAX tT1~tTAPMAx tT2~tTAPMAX '----J tT.PtTAPMAX tT4~tTAPMAX B~~~~: I I FIG. II E I UP I ~ I I I I FIG. II F I r ~"" ~ ... ~ DOUBLE CUCK ~ a Q FINGER DOWN t>tsnCKMAX .w. . ... ~ tT1~tTAPMAX I B~ONUP DOWN I t TZ5:tTAPMAX t .&;:.. I T3~tTAPMAX I I ". FIG. II G UI ...... -.. t ~ ~ oc I UP FINGER DOWN BUTTON UP DOWN DRAG t ~ tsTIC KMAX I I GAP ALLOWED TO UFT + REPOSmON FINGER e · · ~ 00 DRAG + STICK t ~tsl1CKMAX I/ I ~ ~ Ul t ~tsnCKMAX rt~/I~~I tT3>tTAPMAX / = f""!'- tT1~tTAPMAX t T2>tTAPMAX I FIG. II H I DRAG r t n ~tTAPMAX I t T2>tTAPMAX I r ~ ~ tsnCKMAX tsnc KMAX FIG. II I ~ ~ + DISENGAGE STICK I ;:-:',-- II UP t ~tsTICKMAX t ~tsnCKMAX ~ FINGER DOWN SUlTON UP DOWN ~ ~ tT1~tTAPMAX I tT~tTAPMAX tT3~tTAPMAX I '"....:a . 01 FIG. II J '" ~ ~ t oe 5,764,218 1 METHOD AND APPARATUS F O R CONTACTING A TOUCH-SENSITIVE C U R S O R - C O N T R O L L I N G INPUT D E V I C E T O GENERATE BUTTON VALUES 5 2 m a i n t a i n i n g t h i s b u t t o n d e p r e s s e d w h i l e m o v i n g the t a r g e t e d object t o a new location b y m o v i n g t h e c u r s o r v i a t h e touchpad. A u s e r c a n further drag a t a r g e t e d o b j e c t a b o u t the screen b y p e r f o r m i n g a c l i c k - a n d - d r a g o p e r a t i o n . w h i c h involves ( 1 ) using t h e touchpad t o p o s i t i o n t h e c u r s o r o v e r t h e t a r g e t e d o b j e c t . (2) s e l e c t i n g t h e t a r g e t e d o b j e c t b y d e p r e s s i n g a n d r e l e a s i n g t h e m e c h a n i c a l b u t t o n (i.e.. b y p e r f o r m i n g a c l i c k o p e r a t i o n ) , ( 3 ) d e p r e s s i n g the m e c h a n i c a l b u t t o n a n d m a i n t a i n i n g this b u t t o n d e p r e s s e d w h i l e m o v i n g t h e o b j e c t t o i t s n e w location b y m o v i n g the c u r s o r v i a the t o u c h p a d . a n d (4) r e l e a s i n g t h e o b j e c t b y r e l e a s i n g t h e m e c h a n i c a l b u t t o n switch. Finally, t h r o u g h t h e t o u c h p a d a n d t h e m e c h a n i c a l button. a user c a n p e r f o r m n u m e r o u s o t h e r multi-click a n d multi-click-and-drag o p e r a t i o n s (e.g .. tripleclick. d o u b l e c l i c k - a n d - d r a g . t r i p l e c l i c k - a n d - d r a g . etc.). C o n s e q u e n t l y . i n o r d e r t o p e r f o r m click. d o u b l e - c l i c k . a n d d r a g o p e r a t i o n s . p r i o r art t o u c h p a d s n o t o n l y r e q u i r e t h e u s e o f a t o u c h p a d b u t also r e q u i r e t h e u s e o f a m e c h a n i c a l b u t t o n switch. P r i o r a r t m e c h a n i c a l b u t t o n s w i t c h e s are m o u n t e d either separately as control b u t t o n s o r i n t e g r a t e d i n t o the overall p a d a s s e m b l i e s such t h a t the d e p r e s s i o n o f the p a d surfaces actuates these switches. In either of these i m p l e m e n t a t i o n s , t h e r e is t h e a d d e d e l e c t r o m e c h a n i c a l c o m p l e x i t y a n d cost. Moreover. m e c h a n i c a l switches i n t e g r a t e d a s p a r t o f t h e t o u c h p a d r e q u i r e fine a d j u s t m e n t s t o p r e v e n t i n a d v e r t e n t o p e r a t i o n through n o r m a l use o f t h e touchpad. Also, as t h e s e a d j u s t m e n t s v a r y b e t w e e n u s e r s (e.g .· different users p r e f e r o p e r a t i o n o f t h e s w i t c h e s b a s e d o n d i f f e r e n t finger p r e s s u r e s ) . t h e c a l i b r a t i o n o f i n t e g r a t e d m e c h a n i c a l button switches across a wide population becomes problematic. T h u s , t h e r e is a n e e d i n t h e f i e l d o f c o m p u t e r i n t e r f a c e s f o r an a p p a r a t u s a n d m e t h o d o f i m p l e m e n t i n g t h e b u t t o n g e n e r a t i o n f u n c t i o n w i t h o u t using a m e c h a n i c a l b u t t o n switch. Elimination o f t h e mechanical button s w i t c h n o t o n l y results i n f e w e r p a r t s a n d s i m p l i f i e s t h e a s s e m b l y p r o c e s s . b u t it a l s o enhances q u a l i t y a n d reliability a s well. F u r t h e r m o r e . such an a p p a r a t u s a n d m e t h o d w o u l d b e i d e a l l y s u i t e d f o r p o r t a b l e c o m p u t e r s as t h i s m e t h o d a n d a p p a r a t u s r e d u c e s b o t h size a n d weight. SUMMARY OF THE INVENTION 45 BACKGROUND OF THE INVENTION 1. F i e l d o f t h e I n v e n t i o n T h e p r e s e n t invention p e r t a i n s t o t h e field o f c o m p u t e r i n t e r f a c e s . M o r e particularly. the p r e s e n t i n v e n t i o n relates t o a m e t h o d a n d an apparatus for contacting a touch-sensitive c u r s o r - c o n t r o l l i n g i n p u t device t o g e n e r a t e b u t t o n values s i m u l a t i n g t h e b u t t o n s t a t e o f a m e c h a n i c a l b u t t o n switch. 2. B a c k g r o u n d Art W i t h t h e virtual explosion i n t h e n u m b e r o f computer s y s t e m s . t h e r e has b e e n a c o r r e s p o n d i n g i n c r e a s e i n d e m a n d f o r i n p u t d e v i c e s that facilitate t h e h u m a n i n t e r a c t i o n w i t h these c o m p u t e r systems. O n e t y p e o f p r i o r a r t i n p u t devices s i m p l y c o n s i s t o f keyboards. T h e s e p r i o r a r t i n p u t devices r e q u i r e the h u m a n operators t o e n t e r data by t y p i n g o n a l p h a - n u m e r i c . special function. a n d a r r o w k e y s o f the keyboards. T h e entered d a t a a r e t h e n usually displayed o n c o m p u t e r screens. O t h e r m o r e sophisticated a n d user-friendly p r i o r a r t i n p u t interfaces u s e cursor controllers a n d mechanical button s w i t c h e s t o p e r f o r m c o n t r o l o p e r a t i o n s (such a s c u r s o r m a n i p u l a t i o n . c l i c k i n g . dOUble-clicking. d r a g g i n g . c l i c k i n g a n d - d r a g g i n g , e t c . ) i n o r d e r to e d i t t e x t . s e l e c t o b j e c t s d i s p l a y e d o n t h e screen (e.g .. i c o n s . m e n u s . scrollbars. text. etc.), o r t o i n i t i a t e a g i v e n c o m m a n d (e.g., s a v e o r c l o s e a file. etc.). U n d e r this p r i o r a r t approach. t h e u s e r m a n i p u l a t e s t h e i n p u t d e v i c e i n o r d e r t o c o n t r o l the m o v e m e n t o f the c u r s o r o n a d i s p l a y s c r e e n a n d to g e n e r a t e b u t t o n s i g n a l s f o r p e r f o r m i n g t h e desired editing, selection. o r c o m m a n d . F o r e x a m p l e . a u s e r can s e l e c t an i c o n d i s p l a y e d o n t h e c o m p u t e r screen b y p l a c i n g a c u r s o r o v e r t h e i c o n and b y clicking o n t h e m e c h a n i c a l button s w i t c h (i.e .. b y d e p r e s s i n g a n d then r e l e a s i n g t h i s m e c h a n i c a l b u t t o n switch). T h e r e a r e several different t y p e s o f c u r s o r controlling input devices for controlling t h e m o v e m e n t o f the cursor a c r o s s a d i s p l a y screen. T h e s e i n p u t d e v i c e s i n c l u d e a m o u s e . a trackball. a j o y s t i c k . a w r i t i n g p e n , a stylus tablet, a n d a t o u c h p a d . T o u c h p a d s a r e o n e o f the m o r e p r o m i s i n g c u r s o r c o n t r o l l i n g i n t e r f a c e d e v i c e s c u r r e n t l y i n use. B y s e n s i n g t h e inherent c a p a c i t a n c e associated w i t h a u s e r ' s finger. a t o u c h p a d e n a b l e s a u s e r t o c o n t r o l t h e t r a c k i n g o f t h e c u r s o r (i.e., t o m o v e t h e c u r s o r across t h e d i s p l a y screen) w i t h h i s finger. I n o t h e r w o r d s . a u s e r c a n s i m p l y t r a c e h i s f i n g e r a c r o s s t h e t o u c h p a d i n o r d e r to c o m m a n d t h e c o m p u t e r t o m o v e the c u r s o r t o any d e s i r e d l o c a t i o n o n t h e screen. After t h e u s e r p o s i t i o n s t h e c u r s o r o v e r t h e target, t h e u s e r c a n d e p r e s s and r e l e a s e a m e c h a n i c a l b u t t o n s w i t c h ( i . e . , c a n p e r f o r m a c l i c k o p e r a t i o n ) i n o r d e r t o e d i t t e x t . to s e l e c t a n o b j e c t d i s p l a y e d o n the s c r e e n ( e . g . , s e l e c t a n i c o n , a n m e n u . a scrollbar. e t c . ) . o r t o i n i t i a t e a g i v e n c o m m a n d ( s u c h as s a v e o r close a file). I n a d d i t i o n , a f t e r u s i n g t h e t o u c h p a d t o m o v e t h e c u r s o r t o t h e target, a u s e r c a n display t h e c o n t e n t s o f t h e t a r g e t e d o b j e c t b y d e p r e s s i n g and t h e n r e l e a s i n g t h e m e c h a n i c a l b u t t o n t w i c e in r a p i d succession ( i . e.· b y p e r f o r m i n g a d o u b l e - c l i c k o p e r a t i o n ) . F u r t h e r m o r e . a u s e r c a n p e r f o r m d r a g o p e r a t i o n s . s u c h as g r o u p i n g o f o b j e c t s o r t e x t , b y u s i n g t h e t o u c h p a d t o "wipe" o v e r the objects or t e x t w i t h t h e c u r s o r while depressing the m e c h a n i c a l button switch. I n addition. a u s e r c a n p e r f o r m a d d i t i o n a l d r a g o p e r a t i o n s s u c h a s " t e a r i n g off" m e n u s , (1) by u s i n g t h e touchpad t o position t h e cursor o v e r a targeted object. a n d (2) b y d e p r e s s i n g t h e m e c h a n i c a l b u t t o n and 10 15 20 25 30 35 40 T h e p r e s e n t invention provides a m e t h o d a n d an apparatus for c o n t a c t i n g a touch-sensitive c u r s o r - c o n t r o l l i n g i n p u t d e v i c e t o g e n e r a t e b u t t o n v a l u e s s i m u l a t i n g t h e b u t t o n state o f a m e c h a n i c a l b u t t o n switch. T h e m e t h o d a n d a p p a r a t u s o f t h e p r e s e n t i n v e n t i o n e n a b l e a n o p e r a t o r t o u t i l i z e the t o u c h - s e n s i t i v e c u r s o r - c o n t r o l l i n g i n p u t d e v i c e t o c h a n g e the 50 v a l u e o f a B u t t o n S t a t e variable ( w h i c h s i m u l a t e s t h e B u t tollState o f a m e c h a n i c a l b u t t o n s w i t c h ) b y ( 1 ) d e t e c t i n g contact i n t e r v a l s w h e n the user contacts t h e t o u c h - s e n s i t i v e i n p u t d e v i c e , (2) detecting g a p intervals b e t w e e n s u b s e q u e n t contact intervals. a n d (3) m o v i n g the c u r s o r o n the display 55 screen a n d c h a n g i n g the v a l u e o f the B u t t o n S t a t e v a r i a b l e b a s e d o n t h e d u r a t i o n o f t h e c o n t a c t a n d g a p intervals. I n turn, this b u t t o n g e n e r a t i o n c a p a b i l i t y e n a b l e s a n o p e r a t o r t o p e r f o r m w i t h a single touch-sensitive i n p u t device numerous control o p e r a t i o n s , such as c u r s o r m a n i p u l a t i o n , c l i c k . multi( i ) click, d r a g , c l i c k - a n d - d r a g , a n d m u l t i - c l i c k - a n d - d r a g o p e r a tions. B R I E F DESCRIPTION O F T H E DRAWINGS T h e objects a n d advantages o f t h e p r e s e n t invention w i l l 65 b e c o m e m o r e r e a d i l y a p p a r e n t t o t h o s e o r d i n a r i l y s k i l l e d i n t h e art a f t e r r e v i e w i n g the f o l l o w i n g d e t a i l e d d e s c r i p t i o n a n d accompanying drawings. wherein: 5.764.218 3 F I G . 1 p r e s e n t s a c o m p u t e r system u p o n which o n e e m b o d i m e n t o f t h e p r e s e n t invention i s implemented. F I G . 2 s h o w s an e x a m p l e o f a t o u c h - s e n s i t i v e c u r s o r controlling i n p u t device t h a t m a y be utilized to implement t h e p r e s e n t invention. F I G . 3 s h o w s a p e r s p e c t i v e view o f a c o m p u t e r s y s t e m utilizing t h e touch-sensitive i n p u t device o f FIG. 2. FIG. 4 presents one e m b o d i m e n t o f the present invention f o r g e n e r a t i n g button v a l u e s w i t h a t o u c h - s e n s i t i v e cursorc o n t r o l l i n g i n p u t device. s u c h a s t h e t o u c h - s e n s i t i v e i n p u t device o f F I G . 2. F I G . 5 p r e s e n t s t i m i n g d i a g r a m s w h i c h describe t h e operation o f the embodiment o f the present invention set forth i n F I G . 4. FIG. 6 p r e s e n t s an alternative e m b o d i m e n t o f the present i n v e n t i o n f o r generating b u t t o n v a l u e s w i t h a t o u c h - s e n s i t i v e c u r s o r - c o n t r o l l i n g i n p u t d e v i c e . such a s t h e t o u c h - s e n s i t i v e input device o f FIG. 2. FIG. 7 p r e s e n t s t i m i n g d i a g r a m s w h i c h describe t h e o p e r a t i o n o f t h e e m b o d i m e n t o f t h e p r e s e n t invention set forth i n F I G . 6. FIGS. 8 a n d lJ present yet another embodiment o f the p r e s e n t invention for generating button v a l u e s with a touchsensitive cursor-controlling input device, such as the touchsensitive i n p u t device o f F I G . 2. wherein t h e steps o f this e m b o d i m e n t o f the p r e s e n t i n v e n t i o n a r e i m p l e m e n t e d b y a t o u c h - s e n s i t i v e input d r i v e r s t o r e d i n t h e c o m p u t e r system. FIG. 10 p r e s e n t s a c o m p u t e r s y s t e m u p o n w h i c h t h e e m b o d i m e n t o f the present invention sets forth i n FIGS. 8 a n d lJ i s implemented. FIG. I t A - I l l p r e s e n t t i m i n g d i a g r a m s describing t h e o p e r a t i o n o f t h e e m b o d i m e n t o f the p r e s e n t i n v e n t i o n s e t forth i n F I G S . 8 and lJ. 4 C o m p u t e r system 1 0 0 m a y further include a d i s p l a y device 130. such as a c a t h o d e r a y tube ( C R f ) o r a l i q u i d c r y s t a l d i s p l a y ( L C D ) c o u p l e d t o b u s 1 8 5 for d i s p l a y i n g information to a c o m p u t e r user. Alphanumeric i n p u t device 1 3 5 ( e . g . , a keyboard) m a y a l s o b e c o u p l e d to bus 1 0 5 f o r c o m m u n i c a t i n g i n f o r m a t i o n a n d c o m m a n d s e l e c t i o n s to p r o c e s s o r 110. A n a d d i t i o n a l u s e r i n p u t device which m a y be coupled to bus 105 i s c u r s o r controller 140. Input d e v i c e 1 4 0 m a y t a k e m a n y d i f f e r e n t f o r m s . s u c h as a m o u s e . a t r a c k b a l l . a stylus tablet. a t o u c h - s e n s i t i v e i n p u t device ( e . g .. a 10 t o u c h p a d ) . etc. M i c r o c o n t r o l l e r 1 5 5 p r o v i d e s an i n t e r f a c e b e t w e e n c u r s o r c o n t r o l l e r 1 4 0 a n d bus 105. A n o t h e r d e v i c e w h i c h m a y b e coupled t o b u s 1 0 5 i s h a r d c o p y d e v i c e 145 w h i c h m a y b e used f o r p r i n t i n g a h a r d c o p y o n p a p e r . I t 15 s h o u l d b e noted t h a t any o r a l l o f the c o m p o n e n t s o f c o m p u t e r system 1 0 0 a n d associated hardware may b e u s e d i n conjunction with the present invention. However. i t is appreciated t h a t any t y p e o f configuration o f the s y s t e m m a y b e u s e d for various p u r p o s e s as the u s e r requires. A s mentioned b e f o r e . o n e e m b o d i m e n t o f cursor control20 l e r 140 o f F I G . 1 i s a t o u c h - s e n s i t i v e i n p u t d e v i c e . T h i s touch-sensitive input d e v i c e m a y b e a separate p a d w h i c h c o u l d b e h e l d i n the h a n d . p l a c e d o n a desktop. o r b u i l t i n t o t h e c o m p u t e r k e y b o a r d . A n o p e r a t o r utilizes t h i s t o u c h 25 sensitive i n p u t d e v i c e b y c o n t a c t i n g (e.g.. t o u c h i n g t h e d e v i c e w i t h his f i n g e r ) . w h i c h i n t u r n c a u s e s a c u r s o r t o m o v e across the display d e v i c e b a s e d o n the i n f o r m a t i o n p e r t a i n i n g t o the o p e r a t o r ' s c o n t a c t ( e . g .. the displacement o f t h e o p e r a t o r ' s finger o n t h i s d e v i c e ) t h a t t h i s d e v i c e p r o v i d e s 3 0 t o t h e c o m p u t e r . I n a d d i t i o n , as m e n t i o n e d b e l o w . t h e m e t h o d a n d a p p a r a t u s o f t h e p r e s e n t i n v e n t i o n e n a b l e an o p e r a t o r t o generate b u t t o n v a l u e s b y contacting this touchs e n s i t i v e i n p u t device. M o r e speciftcally. a n o p e r a t o r c a n utilize this touch-sensitive i n p u t device t o c h a n g e the value 3 5 o f a B u t t o n S t a t e v a r i a b l e ( w h i c h s i m u l a t e s the b u t t o n s t a t e D E r A I L E D DESCRIPTION o f a mechanical b u t t o n switch) b a s e d o n the t e m p o r a l duration o f t h e u s e r ' s c o n t a c t s w i t h this t o u c h - s e n s i t i v e i n p u t T h e p r e s e n t invention i s a m e t h o d a n d a n apparatus for device (i.e .. based on the duration o f the contact intervals) c o n t a c t i n g a touch-sensitive cursor-controlling i n p u t device a n d the l a p s e o f time b e t w e e n s u b s e q u e n t contact intervals t o g e n e r a t e b u t t o n values c o r r e s p o n d i n g t o t h e button state (i.e., t h e up a n d down states) o f a m e c h a n i c a l button switch. 4 0 (i.e .. based on the d u r a t i o n o f t h e g a p intervals b e t w e e n the c o n t a c t intervals). I n t h e f o l l o w i n g description. f o r p u r p o s e s o f explanation, F I G . 2 presents one e m b o d i m e n t o f the t o u c h - s e n s i t i v e n u m e r o u s s p e c i f i c details a r e s e t f o r t h i n o r d e r t o p r o v i d e a i n p u t device that m a y be utilized t o implement t h e p r e s e n t t h o r o u g h u n d e r s t a n d i n g o f t h e p r e s e n t i n v e n t i o n . However, i n v e n t i o n . F o r one e m b o d i m e n t o f t h e p r e s e n t i n v e n t i o n . i t w i l l b e understood by o n e o f ordinary skill i n the a r t that t h e p r e s e n t invention may b e p r a c t i c e d w i t h o u t these specific 45 touch-sensitive cursor-controlling i n p u t device 2 0 0 o f F I G . 2 i s a touchpad. T o u c h p a d 2 0 0 i n c l u d e s virtual e l e c t r o d e p a d details. I n o t h e r instances, w e l l - k n o w n structures a n d 2 0 5 . electrical balance m e a s u r e m e n t circuit 2 1 5 . b a l a n c e devices are shown in b l o c k d i a g r a m f o r m i n order not t o r a t i o determination c i r c u i t 2 2 0 . a n d rnicrocontroller 2 2 5 . F o r o b s c u r e t h e description o f t h e p r e s e n t i n v e n t i o n w i t h unneco n e e m b o d i m e n t o f t h e p r e s e n t invention. virtual e l e c t r o d e e s s a r y detail. F I G . 1 presents a c o m p u t e r system upon which one 50 p a d 2 8 5 is i n t h e s h a p e o f a r e c t a n g u l a r sheet. I t is c a p a b l e o f f o n n i n g " v i r t u a l e l e c t r o d e s " a t v a r i o u s p o s i t i o n s o n its t o p e m b o d i m e n t o f the p r e s e n t i n v e n t i o n i s i m p l e m e n t e d . C o m a n d b o t t o m surfaces. T h e s e e l e c t r o d e s a r e d e n o t e d a s " v i r p u t e r s y s t e m 1 0 0 includes a b u s o r o t h e r c o m m u n i c a t i o n t u a l e l e c t r o d e s " since s e p a r a t e c o n d u c t i v e strips o n t h e t w o m e a n s 105 f o r communicating i n f o r m a t i o n . A microprocessides o f p a d 205 are u s e d to f o r m single elements d e n o t e d as s o r 110 couples with bus 105 for p r o c e s s i n g digital data. C o m p u t e r system 100 further includes a r a n d o m access 5 5 " v i r t u a l electrodes." T h e virtual electrodes are c o n n e c t e d to e l e c t r o n i c c i r c u i t r y c a p a b l e o f m e a s u r i n g t h e e l e c t r i c a l balm e m o r y ( R A M ) o r some o t h e r d y n a m i c s t o r a g e d e v i c e 1 1 5 a n c e b e t w e e n selected t o p a n d b o t t o m v i r t u a l e l e c t r o d e s . ( r e f e r r e d t o i n F I G . 1 as m a i n m e m o r y ) , w h i c h a l s o c o u p l e s B a l a n c e ratio determination c i r c u i t 2 2 0 determines the to bus 105. Main memory 115 stores digital data a n d r a t i o o f o n e b a l a n c e m e a s u r e m e n t t o another. M i c r o c o n t r o l p r o g r a m instructions for execution b y p r o c e s s o r 110. Main m e m o r y 115 also may b e u s e d for storing temporary vari- 60 l e r 225 selects appropriate electrodes for b a l a n c e m e a s u r e m e n t a n d r a t i o determination. Microcontroller 2 2 5 also ables o r o t h e r intermediate i n f o r m a t i o n d u r i n g execution b y p r o c e s s o r 110. Computer s y s t e m 1 0 0 a l s o includes a r e a d r e s p o n d s to balance r a t i o s t o c a l c u l a t e p o s i t i o n i n f o r m a t i o n o f t h e s e n s e d o b j e c t ( e . g . , finger 2 1 0 ) . T h i s i n f o r m a t i o n m a y o n l y m e m o r y ( R O M ) a n d / o r o t h e r s t a t i c s t o r a g e device 1 2 0 i n c l u d e p o s i t i o n a l d a t a a l o n g o n e axis o r t w o axes p a r a l l e l t o c o u p l e d t o bus 185 for storing static information and instructions for p r o c e s s o r 11 O. I n addition. m a s s d a t a storage device 65 t h e electrode p a d s u r f a c e (e.g.. a l o n g t h e x and y axes). A d d i t i o n a l " p r o x i m i t y " i n f o r m a t i o n along an axis p e r p e n 1 2 5 s u c h as a m a g n e t i c d i s k o r a n o p t i c a l d i s k a n d i t s corresponding disk drive m a y a l s o b e included. d i c u l a r to t h e surface o f e l e c t r o d e p a d 2 0 5 (e.g.. a l o n g the 5,764.218 5 z-axis) may also be determined from an appropriate balance measurement. Position information determined by microcontroller 225 is provided to a utilization means 230, which may be any o f a variety of electronic or computer devices (such as computer s y s t e m 100). Consequently. touchpad 200 generates x, y, and z data pertaining to the u s e r ' s contact with the touchpad (e.g .. pertaining to the p o s i t i o n o f the operator's finger on the touchpad) over s o m e region in the x, y a n d z directions. Velocities. accelerations. timing differentials. and signal strengths can be determined from this data string. As mentioned below. when t h e s e parameters are considered along with prior events. it i s possible to discern between cursor manipUlation, click. multi-click. drag, click-and-drag. and multi-click-and-drag operations. Additionally. raw x, y, and z data can be filtered to optimize the operation o f the touch-sensitive input device as perceived by the user. Since feedback to the user that an operation h a s been i n i t i a t e d o r c o m p l e t e d i s important. f e e d b a c k t o t h e user c a n be incorporated into the pcesent invention through the use o f audio signals (e.g., various beeps, clicks. o r customizable sounds issued through t h e computer's sound system) or video signals (e.g., a c h a n g e in shape, color. or highlighting o f the c u r s o r , o n - s c r e e n s t a t u s i n d i c a t o r , e t c . ) . FIG. 3 shows a perspective view o f a computer system 3 0 0 having touchpad 2 0 0 o f FIG. 2. Personal computer 3 " includes a keyboard 310, palm rests 315, display screen 320. a n d t o u c h p a d 3 0 5 . T o u c h p a d 3 0 5 enables a u s e r t o c o n t r o l the movements of c u r s o r 325 on screen 320 b y contacting the t o u c h p a d ( e . g . . b y m o v i n g h i s f i n g e r a c r o s s t h e touchpad). In addition, b a s e d on the duration of an operat o r ' s c o n t a c t s w i t h this t o u c h - s e n s i t i v e i n p u t d e v i c e a n d t h e duration o f g a p i n t e r v a l s between s u b s e q u e n t c o n t a c t intervals. toucbpad 3 0 5 enables a user to generate button values which simulate the button state (Le .. the up or down position) o f a mechanical button switch. Although computer 300 can b e any o f a variety o f computers. f o r one embodim e n t o f the p r e s e n t i n v e n t i o n i t i s a l a p t o p c o m p u t e r w h i c h is a single integrated u n i t (i.e .. has all o f its elements placed within o n e case) a n d which is small enough to fit onto a u s e r ' s lap. I n s i d e c o m p u t e r s y s t e m 3 0 0 r e s i d e all t h e e s s e n t i a l a n d well known electronic circuitry (such as the components shown in FIG. 1) f o r the computer's operation. FIG. 4 presents one embodiment of the present invention for generating button values by contacting a touch-sensitive cursor-controlling i n p u t device such as the touch-sensitive input device o f FIG. 2. This embodiment o f the present invention c a n b e i m p l e m e n t e d b y button g e n e r a t i o n c i r c u i t r y in the touch-sensitive input device o r in the computer system. Alternatively, this embodiment o f the present invention can b e implemented as a software code (Le., a code residing in the R A M ) o r a firmware code (i.e., a code residing i n the ROM) i n either the computer s y s t e m or the touch-sensitive i n p u t d e v i c e . T h e operation o f t h i s e m b o d i m e n t o f t h e p r e s e n t i n v e n t i o n will now be described b y reference t o FIG. 4 a n d FIG. 5 (which presents one embodiment o f the timing diagrams for the operation o f this embodiment of the present invention). The initial step in the flowchart o f FIG. 4 is the start/reset step 400. During this step, a BunonState variable, simulating the button state o f a mechanical button switch, is set to equal an Up value (i.e., a first predetermined button value). I f the user contacts the touch-sensitive input device for a first time (e.g.. i f the user touches the input device with his finger for a first time). the process t h e n transitions t o step 405. A t step 6 405 a determination i s made whether the first contact i n t e r v a l (tTl) l a s t s l o n g e r t h a n a u s e r s e l e c t a b l e p r e d e t e r mined m a x i m u m tap interval ( t MAX ). Also, a t step 40S an integer variable N, representing the number o f contact i n t e r v a l s f o r p e r f o r m i n g a p a r t i c u l a r c o n t r o l o p e r a t i o n (such a s a c u r s o r m a n i p u l a t i o n , c l i c k . m u l t i - c l i c k , d r a g , click-andd r a g , a n d m u l t i - c l i c k - a n d - d r a g o p e r a t i o n s ) . i s s e t equal t o one. As shown i n Part A o f FIG. 5, i f the first c o n t a c t interval lasts l o n g e r than the maximum t a p interval (i.e .. i f t T1 >tM A X ) ' t h e o p e r a t i o n o f the touch-sensitive c u r s o r - c o n t r o l l i n g input device during the first contact interval is identified as a cursor control operation (i.e .· a cursor tracking operation). Thus. positional data relating t o the u s e r ' s c o n t a c t with the touch-sensitive i n p u t device is supplied to the computer system in order t o effectuate cursor m o v e m e n t on the computer screen. In addition. once this initial cursor tracking operation is terminated (e.g .. once the user removes his finger f r o m the touchpad) the process resets t o step 400. Alternatively, i f at step 405 a determination i s made that the first contact interval d o e s not l a s t longer than the maximum tap interval (i.e.. i f I n f t MAX) . t h e process transitions to step 410. during which (as shown in Parts B - F o f FIG. 5) the ButtonState variable is set equal to a Down v a l u e (i.e .. a s e c o n d p r e - d e t e r m i n e d l e v e l ) a n d n u m b e r o f c o n t a c t s variable N is incremented by one. F r o m s t e p 4 1 0 t h e p r o c e s s t r a n s i t i o n s t o s t e p 4 1 5 . where a determination is m a d e w h e t h e r the u s e r initiates an Nt" c o n t a c t a f t e r t h e ( N - l ) t h contact i n l e s s t h a n a p r e d e t e n n i n e d m a x i m u m gap t i m e (i.e .. tOMAX ) ' In other words, a t step 415, a d e t e r m i n a t i o n i s m a d e w h e t h e r the t i m e i n t e r v a l between t h e ( N- l ) t h contact interval a n d the N'h c o n t a c t interval is l o n g e r t h a n a predetermined m a x i m u m gap interval (loMAX)' As shown i n P a r t B o f FIG. S. i f the gap interval is longer t h a n t h e p r e d e t e r m i n e d m a x i m u m g a p i n t e r v a l (i.e. i f t o > l o M A X ) ' t h e p r o c e s s i d e n t i f i e s t h e u s e r ' s c o n t a c t w i t h the t o u c h - s e n s i t i v e i n p u t d e v i c e a s a c l i c k o p e r a t i o n , a n d therefore transitions b a c k t o reset step 4 0 0 t o set the value o f the B u t t o n S t a t e v a r i a b l e e q u a l t o t h e Up v a l u e . O n t h e o t h e r h a n d . i f the g a p t i m e b e t w e e n t h e ( N - 1 ) ' " contact interval a n d the Nth contact interval is not longer than the m a x i m u m gap time (i.e. i f t o f tO M A X) ' the process t r a n s i t i o n s f r o m s t e p 4 1 5 t o s t e p 4 2 0 . D u r i n g s t e p 420. a determination is m a d e i f the N'" contact interval lasts longer t h a n t h e p r e d e t e r m i n e d m a x i m u m t a p i n t e r v a l (i.e.. i f t~tMAX)' As shown in Part D o f FIG. S. i f t h e N ' " contact interval d o e s last longer than t h e m a x i m u m tap interval. the process identifies the u s e r ' s c o n t a c t s w i t h the touch-sensitive i n p u t device as a drag operation and thus transitions to step 425. At step 4 2 5 . the process supplies t o the computer the p o s i t i o n a l d a t a c o r r e s p o n d i n g t o t h e u s e r ' s c o n t a c t w i t h the touch-sensitive input device (Le.. supplies cursor tracking d a t a t o t h e c o m p u t e r system). w h i c h a l o n g w i t h t h e b u t t o n d o w n value for the ButtonState variable enables the comp u t e r t o p e r f o r m t h e r e q u e s t e d d r a g operation. O n c e t h e u s e r t e r m i n a t e s h i s N ' " c o n t a c t w i t h t h e touchsensitive i n p u t device (e.g .. o n c e the user r e m o v e s his finger f r o m the touch-sensitive input device for the Nth time), the pcocess transitions t o step 435. During this step, a determin a t i o n i s m a d e w h e t h e r a f t e r t h e N ' " c o n t a c t i n t e r v a l , the operator recontacts t h e touch-sensitive i n p u t device in less than a predetermined m a x i m u m sticky drag time (i.e.. t s f tSMAX ) . I f so. the process transitions b a c k t o s t e p 425 and resumes i t s drag operation b y resuming t o supply to the computer cursor tracking data w h i l e ButtonState is set to the Down value. I n other words. as shown i n P a r t F o f FIG. 5 . step 43S enables a user t o continue a drag operation even 5 10 15 20 25 30 35 40 45 50 55 60 65 5,764.218 7 a f t e r m o m e n t a r i l y t e r m i n a t i n g a contact w i t h t h e t o u c h s e n s i t i v e i n p u t device. T h i s s t i c k y d r a g f e a t u r e o f t h e p r e s e n t i n v e n t i o n a l l o w s a u s e r t o q u i c k l y r e p o s i t i o n his c o n t a c t (e.g.. his finger) without d r o p p i n g a s e l e c t e d item. T h i s feature i s a d v a n t a g e o u s w h e n . f o r e x a m p l e . t h e u s e r ' s finger reaches the edge o f the p a d a n d has to b e r e p o s i t i o n e d i n order to continue dragging a n item. In o n e e m b o d i m e n t o f the p r e s e n t invention, a t s t e p 4 3 5 . before the sticky d r a g determination is made an i n i t i a l determination is m a d e w h e t h e r t h e u s e r w a s c o n t a c t i n g the p a d a t i t s e d g e p r i o r to the termination o f the contact. T h i s determination i n turn allows the sticky drag f e a t u r e to o n l y be activated for s i t u a t i o n s w h e r e the u s e r r e a c h e s the e d g e o f t h e p a d . Alternatively. as shown i n P a r t s C a n d E o f FIG. 5 , i f at step 4 2 0 a determination is m a d e t h a t the Nth contact interval is a n N t h t a p interval w h o s e duration is n o t l o n g e r t h a n the m a x i m u m t a p time ( t M A X ) . t h e p r o c e s s identifies u s e r ' s c o n t a c t s with t h e t o u c h - s e n s i t i v e i n p u t d e v i c e a s a p o s s i b l e multi-click. click-and-drag or multi-click-and-drag o p e r a t i o n , a n d t h u s sets t h e v a l u e o f t h e B u t t o n S t a t e v a r i a b l e e q u a l t o t h e U p v a l u e by t r a n s i t i o n i n g t o s t e p 4 3 0 . F r o m s t e p 4 3 0 . the p r o c e s s t r a n s i t i o n s b a c k t o s t e p 4 1 0 . d u r i n g w h i c h t h e B u t t o n S t a t e variable i s a g a i n s e t e q u a l t o t h e D o w n v a l u e (as shown i n Parts C a n d E o f F I G . 5) a n d N is i n c r e m e n t e d byone. T h e n at s t e p 4 1 5 . i f the g a p time (taN) b e t w e e n the N t h contact interval and the ( N-1 ) t h contact i n t e r v a l is greater t h a n t h e m a x i m u m g a p t i m e (taMAX)' t h e p r o c e s s i d e n t i f i e s t h e u s e r ' s c o n t a c t s with t h e t o u c h - s e n s i t i v e i n p u t d e v i c e a s a m u l t i - c l i c k operation and t h u s transitions b a c k to r e s e t step 4 0 0 where the ButtonState v a r i a b l e is set e q u a l t o t h e U p value ( a s s h o w n f o r a d o u b l e - c l i c k o p e r a t i o n i n P a r t C o f FIG. 5). Alternatively. i f t h e g a p time b e t w e e n the Nth contact i n t e r v a l and the ( N - I ) t h contact i n t e r v a l is less t h a n or equal to t h e m a x i m u m g a p t i m e (i.e .· i f tGN~tGMAX)'steps 4 2 0 - 4 3 5 are then p e r f o r m e d i n o r d e r to p e r f o r m multi-click. c l i c k - a n d - d r a g . and m u l t i - c l i c k - a n d - d r a g operations. F o r example, t h e user c a n p e r f o r m a click-and-drag (as shown in Part E o f F I G . 5 ) o r multi-click-and-drag operation b y c a u s i n g t h e p r o c e s s o f F I G . 4 t o t r a n s i t i o n f r o m step 4 1 5 t o s t e p s 4 2 0 . 4 2 5 . and 4 3 5 . FIG. 6 presents an alternative e m b o d i m e n t o f t h e present i n v e n t i o n for g e n e r a t i n g b u t t o n v a l u e s b y c o n t a c t i n g a touch-sensitive cursor-controlling input d e v i c e . such as the touch-sensitive input d e v i c e o f FIG. 2. T h i s e m b o d i m e n t o f the p r e s e n t invention c a n b e i m p l e m e n t e d b y button g e n e r a t i o n c i r c u i t r y i n t h e t o u c h - s e n s i t i v e i n p u t d e v i c e o r in t h e c o m p u t e r system. A l t e r n a t i v e l y . t h i s e m b o d i m e n t o f t h e p r e s e n t i n v e n t i o n c a n b e i m p l e m e n t e d as a s o f t w a r e c o d e o r a firmware c o d e i n e i t h e r t h e c o m p u t e r s y s t e m o r t h e t o u c h - s e n s i t i v e i n p u t device. F u r t h e r m o r e . this e m b o d i m e n t o f t h e p r e s e n t invention g e n e r a t e s button v a l u e s b a s e d on t h e t e m p o r a l d u r a t i o n o f t h e u s e r ' s contacts w i t h t h e t o u c h s e n s i t i v e i n p u t device ( i . e . . b a s e d o n t h e d u r a t i o n o f t h e c o n t a c t i n t e r v a l s ) and t h e l a p s e o f t i m e b e t w e e n s u b s e q u e n t contact intervals (i.e .· b a s e d on the d u r a t i o n o f the g a p intervals b e t w e e n s u b s e q u e n t contact i n t e r v a l s ) . M o r e specifically. t h i s e m b o d i m e n t o f the p r e s e n t i n v e n t i o n o p e r ates b y ( 1 ) i n i t i a t i n g t i m e r s a t t h e i n i t i a t i o n o r t e r m i n a t i o n o f a c o n t a c t i n t e r v a l . a n d (2) t h e n d e t e r m i n i n g w h e t h e r t h e u s e r terminates h i s c o n t a c t o r i n i t i a t e s another c o n t a c t p r i o r to t h e e x p i r a t i o n o f t h e s e timers. T h e s e timers c a n b e e i t h e r c o u n t up o r c o u n t down timers. w h i c h r e s p e c t i v e l y expire w h e n they r e a c h a p r e d e t e r m i n e d e x p i r a t i o n v a l u e b y c o u n t i n g u p o r by c o u n t i n g d o w n . I n a d d i t i o n . f o r t h e e m b o d i m e n t o f the p r e s e n t i n v e n t i o n s h o w n i n F I G . 6 . t h e v a l u e o f each o f t h e timers c a n b e adjusted b y the user. 8 T h e o p e r a t i o n o f this e m b o d i m e n t o f t h e p r e s e n t i n v e n t i o n w i l l n o w b e d e s c r i b e d b y r e f e r e n c e t o F I G . 6 a n d FIG. 7 (which p r e s e n t s o n e e m b o d i m e n t o f t h e t i m i n g diagrams f o r this e m b o d i m e n t o f the present invention). I n the following d e s c r i p t i o n . c o n t a c t intervals are i n i t i a t e d b y t h e u s e r p l a c i n g his finger d o w n o n the touch-sensitive i n p u t device (i.e .. b y a finger d o w n o p e r a t i o n ) a n d c o n t a c t s a r e t e r m i n a t e d b y the user removing his finger from the i n p u t d e v i c e (e.g .. b y the user performing a finger up operation). However. i t is to b e u n d e r s t o o d t h a t t h e u s e r c a n employ a l t e r n a t i v e m e a n s ( s u c h as a mechanical object) for initiating a n d terminating his c o n t a c t s with t h e t o u c h - s e n s i t i v e i n p u t d e v i c e . As shown in FIG. 6. this e m b o d i m e n t o f the present i n v e n t i o n i n i t i a t e s a t s t a r t l r e s e t step 6 0 0 . A t t h i s s t e p . t h e v a l u e o f a B u t t o n S t a t e v a r i a b l e . s i m u l a t i n g t h e b u t t o n state o f a mechanical button switch. is set to equal a n Up value (e.g .. a first predetermined value). O n c e the u s e r places his finger on the touch-sensitive i n p u t device (i.e .. once t h e user performs a finger down operation for a first time). the p r o c e s s transitions t o step 605 i n order t o i n i t i a t e a tap timer (i.e .· i n o r d e r t o cause a tap timer to start counting). I f the tap timer expires p r i o r to user removing his finger. a latent press timer is initiated at step 610. As shown i n P a r t E o f FIG. 7. i f the user does not move his finger on the touch-sensitive i n p u t d e v i c e f o r t h e d u r a t i o n o f t h e l a t e n t p r e s s timer. t h e process (1) transitions to step 6350 where the ButtonState v a r i a b l e i s set e q u a l t o a D o w n v a l u e ( e . g . . a s e c o n d p r e d e t e r m i n e d button value). a n d (2) t h e n t r a n s i t i o n s t o s t e p 635b where cursor tracking d a t a is supplied to the computer i n o r d e r t o c a u s e a d r a g o p e r a t i o n t o b e p e r f o r m e d . However. i f the user moves his finger prior to t h e expiration o f the l a t e n t p r e s s e d timer. t h e p r o c e s s i d e n t i f i e s t h e u s e r ' s contact as a cursor tracking operation (as shown i n P a r t A o f FIG. 7 ) a n d t h u s t r a n s i t i o n s t o s t e p 620. A t s t e p 6 2 0 . t h e p r o c e s s p e r f o r m s the c u r s o r t r a c k i n g o p e r a t i o n by s u p p l y i n g p o s i t i o n a l d a t a r e l a t i n g to t h e u s e r ' s c o n t a c t (e.g., d a t a p e r t a i n i n g t o t h e u s e r ' s f i n g e r p o s i t i o n ) t o the c o m p u t e r system. O n c e t h e cursor tracking operation is terminated. the process then r e t u r n s t o s t a r t / r e s e t s t e p 600. Alternatively. as shown i n Parts B - D a n d F - H o f FIG. 7. i f a t s t e p 605 the t a p t i m e r does not expire p r i o r to the removal o f the first finger down. the B u t t o n S t a t e variable is s e t equal to t h e D o w n value (i.e .· a second predetermined v a l u e ) a n d a first gap t i m e r i s i n i t i a t e d a t s t e p 6 1 5 . I f t h e gap timer expires p r i o r to the user p l a c i n g his finger down again (i.e.. p r i o r to a second finger down). the p r o c e s s identifies t h a t t h e f i r s t finger d o w n ( w h i c h c a u s e d t h e t r a n s i t i o n f r o m s t e p 6 0 0 t o step 6 0 5 ) a n d t h e first f i n g e r u p ( w h i c h caused the transition f r o m step 605 to step 615) as a single click o p e r a t i o n . T h u s . as s h o w n i n P a r t B o f F I G . 7 , t h e p r o c e s s t r a n s i t i o n s b a c k t o step 6 0 0 . w h e r e t h e B u t t o n S t a t e variable i s set e q u a l t o a n U p v a l u e . O n the other hand., i f the first g a p t i m e r d o e s not expire b e f o r e t h e u s e r p u t s his finger b a c k d o w n o n t h e t o u c h sensitive input device (i.e.. i f t h e g a p t i m e r d o e s not expire b e f o r e a s e c o n d finger d o w n o p e r a t i o n ) . a m u l t i - c l i c k t i m e r is initiated at step 625. I f the multi-click t i m e r does not expire before the user removes his finger (i.e .. before another finger up operation). t h e process transitions t o step 630 w h e r e a s e c o n d g a p t i m e r i s i n i t i a t e d . I n a d d i t i o n . as s h o w n i n P a r t s C a n d F o f F I G . 7. the p r o c e s s a t s t e p 6 3 0 m o m e n t a r i l y set t h e v a l u e o f t h e B u t t o n S t a t e v a r i a b l e e q u a l t o the U p v a l u e ( w h i c h thereby produces a c l i c k operation) a n d then sets the value o f the ButtonStale variable equal to t h e D o w n value. F u r t h e r m o r e . i f t h e s e c o n d g a p timer e x p i r e s b e f o r e t h e user r e c o n t a c t s t h e t o u c h p a d . t h e p r o c e s s recognizes the p a s t finger up and finger d o w n operations as 10 15 20 25 30 35 40 45 50 55 60 65 5,764,218 9 p e r f o n n i n g a m u l t i - l i c k o p e r a t i o n a n d t h u s transitions b a c k to reset step 600 to set the value o f the ButtonState variable to t h e Up value (as shown for a double-click operation in Part C o f FIG. 7). However. i f the second gap timer does not expire before another finger down operation is performed. 5 the process transitions b a c k 625 in order to allow t h e user to p e r f o r m m u l t i - c l i c k a n d multi-click-and-drag operations. Alternatively. i f at step 625 the multi-click timer expires prior to the user removing his finger (i.e .. prior to another finger up). the process transitions to step 635b. A t this step. 10 in order to allow the user to perform drag. click-and-drag. a n d m u l t i - c l i c k - a n d - d r a g operations, c u r s o r m a n i p u l a t i o n data is supplied to the computer (as shown in Parts D - H o f FIG. 7). Once the user removes his finger. the process then transitions f r o m step 63Sb back t o start/reset step 600 i f the 15 drag operation did not involve movement o f an object. Drag o p e r a t i o n s d o n o t i n v o l v e m o v e m e n t o f objects i n s e v e r a l instances. such a s when drag operations are performed to ''wipe'' over text. t o scroll data. and to select objects from menus. 20 H o w e v e r . i f t h e drag o p e r a t i o n i n v o l v e d m o v e m e n t o f a n object. the process transitions from step 63Sb to step 6 4 8 once the user removes his finger. At step 648. a sticky drag t i m e r i s i n i t i a t e d . A s s h o w n i n Parts D - F o f FIG. 7 . i f p r i o r to the expiration o f this sticky drag t i m e r the user does not 25 recontact the touch-sensitive input device. the process sets the value o f the ButtonState variable equal to the Up value b y transitioning b a c k to startlreset step 680. However. i f the user recontacts the touch-sensitive input device p r i o r to the expiration o f the sticky drag timer. a disengage sticky drag 30 timer is initiated at step 645. As shown i n Part H o f FIG. 7. i f the user removes his finger before the disengage sticky drag timer expires. the process transitions back to start/reset step 600. Therefore. the disengage sticky drag timer provides an operator with the ability to circumvent the sticky 35 drag feature o f this embodiment o f the present invention. Alternatively. a s shown in Part G o f FIG. 7. i f the user does not remove his finger p r i o r to the expiration o f t h e sticky drag disengage timer. the process transitions b a c k to step 63Sb in order t o allow the user t o continue his drag. 40 click-and-drag. o r m u l t i - c l i c k - a n d - d r a g operation. FIGS. 8 and !it present yet another embodiment o f the p r e s e n t i n v e n t i o n f o r g e n e r a t i n g b u t t o n values w i t h a t o u c h sensitive cursor-controlling input device. such as a touchsensitive input device o f FIG. 2. T h i s embodiment o f the 45 present invention i s implemented upon c o m p u t e r s y s t e m 1018 of FIG. 10. As shown in this figure. computer system 1018 c o m m u n i c a t e s w i t h m o u s e ! G I S . k e y b o a r d 1820, a n d touchpad 1 0 2 5 t h r o u g h d e s k t o p b u s 1 0 3 5 . w h o s e o p e r a t i o n is controlled b y the microcontrollers o f desktop transceiver 50 1005 and o f the input devices (i.e .. mouse 1015. keyboard 1020. and touchpad 1025). These microcontrollers use a specific protocol (e.g.. the Apple® desktop bus protocol) to c o m m u n i c a t e t o e a c h o t h e r through t h e d e s k t o p b u s . I n o n e -embodiment o f the present invention, computer system 1810 55 is one o f the Macintosh@ family o f personal o r laptop computers such as the Macintosh@ Quadra@), Performa@. Powerbook®. PowerMac@ b r a n d p e r s o n a l c o m p u t e r s manufactured b y Apple@ Computer, Inc. o f Cupertino. Calif. (Apple. Macintosh. Quadra. Perforrna. Powerbook.. 60 a n d P o w e r M a c are r e g i s t e r e d t r a d e m a r k s o f A p p l e Coruputer. Inc.). For one embodiment o f the present invention. the steps o f the flow charts o f FIGS. 8 and 9 are performed b y a tOllchpad driver residing i n memory unit 1840 o f computer system 65 1010. Touchpad driver 1845 generates button values. corresponding to t h e button position o f a mechanical switch. 10 based on the temporal duration o f the u s e r ' s contact with the touchpad (i.e.. based on the duration o f the contact intervals) and the lapse o f time between subsequent contact intervals (i.e.. based on the duration o f the gap intervals between subsequent contact intervals). Consequently, once the touchpad driver has examined a data packet coming from touchp a d 1025 in order to determine whether to change the value o f a ButtonState v a r i a b l e . t o u c h p a d d r i v e r 1 0 4 5 i n i t i a l i z e s m o u s e d r i v e r 1 0 5 0 . T h e m o u s e d r i v e r then e x a m i n e s p o s i tional data coming f r o m the touchpad and the ButtonState variable. in order to perform control operations (such as cursor manipulation. click. multi-click.. drag. click-and-drag. a n d m u l t i - c l i c k - a n d - d r a g operations). T h e o p e r a t i o n o f t h i s t o u c h p a d d r i v e r w i l l now b e described with reference to FIGS. 8 and 9. A t step 800, a determination i s m a d e w h e t h e r i n f o r m a t i o n t r a n s m i t t e d t o desktop bus transceiver 1005 via desktop bus 1035 originated from touchpad 1025. I f so. at step 810. the determination is made whether this communication from the touchpad pertains t o positional data relating to a change in the user's contact with t h e touchpad (e.g., whether the data i n d i c a t e s a c h a n g e i n t h e u s e r ' s finger p o s i t i o n o n t h e touchpad in the x a n d y axes). In one embodiment o f the present invention. this detennination o f step 810 involves ascertaining w h e t h e r t h e c o m m u n i c a t i o n f r o m t o u c h p a d 1 0 2 5 originated f r o m t h e r e g i s t e r i n m i c r o c o n t r o l l e r 1 8 3 0 ( o f touchpad 1025) which stores information about the x and y displacements along the touchpad. I f this data p a c k e t does not indicate a change in the positional data relating to a u s e r ' s contact w i t h t h e touchpad. t h e n t h e t o u c h p a d driver transitions to step 890 which initiates the mouse driver. As m e n t i o n e d b e f o r e . a f t e r t h e t o u c h p a d driver p e r f o r m s t h e necessary analysis for its button generation function, the touchpad device enables the mouse driver to perform control operations by examining the positional data pertaining to the touchpad and the value o f the ButtonState variable. On the other hand. i f the data packet that the touchpad transmits t o the computer involves data pertaining t o a change in the u s e r ' s contact with the touchpad. steps 824h'l8O are executed. In step 820. a variable SampleTirne is set equal to the value o f a clock unit at the time when the process transitioned from step 810 to step 820. Since the process transitions from step 810 to step 8 2 0 when data pertaining to a change i n the user's contact with the touchp a d arrives from the touchpad. SampleTirne corresponds to the time o f arrival o f the last data packet from the touchpad. I n one embodiment o f the present invention. the clock is TickCount, which is a Macintosh low memory global dock containing the number o f "ticks" (where each tick is one sixtieth o f a second) since the computer was turned on. As mentioned below. the variable SampleTime is used to determine the time that elapses between the time that the user initiates a contact with the tOllchpad (e. g.. places his finger down on the touchpad) and the time the user tenninates this contact with the touchpad (e.g .. removes his finger from the touchpad.) At step 830. a determination is made whether a Boolean variable. FingerDown. has a value o f True o r False. I f this Boolean variable is not True. the touchpad driver next transitions to step 840. while i f it is True the process transitions to step 890. At step 840. the value o f the FingerDown variable is set to True. and a variable DownTime is set equal to SampleTime. Thus. when the user initiates the first contact with the touchpad (i.e.. when computer system 1010 receives the first data packet from the touchpad after either step 935 o r 9 5 0 o f FIG. It has set the v a l u e o f t h e F i n g e r D o w n variable t o False). the p r o c e s s o f 5,764,218 11 12 FIG. 8 transitions f r o m step 830 t o 840 and sets the the T i m e r P r o c e d u r e r e s e t s the timer p r o c e s s for another pass F i n g e r D o w n variable to True. A t step SSO. a determination a n d t h e p r o c e s s exits. i s m a d e w h e t h e r the t i m e r p r o c e d u r e o f F I G . 9 h a s b e e n O n t h e other hand. i f a t s t e p 9 1 5 a d e t e r m i n a t i o n i s m a d e initialized. I f so. the touchpad driver transitions to step 880. that the FingerDown variable is false. s t e p 945 is performed. Otherwise. steps 8(i0 a n d 870 are executed. I n step 8liO. I n step 945. a determination is made as to whether t h e c l o c k minus UpTime variable is greater than a user selected the timer running condition is set to be True a n d the value m a x i m u m sticky time. I f the result is negative. then step 9 4 0 o f a T i m e r P e r i o d v a r i a b l e i s set to e q u a l a p r e d e t e r m i n e d user selectable value. In one embodiment of the present i s e x e c u t e d . O t h e r w i s e . a t step 9 5 0 . t h e F i n g e r D o w n a n d T i m e r R u n n i n g c o n d i t i o n s a r e s e t to b e f a l s e . t h e T i m e r M a n invention. the TImerPeriod variable is set equal t o one h a l f o f DoubleTime. which is a Macintosh low m e m o r y global 10 ager i s canceled. and the ButtonState variable is set equal t o t h e U p value a t step 9 5 0 . v a r i a b l e r e p r e s e n t i n g t h e m a x i m u m n u m b e r o f ticks a l l o w e d A s m e n t i o n e d b e f o r e . the e m b o d i m e n t o f the p r e s e n t b e t w e e n t w o c l i c k s i n a d o u b l e - c l i c k o p e r a t i o n . T h e use o f i n v e n t i o n set forth i n F I G S . 8 a n d 9 p r o v i d e s a m e t h o d f o r DoubleTim.e i s convenient because it is user-adjustable and contacting a t o u c h p a d t o change the value o f a button i t r e l a t e s t o h o w fast a n o p e r a t o r might d e p r e s s a n d r e l e a s e 15 variable. which simulates the button state (e.g. . the u p o r the mechanical button switch. down p o s i t i o n ) o f a m e c h a n i c a l b u t t o n switch. M o r e Next. a t step 870. a TimerManager p r o g r a m is initiated s p e c i f i c a l l y . this e m b o d i m e n t o f t h e p r e s e n t i n v e n t i o n w h o s e s a l e p u r p o s e i s t o start t h e timer p r o c e d u r e o f F I G . 9 enables an operator t o generate button values based on the once every TimerPeriod. More specifically. this TimerManduration o f the contact intervals and the frequency o f the a g e r p r o g r a m r e p e a t e d l y c a l l s the t i m e r p r o c e d u r e o n c e contact intervals. I n turn, as shown i n FIG. n , this button every TimerPeriod until i t is canceled a t step 9 5 0 o f FIG. 9. 20 generation capability enables a n o p e r a t o r to perform with a Finally. at step 880. the touchpad driver p r o g r a m performs single t o u c h - s e n s i t i v e c u r s o r - c o n t r o l l i n g input d e v i c e an O R operation on the ButtonState variable (whose value is numerous control operations. such as c u r s o r manipulation. controlled by the timer procedure o f FIG. 9 ) w i t h an actual click, m u l t i - c l i c k . d r a g . c l i c k - a n d - d r a g . a n d m u l t i - c l i c k - a n d m e c h a n i c a l button switch value. This allows the mechanical drag o p e r a t i o n s . button switch to override the touchpad.. A t step 8!)O. the 25 For example. as shown in Part A o f FIG. 11. an operator v a l u e o f t h e B u t t o n S t a t e g e n e r a t e d a t step 8 8 0 a n d v a l u e o f c a n p e r f o r m a cursor manipulation o p e r a t i o n b y contacting the x. y. a n d z touchpad information is then supplied to the t h e touch-sensitive input device a n d m a i n t a i n i n g this c o n t a c t standard m o u s e driver. which then performs the requested f o r more than a user-selectable m a x i m u m tap interval (i.e.· control operation. t n > t D I P M A X) . I n other words. when the c o n t a c t interval is FIG. 9 presents one embodiment o f the t i m e r procedure 3 0 longer t h a n the m a x i m u m tap interval, this embodiment o f that o p e r a t e s in conjunction with the steps o f FIG. 8 to t h e p r e s e n t i n v e n t i o n d o e s not p r o d u c e a b u t t o n d o w n s i g n a l p r o d u c e b u t t o n values. At step 900. this t i m e r procedure is a n d o n l y initializes t h e m o u s e d r i v e r i n o r d e r t o c a u s e t h i s i n i t i a l i z e d every T i m e r P e r i o d b y the T i m e r M a n a g e r d r i v e r t o e x a m i n e t h e p o s i t i o n a l data c o m i n g f r o m t h e program, which is installed by the process o f F I G . 8. A t step t o u c h p a d t o p e r f o r m t h e r e q u e s t e d c u r s o r t r a c k i n g operation. !)OS. t h e computer reads the z-axis information from the 35 However. as shown in P a r t B o f FIG. 11. an operator c a n perform. a c l i c k operation b y (1) maintaining his first contact touchpad in order t o determine i f the user h a s terminated his contact w i t h the touchpad. T h e n . a t step 910. a determination with the touch-sensitive input device f o r less than the is made as t o whether the z-axis data read f r o m the touchpad maximum. tap interval. a n d (2) not initiating a second contact i n t e r v a l w i t h t h e t o u c h - s e n s i t i v e i n p u t d e v i c e until t h e i s less t h a n a p r e d e t e r m i n e d threshold v a l u e ( z r h r e S h o l d ) ' T h e z-axis d a t a is c

Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.


Why Is My Information Online?