Problems with SurfaceInputProvider on Surface 1.0, Windows 7 and WPF 4.0 Application

Mar 9, 2011 at 4:28 PM
Edited Mar 9, 2011 at 4:30 PM


I have set up a Surface 1.0 Unit with Windows 7, Visual Studio 2010 and Framework 4.0

The Surface SDK 1.0 SP1 as well as the Surface Toolkit for Windows Touch 1.5 beta are installed. I created a WPF application based on WPF 4.0 and the Surface Toolkit 1.5. I have an external monitor attached to the Surface Unit which is configured as primary display, while the surface's projector is the secondary display, located left to the external monitor.

After compiling MultiTouchVista (Build 30935) I installed the driver, started the Multitouch.Service.Console and configured it to use the SurfaceInputProvider. Of course, I also started the SurfaceInput.exe to get the contact events from the cameras.

The effect is: Nothing. I do not even see a red dot when I touch the table's surface.

When I switch to Multiple Mice Provider, I see the red dot, but it is stuck to the left bound of the external monitor, when I move the mouse to the table screen. Otherwise, the red leaves the external monitor to the right, when I move the mouse to the external monitor. So something with my screen setup seems to confuse the MTV service.

Did anyone manage to get the SurfaceInputProvider working on a surface unit? Maybe I'll have to unplug the external monitor?


Mar 10, 2011 at 11:47 AM
Edited Mar 10, 2011 at 11:47 AM

Okay. Today I found out, that the SurfaceInputProvider works fine, when I deactivate my external monitor and run everything on the table's screen.

Apr 6, 2011 at 9:06 PM
<object id="tts_flash" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="18" height="18" codebase=",0,0,0"> <param name="_cx" value="476" /> <param name="_cy" value="476" /> <param name="FlashVars" /> <param name="Movie" value="" /> <param name="Src" value="" /> <param name="WMode" value="Transparent" /> <param name="Play" value="0" /> <param name="Loop" value="-1" /> <param name="Quality" value="High" /> <param name="SAlign" /> <param name="Menu" value="-1" /> <param name="Base" /> <param name="AllowScriptAccess" value="always" /> <param name="Scale" value="ShowAll" /> <param name="DeviceFont" value="0" /> <param name="EmbedMovie" value="0" /> <param name="BGColor" /> <param name="SWRemote" /> <param name="MovieData" /> <param name="SeamlessTabbing" value="1" /> <param name="Profile" value="0" /> <param name="ProfileAddress" /> <param name="ProfilePort" value="0" /> <param name="AllowNetworking" value="all" /> <param name="AllowFullScreen" value="false" /> </object>

hi can not find the file Input Surface Provider.
What microsoft vercion of surface do you have?
Microsoft Surface SDK 1 Workstation Edition SP1 or drive vercion sdk

Apr 7, 2011 at 9:19 PM

Hello HEBU ...........................
I feel the same can not find the file anywhere you can share the SDK that you have with me because in the country where I live there is no way to access a drive nor do I have enough money to buy Full SDK and I think most of us it's the same and that is why we started this project so you can someday achieve something like the following video: # p/u/5/bcOWASRQUy4
so I'm speaking for the majority who do not have the privilege of having a real drive and have put a great effort to get something similar to this project.
thanks ..

Apr 9, 2011 at 2:36 PM

Sorry, but I'm not privileged to upload the SDK version of the surface table.

Apr 9, 2011 at 2:40 PM

Next problem: Today I found out that the touch points generated by Multi-Touch Vista (with SurfaceInputProvider) are coming into my application as StylusTouchDevices with the size of (0; 0).

I would like to use the original size of the finger touch point. Probably I misconfigured something within the stylus- & finger settings of Win7?

Apr 11, 2011 at 7:36 PM

hello HEBU
do not know a way to recognize objects with multitouch I mean like in this video. # p/u/4/tUpLyKYYd_0
otherwise the applications made with the SDK 2 coming out in a few months may be used with multitouch view?

Apr 11, 2011 at 9:22 PM

Hi scorpion,

as far as I understand, the Multi-Touch Vista SurfaceInputProvider does not support object recognition (blobs; byte tags) -- only finger recognition.

See SurfaceInputProvider/InputContext.cs, line 45 (function timer_Tick; build 30935):

contacts = contacts.Where(contact => contact.IsFingerRecognized);

The contacts are filtered by the attribute "IsFingerRecognized", only finger touches are processed by the SurfaceInputProvider.

For your self-built tabletop you should try a TUIO-based recognition system like CCV and Multi-Touch Vista's TUIO Input Provider, instead of searching for a Full Surface SDK. You can still use Surface 1.5 Toolkit Beta and WPF4 on Windows 7, if you want to make use of the surface controls (like ScatterView, ...)


Apr 27, 2011 at 9:56 AM

Is there anyone here who also had the StylusTouchDevices with the size of (0; 0) problem I posted on April 9 ? I'd be really glad if MTV could keep the finger's size information using the SurfaceInputProvider.