Does anyone here knows how to check which device is running an app in windows 8?
Preferably the Directx + Xaml version .
Thanks
When we developed Windows 8 we intentionally made it so that "tablet" and "PC" are one in the same. If you look at the new generation of hardware (UltraBooks that un-dock to become tablets, ARM-based laptops, etc) you'll see why it wouldn't be possible to guarantee to the app developer that a device is either a "tablet" or a "PC". You could string together a number of capabilities checks to take a guess but you run the risk of inadvertently causing a bad user experience for an unexpected use case.
Anticipating the "But Apple..." replies: This is different for the Apple ecosystem because their PC hardware runs a completely different OS than their tablet and their platform is only available on a small number known Apple devices. It's also different when you compare phones to tablets because a smartphone is essentially a tablet with a smaller screen. The intent of Windows is to run on a wide variety of devices from a wide variety of hardware makers. There are pluses and minuses with both scenarios.
Related
We're using libusb v1.0.9.0 in C++ code (with a Java front end). We're testing it on multiple versions of Windows and multiple machines for various USB 2.0/3.0 controllers, and we've found a couple of very bad problems.
On Windows 7, it can't see any ports on an "Intel USB 3.0 Extensible Host Controller" platform.
On Windows Server 2008, it can't see certain ports on both the USB 2.0 and 3.0 controllers. Some ports on the 2.0 hub work, and some ports on the 3.0 hub work, but other ports are invisible to the same device, to any device.
The first one might be just a specific controller idiosyncrasy that will be supported soon, but the second one really worries us. Is this kind of behavior common? How do we fix it?
We're using libusb_get_device_list() or libusb_open_device_with_vid_pid().
I had some trouble concerning certain USB 3.0 ports as well, even though it was maybe a little different to your situation. So I am not quite sure if I can help you out, I believe it's more related to a hardware-issue. But keep in mind the following facts:
USB 3.0 hardware is not yet well established (still under development) - some ports are loosing their functionality over the time, especially these quite cheap ones (built-in ports on mainboards with an Intel chipset). Because the current provided over USB 3.0 and the data rate is much higher than USB 2.0, it's not a miracle that these ports made of cheap wire break easily.
Even using a different cable makes a difference, not speaking of hubs - they seem to be still prototypes, at least the ones I used.
Keep looking regularly for the latest drivers of your xHCI. There are often nasty bugs fixed within.
Last, but not least, vary the size of packets sending to your xHCI. Actually, the preferred size is 64 KB, so split up your data in blocks of this size. This is related to the problem of the interrupts which are caused by huge packets. To some xHCIs this is already the reason to surrender (especially if you are running under USB 2.0!).
All in all, the behaviour of different xHCIs (Renesas, Intel, ..) differs quite a lot. It is mostly annoying because the reason is not obvious at all.
A last suggestion: Try tools like the USBlyzer. The last option would be something like Voyager M3i (protocol analyzer), if you are willing to spent about US$30,000 or so..
I've been trying to research why certain compatibility features differ based on operating system so I can program a patch. I'm using the compatibility settings in the registry for Windows 95 to run a game (that of which the game was produced on) in each system. In Windows XP, the game runs perfectly. None of the scenes lag, and the sound works just as well as the scenes. I'm unsure of how it runs in Windows Vista, but in Windows 7 & 8 the compatibility feature breaks the game. I used a VM to run XP, but that doesn't effect the game's playability; real XP users have tested it. Whenever I play the game using the Win95 setting for compatibility in 7 & 8, everything lags. The music doesn't slow down during gameplay, but the graphics do. During cutscenes, they literally break. Everything pixelates, white noise and static increases volume, and the video lags every two seconds.
I therein tested it in Ubuntu Linux via WINE, and it runs better than it does in XP. I just had to use the alsa sound driver. What changed? If so, is it programmatically fixable? I'm using an amalgamation of C++, Batch and Java.
If it is necessary, the video game is entitled "The Neverhood."
Thanks.
The compatibility feature available in the shell is just scratching the surface of the "Application Compatibility" subject in Windows.
There is a tool called "Microsoft Application Compatibility Toolkit (ACT)" (that exist since Windows XP exist I believe) that has much more to offer, so maybe that can help.
For example here are some compatibility settings for Graphics Control Issues
I currently play "The Neverhood" on Win7 x64 without any visual problem, you are right when I played on Win7 for first time (4 years ago) was a headache and a little tricky to do the correct compatibility flags for each win version but finally I wrote this reg code for Win7 and worked for me while 4 years, sure it will work for you too:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Folder\\nhc.exe"="# WIN95 256COLOR 640X480 DISABLEDWM"
Where "C:\\Folder\\nhc.exe" of course is the path to your Neverhood. (Notice the double backslashes)
that flags means: Change Display color to 256 colors, change display resolution to 640x480, disable Themes service (DWM Service).
I hope this help you.
This may not answer the question directly, but if you want to improve performance of The Neverhood, change the compatibility to run in Windows 95 - then switch all other options ON, except the bottom three. This helps to make the game as fast and smooth as possible.
Is there any good way too get a indication if a computer is capable to run a program/software without any performance problem, using pure JavaScript (Google V8), C++ (Windows, Mac OS & Linux), by requiring as little information as possible from the software creator (like CPU score, GPU score)?
That way can I give my users a good indication whether their computer is good enough to run the software or not, so the user doesn't need to download and install it from the first place if she/he will not be able to run it anyway.
I thinking of something like "score" based indications:
CPU: 230 000 (generic processor score)
GPU: 40 000 (generic GPU score)
+ Network/File I/O read/write requirements
That way can I only calculate those scores on the users computer and then compare them, as long as I'm using the same algorithm, but I have no clue about any such algorithm, whose would be sufficient for real-world software for desktop usage.
I would suggest testing on existence of specific libraries and environment (OS version, video card presence, working sound drivers, DirectX, OpenGL, Gnome, KDE). Assign priorities to these libraries and make comparison using the priorities, e.g. video card presence is more important than KDE presence.
The problem is, even outdated hardware can run most software without issues (just slower), but newest hardware cannot run some software without installing requirements.
For example, I can run Firefox 11 on my Pentium III coppermine (using FreeBSD and X server), but if you install windows XP on the newest hardware with six-core i7 and nVidia GTX 640 it still cannot run DirectX 11 games.
This method requires no assistance from the software creator, but is not 100% accurate.
If you want 90+% accurate information, make the software creator check 5-6 checkboxes before uploading. Example:
My application requires DirectX/OpenGL/3D acceleration
My application requires sound
My application requires Windows Vista or later
My application requires [high bandwith] network connection
then you can test specific applications using information from these checkboxes.
Edit:
I think additional checks could be:
video/audio codecs
pixel/vertex/geometry shader version, GPU physics acceleration (may be crucial for games)
not so much related anymore: processor extensions (SSE2 MMX etc)
third party software such as pdf, flash, etc
system libraries (libpng, libjpeg, svg)
system version (Service Pack number, OS edition (premium professional etc)
window manager (some apps on OSX require X11 for functioning, some apps on Linux work only on KDE, etc)
These are actual requirements I (and many others) have seen when installing different software.
As for old hardware, if the computer satisfies hardware requirements (pixel shader version, processor extensions, etc), then there's a strong reason to believe the software will run on the system (possibly slower, but that's what benchmarks are for if you need them).
For GPUs I do not think getting a score is usable/possible without running some code on the machine to test if the machine is up to spec.
With GPU's this is typically checking what Shader Models it is able to use, and either defaulting to a lower shader model (thus the complexity of the application is of less "quality") or telling them they have no hope of running the code and thus quitting.
I am exploring on Embedded Linux for Mobile Development and Set top Box Application.
I need to do some R/D on Embedded Linux.
I found BusyBox is good for Set Top Box and Maemo for Mobile Development.
I wanted to know is there any Embedded Linux Distribution (open Source/free) which can be used for both Mobile Development and Set top Box Application.
I also wanted to know Other
Exclusively and widely used Embedded Linux For Mobile Development.
Exclusively and widely used Embedded Linux For Set Top Box.
thanks,
I'm not sure you understand the words you wrote. Set top box is a type of hardware, there are many of those being manufactured, each needs its own stack of software (at least the hardware porting layer, the drivers and the bootstrap). On top of the hardware-dependent stack you can put the BusyBox utilities or Maemo, or whatever else. An example of such hardware is Neuros OSD, with fully Open-Source software stack.
There's no one Linux distribution for embedded devices, as there's for PC's. Each device manufacturer tailors its own set of tools and drivers into the distribution they put on their devices. Most common examples are Android, BusyBox, etc., but it's not really a distribution in the sense you're used to in the PC world, because the actual kernel and drivers are hardware dependent and tailored.
I wish to emit a "beep" from the motherboard of a system running Windows CE. Most information / code I have come across use MessageBeep which, from what I can tell, attempts to use the soundcard as opposed to the hardware on the motherboard.
I am using C++ but can you C#.NET if required.
I am running Windows CE 6 on a small PC and not a hand held device.
Have you tried printing a bell character?
cout << '\a';
If the OS audio driver isn't plumbed down to that device (and it sounds like it isn't since it's coming from the sound card's device) then you're going to have to go directly to it with ASM code. You might even have to put it into a driver (user mode should work fine) in order to get access to the hardware.
Assuming you're on an X86 (I've never seen an ARM device with a speaker on the motherboard) then the code is no different than that used by someone running any other OS (since you're going direct to the hardware). A quick search for "x86 beep in asm" turned up a couple promising leads.