Michal Grzegorzewski

Sponsors

The Lounge

Wicked Cool Jobs

Syndication

Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at imagehelp@codebetter.com
Surface - what did they do with the input!?

I think everyone has seen any webcast preview about the amazing Surface. Some of our friends are so keen on it, that change their job just to earn some money to buy it :))
But have you thought a bit: 'how to heck have they done it?!'. And not the engineering stuff with cables, cameras, etc., but software. (Everything is about the software!). As they say: at the bottom they've got the Vista system and WPF apps. Nothing more.
When you look at any webcast dedicated to Surface you are sure they did something with the input. But then you may doubt if they changed the core of the windowing subsystem or simply started to interpret the input coming from devices differently at the app level.
Some time ago John Robbins wrote some words about Microsoft UI Automation and talked about the best session he had ever seen. It was about multiple input queues, which supposed to be in Vista (and/or Longhorn), but these features unfortunately are missing. They had to do it different way.
When you connect the second mouse / keyboard to your system nothing happens. They're fighting with each other for the control, another cursor doesn't appear. But - it works! So - the problem is with the interpretation of the device id (simply omitted), not the windowing subsytem. I was sure someone has already done something with the device id at the message level - and after few google clicks I found the project coming - no wonder! - from Microsoft Research :)
Two different cursors working at the same moment. Amazing! The libs are available for free with some quickstarts on wpf. Have a look (ctp release of the sdk). Also consider watching 30 mins webcast on ch9.
Of course, at the Surface they may have different approach - I think they have one input device connected to the system of cameras / other stuff with many logical lines interpreted by the driver (400 megabits (usb2) of information is enough to transfer much more than just 52 finger's inputs!). But - if you don't want to wait for your own Surface table, you may do it yourself - using wpf and free libs from MS :)
I don't know how about you, but I was amazed and had lots of fun playing with two cursors. What a potential!


Posted 06-07-2007 8:18 PM by Michal Grzegorzewski

[Advertisement]

Add a Comment

(required)  
(optional)
(required)  
Remember Me?

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Subscribe
Google Reader or Homepage

del.icio.us CodeBetter.com Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl CodeBetter.com Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of Devlicio.us
Red-Gate Tools For SQL and .NET

NDepend

SlickEdit
 
SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
LiteAccounting.Com
DevExpress
Fixx
NHibernate Profiler
Unfuddle
Balsamiq Mockups
Scrumy
JetBrains - ReSharper
Umbraco <-- NEW Friend!
NServiceBus <-- NEW Friend!

 



Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers

 

Community Server (Commercial Edition)