- Add dmusprop header
- Add IMP_PowerNotify macro to portcls.h
- Add IID_IMusicTechnology guid to portcls.h
- Add GTI_XXX macros to portcls.h
- Remove broken definitions of KSPROPSETID_Synth, KSPROPSETID_Synth_Dls. They are defined in dmusprop.h
- Add KSDATARANGE_MUSIC to ksmedia.h
- Add KSMUSIC_TECHNOLOGY, KSDATAFORMAT_SUBTYPE_MIDI_BUS, KSAUDFNAME_MIDI, KSNODETYPE_SYNTHESIZER to ksmedia.h
svn path=/trunk/; revision=49388
- Enumerate MIDI devices and provide all necessary functions to deal with them
[WDMAUD_KERNEL]
- Implement support functions which call the provided functions of mmixer library
- Fix a bug in device interface request ioctl handler
- Midi devices should now be visible, capabilities be retrieved and opened / close
- Writing data is not yet supported
svn path=/trunk/; revision=49376
Fix a bug in InitVideo: when looping through the adapters, reinitialize the cbValue before querying the registry.
Also handle failure.
svn path=/trunk/; revision=49360
- Do not leak KSSTREAM_HEADER (48 bytes) for each IOCTL_KS_WRITE_STREAM / IOCTL_KS_READ_STREAM request
- Audio stack should now leak less memory
svn path=/trunk/; revision=49356
Improve the code to enumerate monitors.
- Don't use custom MIN / MAX / ABS macros
- Calculate distance by r^2 = x^2 + y^2
- Use RECTL_bIntersectRect instead of code duplication
- Fix possible NULL pointer dereference
- pass bottom-right exclusive rect to IntGetMonitorsFromRect from NtUserMonitorFromPoint
- Don't handle MONITOR_DEFAULTTOPRIMARY and MONITOR_DEFAULTTONEAREST twice
- Use unsigned variables for unsigned values
- Don't check the result of a UINT returning function for < 0
- Improve readability
svn path=/trunk/; revision=49310
- Don't lie about page protection in MiQueryAddressState. Fixes PDFCreator-alike bugs.
See issue #5627 for more details.
svn path=/trunk/; revision=49296
- Handle various special cases in NtQueryVirtualMemory (e.g. querying illegal virtual addresses, shared memory area, etc). Example of an app doing this - OllyDbg.
svn path=/trunk/; revision=49277
Main features:
- Implement LDEVOBJ api. Responsible for loading dlls (display drivers, font drivers, keyboard layout, etc), replacing code in different locations.
- Implement PDEVOBJ api. A PDEVOBJ represents a physical device and is the core component for handling multiple display devices.
- Rewrite device locking. The new method was neccessary to allow dynamic mode switching.
- Implement support for enumerating display devices and settings.
- Implement dynamic mode switching.
- Implement a number of Eng mapping functions.
- Rewrite Eng level surface handling for cleaner code and better compatability.
- Rewrite parts of the DIB handling code.
- Rewrite DC creation and deletion. Deletion and cleanup is now completely callback based. Now we don't leak the DC objects when terminating a process, like we did before.
- Improve the XLATE and BRUSH code, removing several old hacks.
- Improve icon code.
Thanks to Jerome Gardou, Kamil Hornicek and everyone helping.
svn path=/trunk/; revision=49275