Devices supported by Windows Portable Devices (WPD) - webcam

I'd like to use digital cameras in my application (running on Windows, written in C++) and I came across two libraries that did that - WIA (Windows Image Acquisition) and WPD (Windows Portable Devices). WIA supports digital cameras only for versions of Windows up to XP and for Vista and 7 one should use WPD. The problem is that I ran WPD's sample project from Windows SDK which failed to recognize all devices I tried (But WIA did on a Win XP machine) apart from a flash memory and an mp3 player. I don't think the other devices were too old to have a WPD driver, so my question is: What devices does WPD support? Am I mistaken or WPD does not work with a broad range of devices? Or maybe there is another library I could use for taking pictures (maybe a video, but that's not as important)?
I hope someone can clear things up. Thanks in advance!

You will need to use DirectShow to work with your webcams on Vista/Win 7. Logitech and the like don't supply WPD drivers. Perhaps they will for Windows 8.
You can also use the MCI interface if you want to go old school, which nowadays is just a compatibility layer on top of DirectShow. Google for "WM_CAP_START" or "WM_CAP_GRAB_FRAME" for some examples.

Don't have a list for WPD, but here's a:
List of Supported Windows Image Acquisition (WIA) Scanners and Cameras
http://support.microsoft.com/kb/264598

Related

Can Firefox OS apps read out USB pins?

I'm wondering if Firefox OS handsets could be useful as a platform for DIY hardware projects. Hence my question: Can Firefox OS apps read out USB pins?
Compared with Arduino it would be obviously be overpowered, but the handsets have decent battery life and all connection stuff like wifi already built in.
Not right now, but we are working on USB support as part of the WebAPI work. The bug to monitor is here: https://bugzilla.mozilla.org/show_bug.cgi?id=737153

Does an HID device need libusbx Windows backend driver on Windows 7?

Current status:
I have developed some USB based device and have developed a driver on Linux using libusb. I am now porting the driver to Windows 7.
Device details
My device is a touch screen with two interfaces, one for the OS to communicate with the touch screen and the other for some vendor communication.
Old Stack Overflow post:
libusb_open returns 'LIBUSB_ERROR_NOT_SUPPORTED' on Windows 7
Here I was stuck with a problem that my libusb_open returned with an error. I learnt that I need Windows backend drivers. But I also learnt that it is for devices which are not recognised by the operating system.
Action taken
I tried installing a driver for my device using the Zadig tool, but I am not able to override the driver used by the OS with the new driver.
Do i really need a libusbx Windows backend driver for a device which has been identified and working well on windows 7? (The touch screen works perfect as a multitouch device)
What is the way forward as the device just can't be opened?
If you really use libusbx then you should be able to at least open the device for sure.
Make sure you did not mess the default HID driver for your device while playing with Zadig tool. Go to Control Panel/Device Manager/Hid section (is your device listed there?), search your device and remove the driver. Then try again.

Specs for Microsoft Xinput USB devices (Xbox controllers)?

Has anybody found the specifications for the USB protocol used by the Xbox controllers? All I can find is the API documentation of Microsoft's implementation (Xinput). I'm trying to write a driver for OS X so Xinput controllers will appear as normal HID devices. Without the specs I'm pretty at a loss...
There is a linux driver here https://github.com/Grumbel/xboxdrv for the XBox that should get you a long way to getting it working on Mac. I don't think the spec is available legally without signing an NDA and paying Microsoft money.

"Unidentified USB Device" on Win CE 6.0

Quite a while I am struggling with a problem regarding the installation of certain USB device driver in Windows CE 6.0.
The device is some kind of Digital and Analog IO device that connects to the USB port.
It is the LabJack U3.
I followed all instruction and put the driver (labjackusb.dll) and coresponding registry entries into the Windows CE image but the device is not detected correctly.
On every boot up a small Message box came up with the Title "Unidentified USB Device"
and the message "Enter the name of the driver for this USB device:"
Whatever name I put into it want work. I tried the name of the dll. Some title in from the registry and so on but never succedes.
The driver does not work nor the device.
The customer support can not help me so I am asking here somebody to help me at least
with a steps to follow to try to find a solution.
Why the OS does not matches the USB device with the corresponding driver?
I checked everything one million times and everything is in place.
There are a load of reasons this might fail. First:
Is the driver definitely a Windows CE driver?
Is it built for CE 6.0 (not 5.0 or something else)?
Is it built for the same processor architecture you have?
The way to really debug this is to hook up KITL, put in a debug version of device.exe and see what the device managet is actually doing when you plug in the device. A way better and way more reliable mechanism than just trying to guess.

CE 5.0 with 3G Usb Stick

I'm new to CE programming and I have a Marvel device PXA270 with Windows CE 5.0 installed. The device has one usb port.
I wonder if there's ANYTHING I can try to connect a 3G-HDSPA usb stick to it. When plugged it only recognises its folders as a pendrive would do, but no Internet.
Thx.
Forget it. To make it work you need OS support for it or a dedicated infrastructure that the cellular modem should provide for Windows CE 5.
To have cellular support you need Cellcore included in the OS and Windows CE 5 does not support it.
What you can do is start develop your own infrastructure for the device, but it will take you several months of work and that is if you have the Cellcore code from Windows CE 6 as a reference.
The short answer is that you must have a Windows CE driver for the device. Obviously it's a composite device that enumerates as a storage device and also whatever the radio is. Windows CE understands the storage device part and therefore loads up the driver for that. It has no idea what the radio is.
You would have to either get a driver from the OEM (they probably don't have one, though it's always worth checking) or write your own (you probably don't have enough info on the radio chipset to be able to do that).