Method of remapping the input elements of a hand

US007669770B2
(12) Ulllted States Patent
(10) Patent N0.:
Wheeler et al.
(54)
(45) Date of Patent:
METHOD OF REMAPPING THE INPUT
ELEMENTS OF A HAND-HELD DEVICE
5,859,629 A
(75) Inventors: Lorraine Wheeler, Billerica, MA (US);
Elaine Chen, Arlington, MA (US); Beth
Marcus, Bedford, MA (US)
(73) Assignee: Zeemote, Inc., Chelmsford, MA (US)
(*)
Notice:
DE
298 23 417 U1
5/1999
_
(Cont1nued)
OTHER PUBLICATIONS
seP- 6'1 2005
_
1/1999 TognaZZini
FOREIGN PATENT DOCUMENTS
Subject to any disclaimer, the term of this
patent is extended or adjusted under 35
USC 154(b) by 1035 days.
Filed:
Mar. 2, 2010
(Continued)
(21) Appl. No.: 11/221,412
(22)
US 7,669,770 B2
Donner, J. (2005). Research Approaches to Mobile Use in Develop
_
_
ing World: A Review of the Literature. International Conference on
(65)
Prlor Publleatlon Data
Us 2007/0051792 A1
Mar. 8, 2007
Mobile Communication and Asian Modernities City University of
H‘mg K‘mg’ Jun‘ 7'8’ 2005'
(51)
Int. Cl.
G06K 7/10
(C ont'“med)
Primary ExamineriDaniel A Hess
(52)
US. Cl. ..................... .. 235/472.01; 341/20; 341/22
(58)
Field of Classi?cation Search .......... .. 235/472.01;
(2006.01)
341/20; 710/65
See application ?le for complete search history.
(56)
(57)
ABSTRACT
References Cited
A technique for re-mapping the input elements disposed on a
US. PATENT DOCUMENTS
hand-held electronic device to an executable function that is
4,793,312 A
4,867,028 A
4,891,777 A
4,896,554
4,912,462
5,189,416
5,365,589
5,432,510
5,473,325
5,512,919
5,515,305
(74) Attorney, Agent, or FirmiFish & Richardson RC.
A
A
A
A
A
A
A
A
9/1989 Jones
1/1990 Lapeyre
1/1990
3/1990
2/1993
11/1994
7/1995
12/1995
4/1996
5/1996
5,523,754 A *
6/1996
3/1997 Levy
5,824,931 A
software applications, including at least one physical input
Culver
WashiZuka et al.
Estes
GutowitZ
Matthews
McAlindon
Araki
Register et al.
5,612,690 A
5,782,642 A
different than the pre-loaded or pre-assigned function(s) pro
vided in software applications may include receiving con
?guration settings for a software application or a class of
12/1988 Doinagaetal.
element, such as a key, rotary dial, or a button, associated with
at least one function, such as a shifting or index function or
insertion of a speci?c character; modifying a mapping func
tion, such as a keyboard device driver, a device layout or a
translation layer, based on the con?guration settings; and
executing the function associated with the physical input
element upon an activation, e.g., a press or actuation, of the
Eisen et a1. ................. .. 341/20
physical input element during operation of the software appli
cation.
7/1998 Goren
10/1998 Papadopoulo
3 Claims, 6 Drawing Sheets
[-105
111\'
Keyboard Device
Driver
Application Software '/ 112
120
User Presses an
input Element on
Electronic Device
124
Keyboard Device
Driver Translates
Press into Virtual
Input Element Code
130
Application So?ware
Gets Notified that a
User has Pressed a
Particular input
Element
US 7,669,770 B2
Page 2
US. PATENT DOCUMENTS
5,900,864 A
5,973,621 A
6,005,496 A
5/1999 MacDonald
10/1999 Levy
12/1999 Hargreaves et al.
6,084,576 A
7/2000 Leu et al.
6,107,988 A
8/2000 Phillipps
6,115,028
6,184,804
6,219,731
6,228,709
6,232,956
6,297,752
6,377,685
RE37,723
6,512,511
6,520,699
6,541,715
6,542,091
6,546,239
6,573,844
6,606,486
A
B1
B1
B1
B1
B1
B1
E
B2
B2
B2
B1
B1
B1
B1
6,615,299 B1*
6,654,733 B1
9/2000
2/2001
4/2001
5/2001
5/2001
10/2001
4/2002
6/2002
1/2003
2/2003
4/2003
4/2003
4/2003
6/2003
8/2003
9/2003
Balakrishnan et al.
Harrison
GutowitZ
Hsieh
Mailman
Ni
Krishnan
Goren
Willner et al.
Abe
Swanson
Rasanen
PaZdersky et al.
Venolia et al.
Cubbage et al.
Chu et al. ................... .. 710/65
11/2003 Goodman et al.
6,703,963 B2
3/2004 Higginson
6,738,045
6,741,235
6,760,013
6,865,718
6,885,317
6,885,318
5/2004
5/2004
7/2004
3/2005
4/2005
4/2005
Hinkley et al.
Goren
Willner et al.
Montalcini
GutowitZ
Bickerton
6,909,424 B2 *
6/2005
Liebenow et al. ......... .. 345/169
6,911,608 B2
6,947,028 B2
6/2005 Levy
9/2005 Shkolnikov
6,980,200
7,072,975
2002/0163504
2003/0020692
2003/0048205
2003/0061103
2003/0083114
2003/0095156
2003/0169188
B2
B1
B2
B2
B1
B2
B2
B2
A1
A1
A1
A1
A1
A1
A1
2003/0193418 A1*
12/2005 Goren
7/2006 Kato
11/2002 Pallakoff
1/2003
3/2003
3/2003
5/ 2003
5/2003
Grif?n et al.
He
Kanai
Lavin et a1.
Klein et a1.
9/2003 Chang et a1.
10/2003
Shi
........................... .. 341/22
2004/0107303 A1
6/2004 Mulligan
2004/ 0208681 A1
10/ 2004 Dechene
2005/0093846 A1*
5/2005
Marcus et al. ............ .. 345/184
Butts, L., et al., “An Evaluation of Mobile Phone Text Input Meth
ods,” Third Australasian Conference on User Interfaces, Melbourne,
Victoria, Australia, Jan. 1, 2002, pp. 55-59 http://www.crpit.com/
confpapers/CRPITV7Butts.pdf.
Wigdor, D. J ., “Chording and Tilting for Rapid, Unambiguous Text
Entry to Mobile Phone,” (thesis), 2004, describes chordtap and tilttap
(also covered in depth in the paper referenced below) http://www.
dgp.toronto.edu/~dwigdor/research/thesis/submitted.html.
Wigdor, D. and Balakrishnan, R. “A Comparison of Consecutive and
Concurrent Input Text Entry Techniques for Mobile Phones”, Con
ference on Human Factors, Apr. 24-29, 2004, vol. 6, No. 1, pp. 81-88,
http://portal.acm.org/citation.cfm?id:985703,
http://www.dgp.
toronto .edu/~ravin/papers/chi2004ic oncurrenttextinputpdf.
OnisZcZak, A., & MacKenZie, I. S., “A Comparison of Two Input
Methods for Keypads on Mobile Devices,” Proceedings of NordiCHI
2004, New York: ACM., pp. 101-104. http://www.yorku.ca/macld
nordichi2004.pdf.
Lyons, K., “Everyday Wearable Computer Use: A Case Study of an
Expert User,” In Proceedings of Mobile HCI 2003, pp. 61-75. http://
www.cc.gatech.edu/ccg/publications/everydayicase.pdf.
Lyons, K., et. al., “Twiddler Typing: One-Handed Chording Text
Entry for Mobile Phones,” Proc. Conf. Human Factors in Computing
Systems (SIGCHI 01), ACM Press, 2004, pp. 671-678. http://www.
cc . gatech. edu/ fac/ Thad. Starner/ p/ 03 0i10iMTE/twiddler-chi04.
pdf.
Wigdor, D. and Balakrishnan, R. “TiltText: Using Tilt for Text Input
to Mobile Phones,” Proceedings of the 16th annual ACM symposium
on User interface software and technology, Nov. 2-5, 2003,
Vancouver, Canada, pp. 81-90. http://portal.acm.org/citation.
cfm?id:964705,
uist2003itilttext.pdf.
http://www.dgp.toronto.edu/~ravin/papers/
Dunlop, M. D. and Crossan, A., “Dictionary Based Text Entry
Method for Mobile Phones,” published in Brewster, SA, and
Dunlop, M.D., (editors). Proceedings of Second Workshop on
Human Computer Interaction with Mobile Devices, Aug. 1999, pp.
1-4.
http://www.cis.strath.ac .uk/~mdd/research/publications/
99dunloperossan.pdf.
Pavlovych, A., et. al., “Less-Tap: A Fast and Easy-to-learn Text Input
Technique for Phones,” Graphics Interface 2003, pp. 97-104. http://
www. graphic sinterface .org/c gi-bin/ DownloadPaper?name:2003/
170/paper170.pdf.
MacKenZie, I. S., et, al., “LetterWise: Pre?x-based Disambiguation
for Mobile Text Input,” Proceedings of the 14th annual ACM sym
posium on User interface software and technology, Nov. 1 1-14, 2001,
Orlando, Florida.
Kober, H., et. al., “Linguistically Optimized Text Entry on a Cell
Phone,” In Proceedings of the CHI 2001. http://www.eatoni.com/
research/chi.pdf.
FOREIGN PATENT DOCUMENTS
EP
EP
EP
EP
EP
WO
W0
WO
W0
W0
0 251477
0 585 730
1 103 883
1 293 882
1 376 319
91/05303
W0 03/007117
03/042805
W0 03/052948
WO 2004/019315
A2
A2
A1
A1
A2
A1
A1
1/1988
3/1994
5/2001
3/2003
1/2004
4/1991
1/2003
5/2003
6/2003
3/2004
OTHER PUBLICATIONS
Lin, M., et. al., “Graphics Matter: A Case Study of Mobile Phone
Keypad Design for Chinese Input,” CHI 2005, Late Breaking
Results: Posters, Portland, Oregon. Apr. 2-7, 2005, pp. 1593-1596.
MacKenZie, S., et. al., “Text Entry for Mobile Computing: Models
and Methods, Theory and Practice,” Human-Computer Interaction.
17. pp. 147-198. http://www.yorku.ca/macldhci3-2002.pdf.
Starner, T. “Keyboards Redux: Fast Mobile Text Entry”. Pervasive
Computing, Jul-Sep. 2004, pp. 97-101. http://www.cc.gatech.edu/
fac/Thad.Starner/p/magaZine/2004-3-keyboard-redux.pdf.
Goldstein, M., et. al., “The Finger-Joint-Gesture Wearable Keypa .,”
Ericsson Radio Systems, Ericsson Radio Systems AB, pp. 9-18.
Rosenberg, R., Computing without Mice and Keyboards: Text and
Graphic Input Devices for Mobile Computing. Ph.D. Thesis, Dept. of
Computer Science, University College, London, 1998. http://www.
obscure.org/rosenberg/.
MacKay, B., et. al., “Walk ’n Scroll: A Comparison of Software
Based Navigation Techniques for Different Levels of Mobility,” In
Proceedings of the 7th international Conference on Human Com
puter interaction with Mobile Devices &Amp; Services (SalZburg,
Austria, Sep. 19-22, 2005). MobileHCI ’05, vol. 111. ACM Press,
New York, NY, pp. 183-190. http://portal.acm.org/citation.
cfm?id:1085808&coll:GUIDE&d1:GUIDE&CFID:66591340
&CFTOKEN:6294934.
KranZ, M., et. al., “DistScrollia new One-Handed Interaction
Device,” In Proceedings of the 5th International Workshop on Smart
Appliances and Wearable Computing, Jun. 10, 2005. http://www.
hcilab.org/documents/DistScrol
lAnewOneHandedInteractionDevice-KranZHolleisSchmidt
IWSAWC2005.pdf.
Fallmana, D., et. al., “ScrollPad: Tangible Scrolling with Mobile
Devices,” Proceedings of the Proceedings of the 37th Annual Hawaii
International Conference on System Sciences (HICSS ’04)iTrack 9,
p. 90286.3, Jan. 5-8, 2004. http://portal.acm.org/citation.
US 7,669,770 B2
Page 3
cfm?id:963347&coll:GUIDE&d1:GUIDE&CFID:66483658
&CFTOKEN:36023921,
http://daniel.fallman.org/resources/pa
Samsung Game PadiA620, Samsung, pp. 1-2, retrieved from the
internet at http://www.cellphonemall.net/wireless/store/acces
pers/fallinan-hicss37.pdf.
sorydetail.asp?id:23 1 98&phoneid:3 34.
Chipman, L. E., et. al., “SlideBar: Analysis of a Linear Input Device,”
Behav. Inf. Tech. 23, 1 (Jan. 2004), pp. 1-9. http://portal.acm.org/
Thumbscript, retrieved from the internet at http://www.thumbscript.
citation.cfm?id:993182.993184#, http://www.cs.umd.edu/Library/
TRs/CS-TR-4471/CS-TR-4471.pdf.
Darnauer, J ., et. al., “Orientation-based interaction for Mobile
Devices,” Stanford University, pp. 1-4. http://hci.stanford.edu/srld
com/indeXhtml, http://www.thumbscript.com/howitworks.html,
http://vvww.thumbscript.com/technotes.htrnl.
EXideas, retrieved from the internet at http://www.eXideas.com/ME/
indeX.html, http://www.eXideas.com/ME/AppsCellPhones.html,
http://www.exideascom/ME/HardKeyhtml.
cs377a-mobile/project/?nal/darnauer-garrity-kim.pdf.
“KeyStick, Text Entry System,” NE-Ware, pp. 1-21, retrieved from
Rekimoto, J. Tilting operations for small screen interfaces. Proceed
ings of the 9th annual ACM symposium on User Interface software
the internet at http://www.n-e-ware.com/Downloads/KeySticld330/
and technology, pp. 167-168, Nov. 6-8, 1996, Seattle. http://portal.
acm.org/citation.cfm?id:2371 15&coll:GUIDE&d1:GUIDE
&CFID:6648365 8&CFTOKENI3 6023921 .
Hinckley, K., et. al., “Foreground and Background Interaction with
Sensor-enhanced Mobile Devices,” ACM TOCHI (Transactions on
Computer-Human Interaction) Special Issue on Sensor-Based Inter
action, 12 (1), Mar. 2005, pp. 31-52. http://portal.acm.org/citation.
cfm?id:1057240&coll:GUIDE&d1:GUIDE&CFID:66591340
&CFTOKEN:6294934.
KSUserManual330i01.pdf.
“MobileTouch Product Brief,” Synaptics Incorporated, pp. 1-2.
http://www.synaptics.com/products/pdf/mobiletouchipbpdf.
“Solutions > Mobile Phones,”Atrua, 2006, pp. 1-2, retrieved from the
internet at http://www.atrua.com/s-mobilephoneshtml.
AXXXr, “World’s Smallest Joystick for Mobile Devices,” Varatouch,
Dec. 22, 2004, retrieved from the internet at http://www.esato.com/
news/article.php/id:388.
“Belkin Selects ElekTeX to Power New-to-the-Market SportCom
Hinckley, K., et. al., Quantitative analysis of scrolling techniques. In
mand Product,” Eleksen, Sep. 19, 2006, retrieved from the internet at
www.eleksen.com and http://www.eleksen.com/?page:news/index.
Proceedings of the SIGCHI Conference on Human Factors in Com
asp&newsID:61.
puting Systems: Changing Our World, Changing Ourselves Minne
apolis, Minnesota, USA, Apr. 20-25, 2002. CHI ’02. ACM Press,
enabled Tailored Suit,” Eleksen, Sep. 13, 2006, retrieved from the
“ElekTeX® Powers Fashion-Conscious Professionals with iPod®
New York, NY, pp. 65-72. http://doi.acm.org/10.1145/503376.
internet
503389.
?page:news/index.asp&newsID:60.
Harrison, B. L., et. al., “Squeeze Me, Hold Me, Tilt Me! An eXplo
ration of Manipulative User Interfaces,” In Proceedings of the
Angeles, California, United States, Apr. 18-23, 1998., pp. 17-24.
Sharp Vodafone ZTCJO 1, pp. 1-4, retrieved from the internet at http://
www.slashphone.com/93/3 123 .html.
Combee, B., “Review: CLIETM Game Controller PEGA-GC10,” Oct.
3, 2002, pp. 1-9, retrieved from the internet at http://www.
http://portal.acm.org/citation.cfm?id:274647&coll:Portal
palminfocenter.com/viewistory.asp?ID:4295.
&d1:GUIDE&CFID:66588306&CFTOKEN:73460863
&CFID=66588306&CFTOKEN=73460863#.
Jack, “The i-Blue Bluetooth GPS Receiver,” Bluetooth GPS, Jan. 15,
2006, pp. 1-2, retrieved from the internet at http://mobilitytoday.com/
Kawachiya, K., et. al., “NaviPoint: An Input Device for Mobile
Information Browsing,” Proceedings of the SIGCHI conference on
news/005986/mobilityibuyGPSnowii-BlueibluetoothiGPS.
Alphagrip http://www.alphagrips.com/AlphagripAG5UsersManual.
pdf.
TegiciT9
http://www.tegic.com/pdfs/salessheets/
T9%20Adaptive%20TeXt%20Input%20Sales%20Sheet%201.pdf
http://www.tegic.com/pdfs/salessheets/
T9%20Adaptive%20TeXt%20Input%20Sales%20Sheet%202.pdf
http://www.tegic.com/pdfs/salessheets/
T9%20Adaptive%20TeXt%20Input%20Sales%20Sheet%203.pdf
http://www.tegic.com/pdfs/salessheets/
Sloppy%20Type%20Sales%20Sheet.pdf.
SIGCHI Conference on Human Factors in Computing Systems, Los
Human factors in computing systems, Apr. 18-23, 1998, LosAngeles,
California, United States, pp. 1-8 http://portal.acm.org/citation.
cfm?id:274645&coll:Portal&d1:GUIDE&CFID:66588306
&CFTOKEN:73460863.
Hinkley, K., et. al., “Sensing Techniques for Mobile Interaction,”
UIST 2000: ACM Symposium on User Interface Software and Tech
nology, CHI Letter vol. 2, 2, pp. 91-100. http://portal.acm.org/cita
tion.cfm?id:3 54417&coll:GUIDE&d1:GUIDE
&CFID:6648365 8&CFTOKENI3 6023921.
Baillie, L., et. al., “Rolling, Rotating and Imagining in a Virtual
Mobile World,” In Proceedings of the 7th international Conference
on Human Computer Interaction with Mobile Devices &Amp; Ser
vices, SalZburg, Austria, Sep. 19-22, 2005, MobileHCI ’05, vol. 111.
ACM Press, NewYork, NY, pp. 283-286. http://doi.acm.org/10.1 145/
1085777.1085833.
Karlson, A. K., et. al., AppLens and LaunchTile: Two Designs for
at
www.eleksen.com
and
http://www.eleksen.com/
Zicorp4eZiTap, retrieved from the internet at http://www.Zicorp.
com/eZiTaphtm.
Kotadia, M., “Motorola’s iTAP adds intelligence to SMS,”
MotorolaiiTAP, Dec. 10, 2003, retrieved from the internet at http://
news.Zdnet.co.uldhardware/mobile/O,39020360,39118435,00.htm.
DigitWireless: FastTap http://www.digitwireless.com/?ash/down
load/fastap.pdf.
One-Handed Thumb Use on Small Devices, 2004, retrieved from the
Microth KeyWheel http://www.microth.com/circumscript/overview.
internet at http://hcil.cs.umd.edu/trs/2004-37/2004-37.html.
Roto, V., “Browsing on Mobile Phones,” Nokia Research Center.
retrieved from the internet at http://www.research.att.com/~rjana/
asp.
Yuvee: special keypad layout www.yuvee.com http://www.yuvee.
com/builtin1.shtml http://www.yuvee.com/builtiinib.shtrnl http://
WF12iPaper1 .pdf.
www.yuvee .com/testdrive2 .shtml.
Buchanan, L., “The Future of Mobile? We Get A Hands-On Look At
Twiddler http://www.handykey.com/ http://www.handykey.com/
Qualcomm’s Slingshot Prototype HandsetiA Do-It-All Device
That Could Shape The Mobile Market,” Qualcomm Slingshot, Oct. 7,
Keymap.pdf.
2005, pp. 1-4, retrieved from the internet at http://wireless.ign.com/
Sengital Ltd. Tilt sensor replacement for PDA, retrieved from the
internet
at
http://sengital.manufacturerglobalsources.com/si/
articles/657/657041p1.html.
6008823523892/ProductDetail/PDA-keyboard/productiid
Whenham, T. 0., “Bluetooth Gamepad Enhances Mobile Phone
Gaming,” GamePad, Dec. 12, 2005, pp. 1-3, retrieved from the
internet at http://www.mobilemag.com/content/100/345/C5578/.
Pilato, F., “Kyocera Candid KX16 Offers Mobile Gaming With
puter/mouse/mousephone.htrn.
Alienware Gamepad Module,” Kyocera, Aug. 8, 2005, pp. 1-4,
nam/phones/guides/6620iUSien.PDF.
retrieved from the internet at http://www.mobiIemag.com/content/
100/340/C4392/.
Daimaou, XEG Mobile Phone Pad, Nov. 10, 2005, pp. 1-8, retrieved
“Sega now into Phone Making? Sure Seems Like it,”, retrieved from
the
internet
at
http://www.phoneyworld.com/newspage.
from the internet at http://us. giZmodo .corn/gadgets/cellphones/gam
“Phrase-It® User’s Guide,” Prevalent Devices LLC, pp. 1-33, found
ing-on-the-go-with-xeg-l36414.php
http://www.akihabaranews.
com/en/news-10615 -XEG%2C+the+mobile+phone+pad.html.
100105013 5/action-GetProduct.htm.
Howard.co.kriThe mouse phone http://www.howard.co.kr/com
Nokia 6620 with a control stick http://nds2.nokia.com/?les/support/
aspX?n:1745 .
on the internet at http://www.prevalentdevices.com/manual3-5-06.
pdf.
US 7,669,770 B2
Page 4
Kolsch, M., et. al., “Keyboards without Keyboards: A Survey of
Virtual Keyboards,” UCSB Technical Report 2002-21, Jul. 12, 2002,
pp. 1-8. http://www.cs.ucsb.edu/research/techireports/reports/
2002-21 .pdf.
Pirhonen, A., et al., “Gestural and Audio Metaphors as a Means of
Control for Mobile Devices,” In Proceedings of the SIGCHI Confer
ence on Human Factors in Computing Systems: Changing Our
World, Changing Ourselves (Minneapolis, Minnesota, USA, Apr.
Shin, Jeong-Hoon, et. al., “An Improved Alphanumeric Input Algo
20-25, 2002). CHI ’02. ACM Press, New York, NY, pp. 291-298,
rithm Using Gloves,” School of Information and Communication
retrieved from the internet at http://doi.acm.org/10.1145/503376.
Engineering, Sungkyunkwan University, Suwon, 440-746 Republic
503428.
Kjeldskov, J ., et. al., “A Review of Mobile HCI Research Methods,”
of Korea, pp. 206-312. http://www.complexity.orgau/conference/
upload/shin01/shin01 .pdf.
MetZger, C., et. al., “FreeDigiter: A Contact-Free Device for Gesture
Control,” Eighth IEEE International Symposium on Wearable Com
puters (ISWC’04), pp. 18-21. http://www.wirelessrerc.gatech.edu/
projects/development/D1?les/iswc04 -freedigiter.pdf.
Rakkolainen, I., “MobiVRiA Novel User Interface Concept for
Mobile Computing,” In: Bieber, K. & Kirste, T. (eds.), Proceedings
of the 4th International Workshop on Mobile Computing, IMC 2003,
In Proc. of Mobile Human-Computer Interaction (MobileHCI 2003),
Udine Italy, Sep. 2003: In L. Chittaro (Ed.). Mobile Human-Com
puter-InteractioniMobileHCI 2003, Lecture Notes in Computer
Science, vol. 2795, Berlin: Springer, pp. 317-335.
Kjeldskov, J., et. al., “New Techniques for Usability Evaluation of
Mobile Systems,” International Journal of Human-Computer Stud
ies, May 2004, 60 (5-6): 599-620.
Buxton, W., “A Directory of Sources for Input Technologies”, May
Jun. 17-18, 2003, Rostock, Germany, pp. 107-1 12. http://www.cs.tut.
12, 2006, retrieved from the internet at http://www.billbuxton.com/
?/~ira/u/ciMC2003.pdf.
InputSources.html.
Lumsden, J ., et. al., “Mobile Note Taking: Investigating the Ef?cacy
of Mobile Text Entry,” In Proc. of Mobile Human-Computer Inter
retrieved from the internet at http://www.mwbrooks.com/dvorak, on
action (MobileHCI 2004), Glasgow, UK, Sep. 2004: In S. Brewster
and M.
Dunlop
(Eds.).
Mobile
Human-Computer
InteractioniMobileHCI 2004, Lecture Notes in Computer Science,
vol. 3160, Berlin: Springer, pp. 156-168.
MacKenZie, I. S., et. al., “Phrase Sets for Evaluating Text Entry
Brooks, M., “Introducing the Dvorak Keyboard,” Jul. 8, 2000,
Oct. 31, 2003, pp. 1-2.
Ed, “Cirque Releases New Keyboard,” Palm Infocenter, Jun. 12,
2001, retrieved from the internet at http://www.palminfocenter.com/
news/2012/cirque-releases-new-keyboard.
Techniques,” Extended Abstracts of the ACM Conference on Human
Buxton, W., “Human Input to Computer Systems: Theories, Tech
niques and Technology”, pp. 1-4, retrieved from the internet at http://
Factors in Computing Systems4CHI 2003, New York: ACM, pp.
www.billbuxton.com/inputManuscript.html.
754-755.
Buxton, W., “An Introduction to Human Input to Computers”, Apr. 6,
1999, pp. 1-10, retrieved from the internet at http://www.billbuxton.
MacKenZie, I. S., “KSPC (Keystrokes per Character) as a Character
istic of Text Entry Techniques,” Proceedings of the Fourth Interna
tional Symposium on Human-Computer Interaction with Mobile
com/input01 .Introduction.pdf.
Soukoreff, R. W., et. al., “Recent Developments in Text-Entry Error
Rate Measurement,” CHI 2004, Late Breaking Results Paper, Vienna
Unidenti?ed and Undated Document discussing alternative designs
to QWERTY Keyboard, pp. 2-10.
Verizon Wireless, “Bluetooth Portable Accessory,” retrieved from the
internet
at
http://www.veriZonwireless.com/b2c/store/
Austria, Apr. 24-29, 2004.
controller?item:accessoryMart&action:viewBluetoothAccessories
Lee, S., et. al., “Chording as a Text Entry Method in Mobile Phones,”
In Proceedings of the MobileHCI 2004: 6th International Sympo
Green, N., et. al., “A Reduced QWERTY Keyboard for Mobile Text
&model:Capable%20Devices&make:Bluetooth@reg, on Dec. 12,
2006, p. 1.
TomTom, Protable GPS car navigation sytems, “TomTom Navigator
5iBluetooth,” retrieved from the internet at http://www.tomtom.
Entry,” In CHI ’04 Extended Abstracts on Human Factors in Com
com/products/features.php?ID:103&Category:2&Lid:4, on Dec.
puting Systems (Vienna, Austria, Apr. 24-29, 2004). CHI ’04. ACM
12, 2006, pp. 1-4.
Robsinson, B., “Battle Test: Belkin SportsCommand,” CrunchGear.
Blog Archive, Nov. 8, 2006, retrieved from the internet at http://
crunchgear.com/2006/1 1/08/battle-test-belkin-sportscommand/, on
Dec. 11, 2006, pp. 1-5.
“VRMSiApplications,” Sengital Ltd., pp. 1-4, retrieved from the
Devices, Heidelberg, Germany: Springer-Verlag, pp. 195-210.
sium, Glasgow, UK, Sep. 13-16, 2004, pp. 456-460.
Press, New York, NY, pp. 1429-1432, retrieved from the internet at
http://portal.acm.org/citation.cfm?id:986082&coll:GUIDE
&dl:GUIDE&CFID:66591340&CFTOKEN:6294934.
Partridge, K., et. al., “TiltType: Accelerometer-Supported Text Entry
for Very Small Devices,” Proceedings of the 15th annual ACM syrn
posium on User interface software and technology, Paris, France,
Oct. 27-30, 2002, pp. 201-204.
internet
http://www.sengital.com/
engilitechnologyivrmsiapplication.htm.
Goldstein, M., “Assessing Two New Wearable Input Paradigms: The
Finger-Joint-Gesture Palm-Keypad Glove and the Invisible Phone
Clock,” Personal and Ubiquitous Computing, vol. 4, Issue 2/ 3.
Devices Sources & Resources, Oct. 1, 2003, retrieved from the
Bartlett, J. F. “Rock ‘n’ Scroll Is Here to Stay,” IEEE Comput. Graph.
Appl. 20, 3 (May 2000), pp. 40-45, retrieved from the internet at
31, 2003, pp. 1-48.
Elektex Smart Fabric Touchpads, Eleksen, pp. 1-2, found on the
http://portal.acm.org/citation.cfm?id:618728&coll:Portal
internet at www.eleksen.com.
Buxton, B., “A Directory of Sources for Input Technologies,” Input
internet at http://www.billbuxton.com/InputSources.html, on Oct.
&dl:GUIDE&CFID:66588306&CFTOKEN:73460863#.
Roche, et al., “Managing Content-Initiated Application Delivery
Eslambolchilar, P., et. al., “Tilt-Based Automatic Zooming and Scal
ing in Mobile DevicesiA State-space implementation,” In Proc. of
with a Client-Side Agent”, Proceedings of the 2nd IAS TED Interna
tional Conference Communications, Internet and Information Tech
Mobile Human-Computer Interaction (MobileHCI 2004), Glasgow,
nology, Nov. 17-19, 2003, Scottsdale, AriZona, USA, pp. 334-339.
UK, Sep. 2004: In S. Brewster and M. Dunlop (Eds.). Mobile
Human-Computer-InteractioniMobileHCI 2004, Lecture Notes in
Computer Science, vol. 3160, Berlin: Springer, pp. 120-131.
Zhai, S., et. al., “Improving Browsing Performance: A Study of Four
“Verizon to launch mobile chaperone service”, Reuters, published on
ZDNet News: Jun. 10, 2006, retrieved from the internet http://news.
Zdnet.com, Nov. 3, 2006.
“Hasbro introduces CHATNOW! Now Tweens Can Talk, Send Text
Messages and Take Photographs with No Airtime Charges or Calling
Plan”, Feb. 10, 2005; retrieved from the internet http://www.hasbro.
com/media/content/printable.cfm?release:290, Nov. 9, 2006.
“Family Center Family Locator” “Locate your Kid’ s phone with GPS
Input Devices for Scrolling and Pointing Tasks,” Proceedings of the
IFIP TC13 Interantional Conference on Human-Computer Interac
tion, Jul. 14-18, 1997, pp. 286-293.
Wobbrock, J. O., et. al., “WebThumb: Interaction Techniques for
Small-Screen Browsers,” Proc. UIST, ACM Press (2002), pp. 205
208.
technology” retrieved from the internet, http://www.disneymobile.
go.com/disneymobile/home.do?C<P:KAC-GOOGiSEM, Nov. 9,
Lee, S., et. al., “Designing a Universal Keyboard Using Chording
Gloves,” SIGCAPH Comput. Phys. Handicap. , 73-74 (Jun. 2002),
2006.
“Are you ever worried where your children are?” Child Locate,
pp. 142-147, retrieved from the internet at http://doi.acm.org/ 10.
1145/960201.957230.
retrieved from the internet, http://www.childlocate.co.uk, Nov. 3,
2006.
US 7,669,770 B2
Page 5
“Frequently Asked Questions”, ChildLocate, retrieved from the
internet, http://WWW.childlocate.co.uk/faq.html, Nov. 3, 2006.
“About Sprint Family Locator”, retrieved from the internet, https://
s?.sprintpcs.com/?nder-sprint-family/signIn.html, Nov. 3, 2006.
“Welcome to KidsWireless.com; RAZR and Migo Verizon Family
Plan”, retrieved from the internet http://WWW.kidsWireless.com/
phone/RAZR-and-Migo, Nov. 3, 2006.
“Welcome to KidsWireless.com; LG Migo Verizon Wireless”
retrieved from the internet http://WWW.kidsWireless.com/phones/
LG-Mio-, Nov. 3, 2006.
“Welcome to KidsWireless.com; Verizon Chaperone and Child
Zone”, retrieved from the internet http://WW.kidsWireless.com/ar
ticles/verizon-Wireless-chaperon/, Nov. 3, 2006.
“Teletrac Partners With Ryder and Cingular in Fleet Management
Offering”, retrieved from the internet http://WWW.gpsWorld.com/
gpslbs/article/articleDetailjsp?id:359057, Nov. 3, 2006.
“Never Lose Your Children at the Mall Again”, retrieved from the
internet http://WWW.brickhousesecurity.com/vbsik.html, Nov. 3,
2006.
“Child Locatori$30 Child Personal Safety Alarm”, retrieved from
the internet http://WWW.mypreciouskid.com/child-locator.html, Nov.
3, 2006.
“AlarmiPersonal Alarm”, retrieved from the internet http://WWW.
mypreciouskid.com/alarm.html, Nov. 3, 2006.
“Special Needs Children4Children With Special Needs”, retrieved
from the internet http://WWW.mypreciouskid.com/special-needs
children.html, Nov. 3, 2006.
“Never lose track of your pet”, retrieved from the internet http://
wwwglobalpet?ndercom, Nov. 3, 2006.
“Gadgets track pets With GPS or transfer tapes to DVDs”, retrieved
from the internet https://WWW.globalpet?ndercom/article39.htrnl,
ll, Mar. 2006.
“TrimTracXS Internet GPS Car Tracking SystemiReal Time GPS
“Cingular Fire?y PhoneiFree from Kids Wireless.com”, retrieved
from the internet http://WWW.kidsWireless.com/phones/Fire?y, Nov.
3, 2006.
“Sprint Family Locator Program: Locating your Children via Phone
GPS”, retrieved from the internet http://WWW.kidsWireless.com/ar
ticles/family-locator-program, Nov. 3, 2006.
“TicTalk Parental Controlled Cell PhoneiCell Phone for Kids”,
retrieved from the internet http://WWW.mytictalk.com/Leapfrog/,
Nov. 3, 2006.
“Tiger4chatnowabout”, retrieved from the internet http://WWW.
hasbro.com/tiger/default.cfm?page:chatnowabout, Nov. 3, 2006.
“TicTalk Parent Controlled Cell Phone” user manual, 2005 Enfora©
L.P.
ZaWinski, J., “XKeyCaps”[O nline], Dec. 12, 1999, XP00242l 133,
Retrieved from the Internet: URL: http://WWW.jWz.org/xkeycaps/>,
pp. 1-3.
ZaWinski, J., “XKeyCaps Manual”[Online], Dec. 12, 1999,
XP00242l293, Retrieved from the Internet: URL: http://WWW.jWz.
org/Xkeycaps/man.html>, pp. 1-14.
Open Source Technology Group: “Project Details for
XKeyCaps”[Online], Jan. I, 2006, XP00242ll34, Retrieved from
the Internet: URL: http://freshmeat.net/projects/Xkeycaps, pp. 1-2.
The XFREE86 Project, Inc: “XMODMAP( l ) manual page”[Online],
Jan. 18, 2002, XP00242ll35, Retrieved from the Internet: URL:
http://WWW.Xfree86.org/4.2.0/Xmodmap.l.html>, pp. 1-5.
The XFREE86 Project, Inc: “XFree86 Release 4.2. l”[Online], May
8, 2006, XP00242ll36, Retrieved from the Internet: URL: http://
WWW.Xfree86.org/releases/rel420.html>, pp. 1-2.
Toman, K. and; Pascal, I. U., “How to Further Enhance XKB
Con?guration”[Online], Nov. 25, 2002, XP00242ll37, Retrieved
from the Internet: URL: http://WWW.Xfree86.org/4.5.0/XKB-En
hancing.pdf>, pp. 1-9.
ZaWinski,
Jamie,
“XKeyCaps,”[Online]
Dec.
12,
1999,
XP00242ll33 Retrieved from Internet: URL:http://WWW.jWz.org/
Xkeycaps, pp. 1-3.
http://WWW.
ZaWinski, Jamie, “XKeyCaps Manual,” [Online] Dec. 12, 1999,
brickhousesecurity.com/slimtrak-realtime-gps-tracking-car-locator.
XP00242l293 Retrieved from Internet: URL:http://WWW.jWz.org/
Xkeycaps/manhtml, pp. 1-13.
Communication from the European Patent Of?ce dated Feb. 11,
Tracking”,
retrieved
from
the
internet
html, Nov. 3, 2006.
“SecureTrack GPS Tracking Child LocatoriTeen Tracking”,
retrieved from the internet http://WWW.brickhousecurity.com/
geminitracking-gps-child-locatorhtml, Nov. 3, 2006.
2009.
* cited by examiner
US. Patent
Mar. 2, 2010
US 7,669,770 B2
Sheet 1 0f 6
MDD
Keyboard Device
109\ ““““““““ "555 """"" "
Driver
Application Software / 112
FIG. 1A
120\
-
Application Software
User Presses an
é?zgzérgrggt‘gz
Gets Notified that a
Input Element on
Electronic Device
Press into Virtual
7 User “.88 P3886‘! 3
Input Element Code
FIG. 1B
Pamcular mput
Element
US. Patent
Mar. 2, 2010
Sheet 3 of6
US 7,669,770 B2
320\
Input Element Pressed
322~\
1
Keyboard Controller Writes the Scan Code
into a Buffer
325\
1
Keyboard Driver's PDD Receives Interrupt
to Retrieve Scan Code from Buffer
326~\
J,
Keyboard Driver's Modi?ed MDD Checks
Windows Mobile Registry for User
Configuration Settings
327\
1
Keyboard Driver's Modified MDD Converts
Scan Code to Virtual Input Element Code
Based on User Settings
328\
1
Keyboard Drivers Call Keybd_event with
Virtual input Element Code and Scan Code
330\
1
Application Receives Keyboard Event with
Virtual Input Element Code and Scan Code.
FIG. 3
US. Patent
Mar. 2, 2010
Sheet 4 of6
US 7,669,770 B2
42Q\
Input Element Pressed
422\
l
Keyboard Controller Writes the Scan Code
into a Buffer
425\\
1
Keyboard Driver's PDD Receives Interrupt
to Retrieve Scan Code from Buffer
Keyboard Driver's MDD Converts Scan
Code to Virtual Input Element Code Using
Modified Device Layout
Keyboard Driver Calls Keybdmevent with
Virtual input Element Code and Scan Code
430\
l
Application Receives Keyboard Event with
Virtual Input Element Code and Scan Code.
FIG. 4
US. Patent
Mar. 2, 2010
Sheet 5 of6
US 7,669,770 B2
520\
Input Element Pressed
522\
l
Keyboard Controller Writes the Scan Code
into a Buffer
525\
1
Keyboard Driver's PDD Receives Interrupt
to Retrieve Scan Code from Buffer
532\Keyboard Driver's MDD
1 Converts Scan
Code to Virtual Key Code
534\
1
Modified Keyboard Driver's Translation
Layer Converts Old Virtual Input Element
Code to New Virtual Input Element Code
Keyboard Driver Calls Keybd_event
with New Virtual Input Element Code
and Scan Code
530\
1
Application Receives Keyboard Event with
New Virtuat Element Code and Scan Code.
FIG. 5
US. Patent
Mar. 2, 2010
Sheet 6 0f6
628
630\
E
i
1,
624\
\ifl/
600~\
E
622
A
Internet
Server
5
US 7,669,770 B2
Host
626
60h
620
Network Link
602\
Processor
=
;
>
GOGN
RAM
=
= Bus
608\ ROM
<
~
‘
e
_ 61Communication
8N
i
‘
7
i
Interface
i
610\
<
>
5
Storage Devlce
t
612x"
'
Display
614“,
'nput
Device
FIG. 6
’
i
616\v
Cursor
Control
US 7,669,770 B2
1
2
METHOD OF REMAPPING THE INPUT
ELEMENTS OF A HAND-HELD DEVICE
a buffer on the hand-held electronic device 100. At process
step 124, the keyboard device driver 108 translates or maps
the scan code representing the press of the physical input
element 106 to a virtual input element code. Speci?cally, the
BACKGROUND
PDD 109 receives an interrupt to retrieve the scan code from
the buffer and the MDD 1 1 1 converts the scan code to a virtual
The following description relates to remapping the input
elements (e. g., keys or buttons) of a hand-held device to
input element code. The keyboard device driver 108 calls a
desired actions or functions.
keyboard event “keybd_event” With the virtual input element
code and the scan code. At process step 130, the application
softWare gets noti?ed that a user has pressed a particular
Conventional hand-held electronic devices, such as cell
phones, personal digital assistants (“PDAs”), pocket personal
physical input element. Speci?cally, the application softWare
computers, smart phones, hand-held game devices, bar-code
readers, remote controls, and other similar hand-held input
a concurrent increase in demand by consumers for smaller
1 12 receives the keyboard event With the virtual input element
code and the scan code. The application softWare 112 then
typically executes a function associated With the virtual input
element code and the scan code. For example, on the hand
held electronic device 100, such as a cellular phone, pressing
devices. The input elements on such hand-held electronic
the “2ABC” physical input element 106 on the phone gener
devices, such as keys, buttons, directional pads, touch pads or
ates a scan code that is retrieved by the PDD 109. The MDD
11 then converts or maps the scan code to a virtual input
devices having a keypad or one or more input elements, have
become increasingly sophisticated and physically smaller
due in part to a decrease in the price of processing poWer and
screens, force sensitive resistors and accelerometers, are typi
cally hard coded for a particular action or function, such as
20
input functions, one of the input elements may be hard coded
to insert the character 2, A, B, or C in a text application When
that input element is pressed by a user, While another input
element, once pressed by the user, may be hard-coded to
insert the character 3, D, E or F in the text application. Cur
rently available operating systems that run on such electronic
devices, such as Symbian, J 2ME and WindoWs Mobile, alloW
application developers to override the hard-coded actions or
element code representing character data 2, A, B or C (in a text
application, for example) depending of the number of presses
on the “2ABC” physical input element. The keyboard device
driver 108 calls “keybd_event” With the virtual input element
poWer on or off, volume up or doWn, text input, cursor control,
or directional movement. For example, With respect to text
25
code and scan code. The application softWare, such as a text
application, executes a function based on the received virtual
input element code and the scan code, such as displaying the
number “2” or letters “A”, “B”, or “C” on the electronic
device’s display or LCD.
30
functions and assign (or re-map) different actions or functions
The physical input elements on hand-held electronic
devices are also typically positioned at predetermined, ?xed
locations on one or more surfaces of the device. As a result,
to the input elements; but, generally, these re-mapped input
such electronic devices tend to be limited in function and
elements apply only across a single application.
utility by the user’s ability to comfortably interface With the
device for data input (e. g., text, numeric, and functional input)
and/or device control (e. g., game control during game play),
FIGS. 1a and 1b illustrate an abstraction of the hardWare
and softWare components involved in a conventional map
35
ping process in the WindoWs Mobile operating system envi
ronment on a hand-held electronic device 100. FIG. 1a
Which becomes increasingly more dif?cult and more uncom
fortable to do as the available space on the device’ s surface for
depicts a hand-held electronic device 100 that includes a
positioning the input elements, Which are used for data input
plurality of physical input elements 104, a keyboard device
driver 108, and application softWare 112. On some hand-held
electronic devices, such as cellular phones, an input element
40
and/or device control, continues to decrease.
For data input, in most conventional hand-held electronic
devices, a user typically inputs data through miniature key
106 labeled as “2ABC” may be one of the input elements 104
boards and keypads used alone or in combination With
used to form a keypad. Generally, the physical input elements
chordal input techniques, modal input techniques and/or
104 are mapped to user input requests through a combination
of keyboard device driver 108 mapping and softWare appli
cation 112 mapping. The keyboard device driver 108 is typi
cally implemented as a layered driver, including a loWer layer,
45
recognition softWare. The number of input elements making
or platform dependent driver (PDD) 1 09, Which retrieves scan
codes from the hand-held electronic device 1 00, and an upper
layer, or model device driver (MDD) 111, Which maps the
scan codes to virtual input element codes, generates character
data associated With virtual-input element codes, and then
packages keyboard messages and puts them in a system-Wide
message queue. The application softWare 112 retrieves the
keyboard messages from the system-Wide message queue and
50
input elements, such as Fire?y. Most often these input ele
55
grasping the device With the same hand, or may input data
input) in conventional hand-held electronic devices can result
60
in repetitive strain injuries (RSI) especially for those users
Who tend to spend a lot of time inputting data in smaller
hand-held electronic devices, such as cell phones and PDA’s.
When a user presses a physical input element 104 on a hand
code. Typically, a keyboard controller Writes the scan code to
may input data using his thumbs While grasping the device
With both hands, or may input data using his thumb While
using his ?ngers While holding the device in his other hand.
Any of these methods of inputting data (particularly thumb
access memory, on the electronic device 100.
held electronic device running WindoWs Mobile and cur
rently available application softWare, such as a text applica
tion or dialing application. In process step 120, a user presses
a physical input element 104 on the hand-held electronic
device 100, such as input element 106, Which generates a scan
up a miniature keyboard or keypad varies, but typically a
keypad used on most conventional hand-held electronic
devices includes tWelve or more input elements, although
some specialiZed hand-held electronic devices have feWer
ments are placed on the bottom half or bottom third of the
front face of the device. With such electronic devices, a user
executes functions based on the keyboard messages. The
keyboard device driver 108 and application softWare 112 are
typically stored in memory (not shoWn), such as random
FIG. 1b illustrates this conventional mapping process
smart keys, or through touch screens used in combination
With on-screen keyboard or keypad softWare or hand-Writing
Moreover, particularly for thumb input, due to the physically
65
small siZe of most hand-held electronic devices and the loca
tion of the input elements on the front face of such electronic
devices, often times the user’s thumb is required to hold the
device While, With the same thumb, trying to reach the input
US 7,669,770 B2
3
4
elements located at the bottom of the front face of such
pings) may be stored in memory, such as non-volatile
devices, e.g., the input element representing the space key or
memory or random access memory, and launched When the
input elements representing the letters P through Y on a
keypad or the bottom roW of input elements formed to repre
sent a QWERTY keyboard. This requires the user’s thumb to
apply substantial force in an aWkWard position.
For game control, in most hand-held electronic devices, a
user typically controls game play through the use of some
form of input element, such as on a miniature keypad and/or
directional pad (“D-pad”), Which typically is located on the
user selects an application to use. The re-mapping of the input
elements may be done by the user directly on the hand-held
electronic device, through a computer connected to the hand
held electronic device, or through the Internet, such as
through the World Wide Web, or through other communica
tion modes.
Implementations of the techniques described here may
include various combinations of the folloWing features.
In one implementation a technique for re-mapping a hand
front surface of the device. Game control on some hand-held
handed or at most tWo thumbed because of the siZe of the
held electronic device includes receiving con?guration set
tings, Which may include at least one physical input element
device, While game control on other hand-held electronic
devices, such as PDAs and conventional game console con
associated With at least one function, for a softWare applica
tion or a class of softWare applications; modifying a mapping
trollers, is typically tWo-handed. The input elements associ
function based on the con?guration settings; and executing
the function associated With the physical input element upon
electronic devices, such as cell phones, is typically one
ated With game control on these devices, such as cellular
phones and PDAs, are typically digital even though analog
an activation, e.g., a press or actuation, of the physical input
input elements have beenused on game controllers for PC and
console game systems, such as Microsoft’s Xbox or Sony’s
Play Station 2. Given that most cellular phones and PDAs do
element during operation of the softWare application. The
20
not use analog input elements, during game play on such
devices, the user typically must repeatedly press certain input
a combination of these or another mapping function.
In an implementation Where the mapping function com
prises a keyboard device driver, the step of executing the
elements, such as arroW keys, to move a user’s character or
other obj ect of control, such as a cursor, to the left or right, and
mapping function may comprise a keyboard device driver, a
device layout or a translation layer the keyboard device driver,
25
function associated With the physical input element upon an
to be good at the game the pressing typically needs to be rapid.
activation of the physical input element may include Writing
Thus, in such devices With digital input elements, emulating
a scan code to a buffer, retrieving the scan code from the
continuous control of characters, vehicles, or other objects of
buffer, converting the retrieved scan code to a virtual input
control can be tedious and dif?cult. Moreover, similar to
inputting data on these hand-held electronic devices, game
30
control may result in repetitive stress injuries especially for
element code using a modi?ed keyboard device driver; call
ing a keyboard event With the scan code and the virtual input
element code; and executing the function associated With the
keyboard event, Which is the function associated With the
those users Who are avid game players.
physical input element.
SUMMARY
In an implementation Where the mapping function com
35
The present inventors recogniZed that conventional hand
held electronic devices tend to be relatively cumbersome,
of the physical input element may include Writing a scan code
to a buffer; retrieving the scan code from the buffer; convert
ing the retrieved scan code to a virtual input element code
inef?cient and uncomfortable to use by most users because,
among other reasons, such devices are typically designed for
the mass of users as opposed to being optimally designed for
a particular user. That is, the present inventors recogniZed that
the predetermined, ?xed location of the input elements com
bined With the predetermined, ?xed action or function
mapped to each of the input elements imposed on the user the
design favored by the device manufacturer and/or the appli
prises a device layout, the step of executing the function
associated With the physical input element upon an activation
40
using the modi?ed device layout; calling a keyboard event
With the scan code and the virtual input element code; and
executing the function associated With the keyboard event,
Which is the function associated With the physical input ele
ment.
45
In an implementation Where the mapping function com
cation developer as opposed to the design most suited or more
intuitive across a class of application softWare or for the
prises a translation layer, the step of executing the function
associated With the physical input element upon an activation
particular user. Consequently, the present inventors devel
oped techniques to selectively re-map the input elements on a
hand-held electronic device optimally for a particular class of
application softWare With common requirements (e.g.,
of the physical input element may include Writing a scan code
to a buffer; retrieving the scan code from the buffer; convert
50
input element code using the modi?ed translation layer of the
keyboard device driver; calling a keyboard event With the
games, text entry, music and scrolling) and/ or for a particular
user.
The techniques described here may be used to make hand
held electronic devices perform better for all users for a
particular class or classes of applications, such as text entry
scan code and the neW virtual input element code; and execut
55
(e.g., e-mail, Word processing, calendaring, contacts, tasks),
ing the function associated With the keyboard event, Which is
the function associated With the physical input element.
In another implementation, a method of re-con?guring or
re-mapping a softWare application or class of softWare appli
cations may include associating one or more physical input
music, navigation, scrolling and game applications. The tech
niques described here also may be used to create user-speci?c
mappings of the input elements for each softWare application
ing the scan code to an original virtual input element code;
converting the original virtual input element code to a neW
60
available on the hand-held electronic device. The user-spe
elements disposed on a hand-held electronic device With at
least a ?rst executable function; and causing a modi?cation of
ci?c mappings may be applied globally to all softWare appli
a mapping function to form an association of the one or more
cations used on the hand-held device, to all softWare applica
tions in a particular class or classes of applications, a subset of
all softWare applications or applications Within a class of
softWare applications, or to a particular softWare application.
physical input elements With a second executable function to
The mappings (e.g., class-speci?c and/or user-speci?c map
65
an association of the one or more physical input elements With
the ?rst executable function so that the ?rst executable func
tion is con?gured to be initiated upon an activation of the one
or more physical input elements during operation of the soft
US 7,669,770 B2
S
6
Ware application or the a software application Within a class
these techniques may be readily and easily implemented
using other hand-held electronic device operating systems,
of software applications. The second executable function is
typically a default function typically provided With the soft
such as Symbian and J2ME, and using other level command
Ware application to be executed in the default state When the
sets, such as loW-level or intermediary-level hardWare com
one or more physical input elements are pressed or activated.
mands or chipset level commands.
FIG. 2 illustrates one implementation of a con?guration
In yet another implementation, a graphical user interface
identifying functions that are available to be associated With
one or more physical input elements may be provided. The
application for use With the disclosed re-mapping techniques.
The con?guration application 212 may reside in memory or
graphical user interface may also identify softWare applica
other computer readable medium resident or external to a
tions for Which a user can select to apply his physical input
element to function associations. In one instance the graphi
cal user interface may include input element icons, Which
hand-held electronic device 200. The electronic device 200
correspond to physical input elements, and function icons,
200 and a display 206, such as a liquid crystal display (LCD).
The con?guration application 212 includes a graphical user
includes a plurality of physical input elements 204 disposed
on one or more surfaces of the hand-held electronic device
Which correspond to an executable function. The user may
then specify the functions to associate With physical input
interface 213, Which includes input element icons 214, each
corresponding to a physical input element 204, function icons
elements.
The techniques described here may provide one or more of
216 representing the functions that are selected by a user for
the folloWing advantages. For example, comfortable and
faster data input and device control is possible because, even
though the input elements remain in the same ?xed locations
predetermined by the device manufacturer, the functions or
actions associated With each input element for a particular
user, softWare application or class of softWare applications
may be re-mapped to input elements that are positioned at
locations on the device that are more intuitive and comfort
able for a user to access and operate during use of the par
20
icons 222, 223 (labeled “Quit” and “Save,” respectively). The
con?guration application 212 may be used to input user
speci?c and/or class-speci?c con?guration settings, such as
the mappings of a selected function to a selected physical
25
input element 204. Alternatively, the con?guration applica
tion 212 need not include a graphical user interface as con
ticular application. This potentially also Will reduce repetitive
stress injuries. Further, the techniques described here may be
used to create standards regarding hoW the interface behaves
across different hand-held electronic devices and softWare
a particular input element icon 214, scroll bar icons 218 that
may be used by the user to select betWeen available functions,
e.g., Shift1, Shift2, Shift3 and Shift4 functions, and menu
?guration settings for a particular class or classes of applica
tion softWare may be coded directly by an application
developer.
30
applications. Additionally, more capabilities may be pro
vided. For example, on a cell phone, the key pay may be used
In this implementation, the input element icons 214 are
static, i.e., the name and appearance of the icons 214 may not
be changed by a user, but in other implementations the name
and/or appearance of the icons 214 may be dynamic, i.e., may
as pseudo-analog control to make scrolling easier, or the
D-pad may be used to imitate an analog control for gaming
be changed to re?ect a name, appearance or other identi?ca
Details of one or more implementations are set forth in the 35 tion provided by the user. The input element icons 214 include
accompanying draWings and the description beloW. Other
features and advantages Will be apparent from the description
and draWings, and from the claims.
DESCRIPTION OF DRAWINGS
FIGS. 1a and 1b illustrate an abstraction of the hardWare
and softWare components involved in a conventional map
ping process on a hand-held electronic device.
FIG. 2 illustrates one implementation of a con?guration
Button1, Button 2, Button 3 and Button 4, Which correspond
to user-selected physical input elements 204, i.e., the user
40
selected input elements 204a, 204b, 2040, and 204d, to cor
respond to Button 1, Button 2, Button 3 and Button 4, respec
tively. Alternatively, the graphical user interface 213 may
include more or feWer input element icons 214 and even may
45
application for use With the disclosed re-mapping techniques.
FIG. 3 depicts ?oW chart describing an implementation of
a re-mapping technique utiliZing a user-con?gurable key
board device driver.
FIG. 4 depicts a How chart describing an implementation of
200, Which may negate the need for the user to assign a
214.
50
The function icons 216 include Shift1, Shift2, Shift3, and
Shift4 functions, Which correspond to a shifting or indexing
function that may be used to access different characters asso
ciated With a particular input element 204 in text entry appli
cations (e.g., e-mail, Word processing, calendaring, contacts,
55
tasks). For example, for the input element 204 labeled
60
“9WXYZ”, Which is found on most keypads on hand-held
electronic devices, the Shift1 function represents a shifting or
indexing of one space from left to right, starting at the number
“9”. LikeWise, Shift 2, Shift 3 and Shift 4 represent a shifting
or indexing of tWo, three and four spaces from left to right,
FIG. 6 is a block diagram that illustrates a hand-held elec
tronic device used as part of a system, such as in a cellular
netWork, in Which the con?guration application and re-map
ping techniques described herein may be implemented.
Like reference symbols in the various draWings indicate
include an input element icon 214 corresponding to each
physical input element on the hand-held electronic device
physical input element 204 to a particular input element icon
a re-mapping technique that utiliZes con?guration softWare to
modify a device layout of the hand-held electronic device.
FIG. 5 depicts a How chart describing an implementation of
a re-mapping technique utiliZing a user-con?gurable transla
tion layer.
may select any of the physical input elements 204 to corre
spond to each of the input element icons 214. In this case, for
purposes of discussion, it may be assumed that the user
starting at the number “9”, respectively. As a result, during
like elements.
text entry, to insert the character “Z”, a user need only press
the physical input element 204 associated With the Shift4
function, in this case physical input element 204d, and then at
DETAILED DESCRIPTION
The folloWing implementations of the user con?gurable
re-mapping techniques disclosed herein are described in the
context of the WindoWs Mobile operating system, although
65
the same time or during a user-selected predetermined time
thereafter press the physical input element 204 labeled
“9WYZ”. This input technique, as Well as other input tech
US 7,669,770 B2
7
8
niques utilizing an indexing or shifting function, is described
in more detail in co-pending application Ser. No. 10/699,555,
?led Oct. 31, 2003 and entitled “Human Interface System”,
Which is incorporated in full herein by reference.
Alternatively, the function icons may be any function,
in the WindoWs Mobile registry, the keyboard driver’ s modi
?ed MDD, at step 327, converts or maps the scan code to a
virtual input element code based on the user-speci?c con?gu
ration settings; otherWise the keyboard driver component
MDD converts or maps the scan code to the virtual input
element code based on default settings of the softWare appli
cation in use. At step 328, the keyboard device drivers call a
besides a shifting or indexing function, such as a text func
tion, such as inserting a particular character, a dialing func
tion, such as starting or ending a call or speed dialing a phone
number, a gaming function, such as directional movement,
?ring, or volume, menu selection or scrolling functions, or
any other function provided as part of a softWare application
keyboard event, “keybd_event,” With the virtual input ele
ment code and the scan code. At process step 330, the soft
Ware application receives the keyboard event With the virtual
input element code and the scan code. The application soft
Ware then executes the function associated With the virtual
input element code. That is, the function that is executed is a
function speci?ed by the user and saved as part of the user
for Which the re-mapped physical input elements 204 may be
used for interfacing With the softWare application, such as text
entry applications (e.g., e-mail, Word processing, calendar
ing, contacts, tasks), games, music, and scrolling.
speci?c con?guration settings.
FIG. 4 depicts a How chart describing an implementation of
a re-mapping technique that utiliZes con?guration softWare to
modify a device layout of the hand-held electronic device. A
The menu icon 222 (labeled “Quit”) is associated With the
physical input element 204], While the menu icon 223 is
associated With the physical input element 204g. A user may
choose to quit or exit the graphical user interface 212 by
pressing the input element 204]: Likewise, the user may chose
to save his inputted con?guration settings by pressing the
device layout is hardWare-speci?c and language speci?c key
20
input element 204g.
device layouts per hand-held electronic device. That is, the
The con?guration application 212 is used to create user
same keyboard device driver may have different device or
speci?c and/or class-speci?c con?guration settings Which
may be used With the re-mapping techniques described herein
to re-map the physical input elements 204 to selected func
tions for a particular softWare application, for a particular
board information that includes the scan code to virtual input
element code translations. Consequently, there can be many
keyboard layouts for different languages. For example, the
25
class or classes of softWare applications, for a subset of soft
Ware applications Within a particular class, or for all softWare
characters and accents of a language may be different from
another language, but the input elements and hardWare are the
same or similar. The con?guration softWare, described above
With reference to FIG. 2, may be used to modify the device
layout for each language for each hand-held electronic device
applications available or run on the hand-held electronic 30
by programmatically modifying the code translations of the
device 200. The user-speci?c con?guration settings may be
stored in memory or other computer-readable medium, Which
keyboard device drivers. The re-mapping technique or trans
lation steps that occur based on the modi?ed device layouts
may be accessed during use of a softWare application that is
are described as folloWs.
associated With the con?guration settings, e.g., user-speci?c
and/ or class-speci?c con?guration settings, or any other con
At step 420, the user presses a physical input element 204
35
on a hand-held electronic device 204. Then, at step 422, a
?guration settings. These con?guration settings may be
keyboard controller on the hand-held electronic device 204
inputted by the user or application developer through con
?guration application 212 directly on the hand-held elec
Writes a scan code into a buffer on the hand-held electronic
tronic device, on a computer connected to the hand-held
electronic device, or on the Internet, such as through the
World Wide Web, or on some other communication mode.
device 204. At step 425, the keyboard driver’s PDD receives
an interrupt to retrieve the scan code from the buffer. Then, at
40
step 436, the keyboard driver’s MDD converts or translates
the scan code to a virtual input element code using the modi
FIG. 3 depicts a How chart describing an implementation of
?ed device layout. Next, at step 428, the keyboard device
a re-mapping technique utiliZing a user-con?gurable key
board device driver. The user-con?gurable keyboard device
driver may be implemented by using the con?guration appli
drivers call a keyboard event, “keybd_event,” With the virtual
input element code and the scan code. At translation step 430,
the softWare application receives the keyboard event With the
virtual input element code and the scan code. The application
softWare then executes the function associated With the vir
tual input element code. That is, the function that is executed
is a function speci?ed by the user and saved as part of the
45
cation described With reference to FIG. 2 to create a con?g
urable layout manager, Which is a part of the keyboard driver
component MDD. That is, the softWare functions that re-map
the scan code to virtual input element codes are con?gurable
based on the user-speci?c con?guration settings, Which
includes the neW scan codes, provided through the con?gu
50
out.
FIG. 5 depicts a How chart describing an implementation of
ration application. Once the user inputs and saves his user
speci?c con?guration settings as described above, the saved
a re-mapping technique utiliZing a user-con?gurable transla
tion layer. The user-con?gurable translation layer may be
settings are stored as part of a registry in WindoWs Mobile,
Which the modi?ed keyboard driver component MDD
55
the associated softWare application. This re-mapping tech
nique may include the folloWing steps.
ping technique maps the press of a physical input element 204
At step 320, the user presses a physical input element 204
60
keyboard controller on the hand-held electronic device 204
Writes a scan code into a buffer on the hand-held electronic
device 204. At step 325, the keyboard driver’s PDD receives
an interrupt to retrieve the scan code from the buffer. Then, at
step 326, the keyboard driver’s modi?ed MDD checks the
WindoWs Mobile registry for the user-speci?c con?guration
settings. If the user-speci?c con?guration settings are found
implemented by using the con?guration application
described With reference to FIG. 2. Generally, this re-map
accesses during the mapping process that occurs during use of
on a hand-held electronic device 204. Then, at step 322, a
user-speci?c con?guration settings and modi?ed device lay
to a virtual input element code, and then maps the virtual
input element code to a user-speci?c virtual input element
code. The steps of the re-mapping technique are as folloWs.At
step 520, the user presses a physical input element 204 on a
hand-held electronic device 204. Then, at step 522, a key
board controller on the hand-held electronic device 204
Writes a scan code into a buffer on the hand-held electronic
65
device 204. At step 525, the keyboard driver component PDD
receives an interrupt to retrieve the scan code from the buffer.
Then, at step 532, the keyboard driver’s MDD converts the
US 7,669,770 B2
10
scan code to a virtual input element code. Next, at step 534, a
causes processor 604 to perform the process steps described
modi?ed keyboard driver’ s translation layer converts the vir
tual input element from step 532 to a neW virtual input ele
herein. In alternative implementations, hard-Wired circuitry
may be used in place of or in combination With softWare
instructions to implement the input element re-mapping tech
ment code. At step 528, the keyboard device drivers then call
a keyboard event, “keybd_event,” With the neW virtual input
element code and the scan code. At process step 530, the
software application receives the keyboard event With the neW
virtual input element code and the scan code. The application
niques. Thus, implementations described herein are not lim
ited to any speci?c combination of hardWare circuitry and
softWare.
software then executes the function associated With the neW
refers to any medium that participates in providing instruc
virtual input element code. That is, the function that is
executed is the function speci?ed by the user and saved as part
tions to processor 604 for execution. Such a medium may take
The term “computer-readable medium” as used herein
many forms, including but not limited to, non-volatile media,
volatile media, and transmission media. Non-volatile media
includes, for example, ?ash memory or optical or magnetic
of the user-speci?c con?guration settings.
FIG. 6 is a block diagram that illustrates a hand-held elec
tronic device used as part of a system, such as in a cellular
disks, such as storage device 610. Volatile media includes
dynamic memory, such as main memory 606. Transmission
netWork, in Which the con?guration application and re-map
ping techniques described herein may be implemented.
media may include copper Wire and ?ber optics, including the
Wires that comprise bus 602. Transmission media can also
take the form of acoustic or light Waves, such as those gener
ated during radio Wave and infrared data communications.
Hand-held electronic device 600 includes a bus 602 or other
communication mechanism for communicating information,
and a processor 604 coupled With bus 602 for processing
information. Hand-held electronic device 600 also includes a
main memory 606, such as a random access memory (RAM)
20
or other dynamic storage device, coupled to bus 602 for
storing information and instructions to be executed by pro
cessor 604. Main memory 606 also may be used for storing
temporary variables or other intermediate information during
execution of instructions to be executed by processor 604.
Hand-held electronic device 600 further includes a read only
25
EEPROM, a FLASH-EPROM, or any other memory chip or
cartridge, a carrier Wave as described hereinafter, or any other
medium from Which a computer can read.
Various forms of computer-readable media may be
memory (ROM) 608 or other static storage device or non
volatile memory coupled to bus 602 for storing static infor
mation and instructions for processor 604. A storage device
Common forms of computer-readable media include, for
example, ?ash memory devices, SIMM cards, hard disks or
any other magnetic medium, a CD-ROM, DVD, or any other
optical medium, a RAM, a PROM, and EPROM, and
involved in carrying one or more sequences of one or more
30
610, such a ?ash memory device, a MultiMedia Card, or a
Secure Digital Card, is provided and coupled to bus 602 for
storing information and instructions.
instructions to processor 604 for execution. For example, the
instructions may initially be carried on a magnetic disk of a
remote computer. The remote computer can load the instruc
tions into its dynamic memory and send the instructions and
other data over the Internet, a telephone netWork, a Wireless
netWork, or any other communications or computer netWork.
Hand-held electronic device 600 may be coupled via bus
612, such as a liquid crystal display (LCD) for displaying
The Wireless netWork may include Bluetooth, WiMax, the
various 802.11 standards implemented netWorks, or GSM/
information to a user. An input device 614, including physical
GPRS, W-CDMA (UTMS), lS95, CDMA2000 1x, or CDMA
input elements, such as keys, buttons, touch pads, touch
screens, rotary dials, accelerometers, directional pads, and
pressure-sensitive (e.g., force sensitive resistors or pieZo
electric) elements, is coupled to bus 602 for communicating
l><EV-DO cellular netWorks or any other type of cellular
netWorks.
602 or Wireless connection, such as Bluetooth, to a display
35
40
information and command selections to processor 604.
Another type of user input device is cursor control 616, Which
may include other types of physical input elements, such as a
mouse, a trackball, an accelerometer, key sWitch, rotary dial,
Hand-held electronic device 600 also includes a commu
nication interface 618 coupled to bus 602. Communication
interface 618 provides a tWo-Way data communication cou
pling to a netWork link 620 that is connected to a local net
45
Work 622. For example, communication interface 618 may be
an integrated services digital netWork (ISDN) card, a broad
slider, or cursor direction keys, such as a directional pad, for
band integrated services digital netWork (B-ISDN), a tele
communicating direction information and command selec
phone or Wireless modem to provide a data communication or
any other communication interface knoWn to one of ordinary
tions to processor 604 and for controlling cursor or other
movement (e. g., game play) on display 612. This input device
typically has tWo degrees of freedom in tWo axes, a ?rst axis
skill. As another example, communication interface 618 may
50
(e.g., x) and a second axis (e.g., y), that alloWs the device to
specify positions in a plane. The input elements of the input
device 614 may also provide direction information and cursor
control. One or more of the display 612, input device 614 and
cursor control 616 may be integrated With the hand-held
munication connection to a compatible LAN. Wireless links
may also be implemented. In any such implementation, com
munication interface 618 sends and receives electrical, elec
55
tromagnetic or optical signals that carry digital data streams
representing various types of information. For example, the
communication interface 618 can receive the instructions and
electronic device 600 or may be integrated in a device exter
nal to the hand-held electronic device.
data sent by the remote computer. The communication inter
face 618 places the instructions and/or data on bus 602. Bus
602 carries the data to main memory 606, from Which pro
The con?guration application and input element re-map
ping techniques described herein may be used With the hand
held electronic device 600. According to one implementation,
be a local area netWork (LAN) card to provide a data com
60
input element re-mapping is provided by hand-held elec
cessor 604 retrieves and executes the instructions. The
instructions received by main memory 606 may optionally be
tronic device 600 in response to processor 604 executing one
stored on storage device 610 either before or after execution
or more sequences of one or more instructions contained in
by processor 604.
NetWork link 620 typically provides data communication
main memory 606. Such instructions may be read into main
memory 606 from another computer-readable medium, such
65
through one or more netWorks to other data devices. For
as storage device 610 or a buffer or register. Execution of the
example, netWork link 620 may provide a connection through
sequences of instructions contained in main memory 606
local netWork 622 to a host computer 624 or to data equip
US 7,669,770 B2
11
12
ment operated by an Internet Service Provider (ISP) 626. ISP
626 in turn provides data communication services through the
ment, each associated With at least one corresponding
WorldWide packet data communication netWork noW com
monly referred to as the “Internet” 628. Local netWork 622
characters;
function comprising at least one of shift functions or text
modifying a mapping function based on the de?ned plu
and Internet 628 both use electrical, electromagnetic or opti
rality of con?guration settings, Wherein the mapping
cal signals that carry digital data streams. The signals through
function comprises a keyboard device driver, compris
the various netWorks and the signals on netWork link 620 and
ing
through communication interface 618, Which carry the digital
selectively associating the ?rst input element With at
data to and from Hand-held electronic device 600, are exem
least ?rst and second text characters,
plary forms of carrier Waves transporting the information.
selectively associating the second input element With a
Hand-held electronic device 600 can send messages and
?rst shift function that modi?es an executable func
receive data, including program code, through the netWork
tion for the ?rst input element to the associated ?rst
text character upon activation of the second input
(s), netWork link 620 and communication interface 618. In the
Internet example, a server 630 might transmit a requested
element, and
selectively associating the third input element With a
code for an application program through Internet 628, ISP
626, local netWork 622 and communication interface 618. In
one aspect, one such doWnloaded application provides for
input element re-mapping as described herein. Processor 604
second shift function that modi?es an executable
function for the ?rst input element to the associated
second text character upon activation of the third
may execute the received code as it is received, and/ or stored
in storage device 610, or other non-volatile storage for later
execution. In this manner, hand-held electronic device 600
input element; and
20
may obtain application code in the form of a carrier Wave.
A number of implementations have been described. Other
implementations may include different or additional features.
For example, in some implementations a combination of
during operation of the text entry comprising
detecting activation of tWo of the input elements com
25
physical input elements may be mapped to perform a particu
lar function, such as scrolling, by interpreting the sequence of
the actuation or activation of input elements and the timing
betWeen actuation, or other interpretable combinations or
actuation information from input element presses. That is, a
the ?rst input element, and
30
For example, on a conventional cellular phone, one of the
35
40
one physical input element during operation of the soft
Ware application or a softWare application Within the
class of softWare applications;
retrieving the scan code from the buffer;
converting the retrieved scan code to a virtual input ele
45
ment code using the modi?ed keyboard device driver;
calling a keyboard event With the scan code and the virtual
use accelerometers and associated circuitry for processing
input element code; and
global positioning satellite (GPS) information. The re-map
executing a function associated With the keyboard event,
ping techniques described herein may utiliZe the GPS infor
mation in combination With physical input element presses to
Wherein the function is the at least one function.
2. A method for re-mapping a hand-held electronic device,
interpret navigation Within the area of a menu, a Web page or
the method comprising:
navigation Within a list. For example, a user physically tilting
receiving, at the hand-held electronic device, a plurality of
such a device doWnWard may be associated With a doWnWard
What is claimed is:
1. A method for re-mapping a hand-held electronic device,
element during operation of the softWare application or
a softWare application Within the class of softWare appli
cations comprises:
scrolling.
scrolling function, While the user physically tilting the device
upWard may be associated With an upWard scrolling function.
Accordingly, other implementations are Within the scope of
the folloWing claims.
Wherein executing the at least one corresponding function
associated With the at least one physical input element
upon an activation of the at least one physical input
Writing a scan code to a buffer upon the activation of at least
initiate a doWnWard scrolling of a cursor or slider and press
As another example, some hand-held electronic devices
selectively entering one of the ?rst text character or the
second text character corresponding to the second
input element or third input element;
a function that turns digital control into analog control.
ing the “0” input element may increase the speed of doWn
Ward scrolling. LikeWise, pressing the “5” input element may
initiate upWard scrolling of the cursor or slider, and pressing
the “2” input element may increase the speed of upWard
prising
one of the second input element or third input ele
ment, and
sequence of physical input element presses and the timing
betWeen pressing the input elements may be associated With
columns of physical input elements that forms the keypad on
the phone, e.g., the center column including the input ele
ments 2, 5, 8 and 0, may be mapped to a scrolling function. In
this implementation, pressing the “8” input element may
executing the at least one corresponding function associ
ated With the at least one physical input element upon an
activation of the at least one physical input element
con?guration settings for a softWare application or a
class of softWare applications comprising a text entry
55
application, Wherein the con?guration settings include
physical input elements comprising at least a ?rst input
element, a second input element and a third input ele
ment, each associated With at least one corresponding
function comprising at least one of shift functions or text
60
the method comprising:
characters;
modifying a mapping function based on the de?ned plu
receiving, at the hand-held electronic device, a plurality of
rality of con?guration settings, Wherein the mapping
con?guration settings for a softWare application or a
class of softWare applications comprising a text entry
function comprises a device layout, comprising
selectively associating the ?rst input element With at
application, Wherein the con?guration settings include
physical input elements comprising at least a ?rst input
element, a second input element and a third input ele
65
least ?rst and second text characters,
selectively associating the second input element With a
?rst shift function that modi?es an executable func
US 7,669,770 B2
14
13
tion for the ?rst input element to the associated ?rst
text character upon activation of the second input
modifying a mapping function based on the de?ned plu
rality of con?guration settings, Wherein the mapping
element, and
selectively associating the third input element With a
function comprises a translation layer of a keyboard
second shift function that modi?es an executable
selectively associating the ?rst input element With at
function for the ?rst input element to the associated
second text character upon activation of the third
selectively associating the second input element With a
device driver, comprising
least ?rst and second text characters
?rst shift function that modi?es an executable func
input element; and
tion for the ?rst input element to the associated ?rst
text character upon activation of the second input
executing the at least one corresponding function associ
ated With the at least one physical input element upon an
activation of the at least one physical input element
element, and
selectively associating the third input element With a
during operation of the text entry comprising
second shift function that modi?es an executable
detecting activation of tWo of the input elements com
function for the ?rst input element to the associated
second text character upon activation of the third
prising
one of the second input element or third input ele
ment, and
input element; and
executing the at least one corresponding function associ
ated With the at least one physical input element upon an
activation of the at least one physical input element
the ?rst input element, and
selectively entering one of the ?rst text character or the
second text character corresponding to the second
input element or third input element;
Wherein executing the at least one corresponding function
associated With the at least one physical input element upon
an activation of the at least one physical input element during
operation of the softWare application or a softWare applica
20
detecting activation of tWo of the input elements com
prising
one of the second input element or third input ele
ment, and
25
tion Within the class of softWare applications comprises:
least one physical input element during operation of the
input element or third input element;
softWare application or a softWare application Within the
30
Writing a scan code to a buffer upon the activation of the at
least one physical input element during operation of the
softWare application or a softWare application Within the
executing a function associated With the keyboard event,
class of softWare applications;
retrieving the scan code from the buffer;
Wherein the function is the at least one function.
3. A method for re-mapping a hand-held electronic device,
the method comprising:
con?guration settings for a softWare application or a
class of softWare applications comprising a text entry
application, Wherein the con?guration settings include
physical input elements comprising at least a ?rst input
element, a second input element and a third input ele
ment, each associated With at least one corresponding
function comprising at least one of shift functions or text
characters;
Wherein executing the at least one corresponding function
associated With the at least one physical input element upon
an activation of the at least one physical input element during
operation of the software application or a software applica
tion Within the class of softWare applications comprises:
input element code; and
receiving, at the hand-held electronic device, a plurality of
the ?rst input element, and
selectively entering one of the ?rst text character or the
second text character corresponding to the second
Writing a scan code to a buffer upon the activation of the at
class of softWare applications;
retrieving the scan code from the buffer;
converting the retrieved scan code to a virtual input ele
ment code using the modi?ed device layout;
calling a keyboard event With the scan code and the virtual
during operation of the text entry comprising
40
converting the scan code to an original virtual input ele
ment code;
converting the original virtual input element code to a neW
input element code using the modi?ed translation layer
of the keyboard device driver;
calling a keyboard event With the scan code and the neW
virtual input element code; and
executing a function associated With the keyboard event,
Wherein the function is the at least one function.
*
*
*
*
*