* Properly name the main header.
* Remove one time inclusions from the main header and put them back where they belong.
CORE-7716
svn path=/trunk/; revision=61881
* Do not include debug.h into the main header.
* Remove one time inclusions from the main header and put them back where they belong.
* Move some inclusions to the main header.
* Remove inclusions and definitions that already exist in the main header.
CORE-7716
svn path=/trunk/; revision=61489
Pass a PUNICODE_STRING instead of a LPWSTR (and unused BufferSize) to FindMatchingCreateItem(), make use of the Length parameter instead of trusting on NULL termination when searching for path separators.
svn path=/trunk/; revision=58065
- Merge from audio branch
- Perform irp completion in dedicated function
- Move Software Bus function into own file
- Remove debugging code which caused crashes
- Partly implement IKsProcessingObject interface for filter
- Fix check in FindMatchingCreateItem function
- Implement software bus enumerator functions
[SWENUM]
- Implement SwDispatchPower, SwDispatchPower
svn path=/trunk/; revision=50531
- Fix several bugs in KsProbeStreamIrp
- If requestor is KernelMode - just save a pointer in Irp->AssociatedIrp.SystemBuffer (currently not used)
- If requestor is UserMode mark irp as buffered. Also set Flag IRP_INPUT_OPERATION when the ioctl is IOCTL_KS_READ_STREAM. This is important to propagate modifications to KSSTREAM_HEADERS (in particular DataUsed member)
- ReactOS KS can now be used in WinXP in combination with KSStudio. In order to make it fully work, ks needs to implement software bus functions
[PORTCLS]
- Rewrite internal irp queue handling
- It now supports multiple KSSTREAM_HEADERs per Irp, variable sized KSSTREAM_HEADERs per irp.
- Store the mapped virtual address not in the KSSTREAM_HEADER, as user programs will receive then invalid addresses
- Add checks whether this irp is for an sink pin or source pin
- Fix multiple bugs when the pin is looped buffer mode (How did this work before?)
- ReactOS portcls + WinXP now properly works with audio recording
[WDMAUD_KERNEL]
- Don't free associated stream header anymore
- Tested with VBox 3.2.10 + VmWare Player 3.1.2 + WinXP
svn path=/trunk/; revision=49457
- Make pin / node / allocator create requests compatible to ms by removing obsolete slash before object class
- Return correct error code in ksuser's KsCreatePin
- ReactOS KS is now able to create audio pins in Windows XP, though playback is not yet working
- All changes except ksuser change has been verified to work with VBox 3.2.10
- KS user changes not tested yet as KSStudio not working in trunk
svn path=/trunk/; revision=49428
- Portcls does not need to set the size of the audio buffer for completed irps. This is done in a completion callback in wdmaud. Verified with WinXP portcls
[WDMAUD_KERNEL]
- Free allocated mdls in the io completion routine. Also free the associated stream header.
[KS]
- Replace all ms portcls hacks by one.
- MS Portcls is now working in ReactOS (which is nice for testing audio related bugs)
svn path=/trunk/; revision=49417
- Fix typo
- Store object interface functions in KSBASIC_HEADER OuterUnknown
- Implement KsDeviceRegisterAdapterObject, KsRegisterAggregatedClientUnknown, KsGetOuterUnknown
- Partly implement clock property functions
- Rewrite KsValidateConnectRequest, KsPinPropertyHandler to handle KSPIN_DESCRIPTOR_EX, which is used by IKsFilter implementation
- Dispatch unsupported interface requests to the clients registered inner aggregate (device / filter factory / filter / pin)
- Rewrite filter functions which deal with KSPIN_DESCRIPTO, as the client can dynamically modify the PinDescriptors array
- Handle matching create requests which differentiate in case
- Implement pin allocator framing property handler
svn path=/trunk/; revision=46878
- Return status success from unimplemented IKsClock_DispatchClose
- Implement handling of KSPROPERTY_PIN_CONSTRAINEDDATARANGES property
- Forward unhandled irps to lower device object
- Fix asserts in KspHandleDataIntersection. The function is still a grotesk hack
- Simply handling of property requests by merging filter properties into filter descriptor
- Implement KsMethodHandler, KsMethodHandlerWithAllocator, KsFastMethodHandler
- Fix a bug in KsPinGetFirstCloneStreamPointer
- Implement handling of KSPROPSETID_Topology (KspTopologyHandler)
svn path=/trunk/; revision=46794
- Silent debug traces on request of Christoph
[CMIDRIVER]
- Remove link hacks
[WDMAUD_KERNEL]
- Silent debug traces on request of Christoph
- Reference notification event when the mixer is openend
- Fix a bug in the notification handler (double free due entry not removed from list)
svn path=/trunk/; revision=44132
- Fix a bug in KsCancelIo which accessed already freed memory
[PORTCLS]
- Cancel all audio stream irps when the it is used in looped stream mode. Fixes re-opening of playback / capture devices in DSound.
- Remove dead code
svn path=/trunk/; revision=43945
- Add comment for using ms portcls in ReactOS
[WDMAUD_KERNEL]
- Handle error
[SYSAUDIO]
- Fix several bugs in the mixer handling code
- Disable kmixer untill all issues are resolved
svn path=/trunk/; revision=43879
- Store Object Header in FsContext2
- Fix allocation of create item entry in KsAllocateObjectCreateItem
- Fix de-referencing in Ks[De]ReferenceSoftwareBusObject & Ks[De]ReferenceBusObject
- Fake success in KsEnableEvent
- Check if the list empty in KspFreeEventList
- Handle GUID_NULL in KspPropertyHandler
- Return STATUS_MORE_ENTRIES if outputbuffer is too small
- Zero struct in KsRegisterWorker
[PORTCLS]
- Store dispatch context in FsContext
- Ignore return value in interrupt sync routine [[Amine Khaldi]]
- Disable assert for frame size check for now
- Free buffer only if the irp was from kernel mode(hack 2 be removed)
- remove unused includes [[Amine Khaldi]]
- Don't attempt copying an empty resource list [[Amine Khaldi]]
[WDMAUD_KERNEL]
- Check if allocation succeeded [[Amine Khaldi]]
[SYSAUDIO]
- Store dispatch context in FsContext2
svn path=/trunk/; revision=43035
- Implement IKsFilter_fnAddProcessPin, IKsFilter_fnRemoveProcessPin
- Remove old code for attaching so that it works with KsGetFirstChild
- Implement attach of filter factories to the device header
- Unimplement a few functions which were wrong
- Implement KsDispatchSpecificProperty
svn path=/trunk/; revision=42699
- Fix uninitialized return value when the list is empty
- Fix a horrible bug where the end of the list wasnt checked by the source list but the destination list
- Found by Amine Khaldi
svn path=/trunk/; revision=42607
- Remove a hack for sysaudio + kmixer
[PORTCLS]
- Disable assert untill stream allocator is in place
- Remove dead code
- Implement IPortPinWaveCyclic_HandleKsStream
[KMIXER]
- Remove unused code
- Implement creating the allocator
- Properly implement openening the device
[STREAM]
- Use GLOBAL as the reference string
- Setup a pin create item
[SYSAUDIO]
- Use reference string GLOBAL to open kmixer
- Use reference string GLOBAL for opening sysaudio. Will be removed once bug 4566 is resolved
svn path=/trunk/; revision=42457
- Acquire Spinlock at dpc level
- Release cancel spinlock at correct level
[PORTCLS]
- Check if current partially processed irp has been cancelled and complete it in that case
- Silence debug flood
svn path=/trunk/; revision=42335
- Implement KsQueryInformationFile
- Properly implement KsStreamIo
- Fix a desastreous bug in KsRemoveIrpFromCancelableQueue
- Implement KsMoveIrpsOnCancelableQueue
[PORTCLS]
- Switch portcls to use the provided ks irp queue function instead of the homegrown IRP_MAPPING routines. Irp queueing is now faster and consumes less memory
- Return an allocated silence buffer when there are no mappings available
- HACK-Remove: Don't pre-complete any audio buffers now anymore. If you experience audio stuttering, let me know
[SYSAUDIO, PORTCLS, KMIXER]
- FastRead / FastWrite routines must store their return values in the status block as KsStreamIo now checks these
svn path=/trunk/; revision=42334
- Rewrite KSCREATE_ITEM handling to support clocks, nodes, allocators.
- Store create items in list instead of an array. Consequently, the code can be re-used for KSDEVICE_HEADER / KSOBJECT_HEADER functions.
- Implement KsAddObjectCreateItemToObjectHeader
- Implement now KspCreate and IKsDevice_Create properly
- Implement KsGetDevice by using KSBASIC_HEADER struct which must be positioned before its object specific (PKSFILTER, PKSFILTERFACTOR, PKSPIN)
- Remove a hack from KspCreateObjectType
[PORTCLS]
- Store real dispatched object in FsContext2
- Implement a fast device i/o handler
- Increase minimum data threshold when a stream stops prematurely by 10 audio frames (port driver WaveCyclic)
- Remove the hack of checking wether pin create request is passed. Since create items now work nicely, use a different function and handle pin creation requests seperately.
[KMIXER]
- Remove the hack of checking wether pin create request is passed. Since create items now work nicely, use a different function and handle pin creation requests seperately.
[SYSAUDIO]
- Remove the hack of checking wether pin create request is passed. Since create items now work nicely, use a different function and handle pin creation requests seperately.
svn path=/trunk/; revision=42143
- Implement KsDefaultDispatchPower, KsDefaultForwardIrp
- Return the correct device object in KsQueryDevicePnpObject
- Implement KsReadFile, KsSetInformationFile and partly KsQueryInformationFile
- Remove KspClose, KspRead, KspWrite, KspFlushBuffers, KspQuerySecurity, KspSetSecurity and all these IOCTL in KspDispatchIrp
- Rewrite KsDispatchIrp to handle IRP_MJ_CREATE & IRP_MJ_POWER, IRP_MJ_PNP for AV Stream minidrivers and forward IRP_MJ_SYSTEM_CONTROL requests to the registered pnp base object
- Unsupported IOCTLs are now completed with KsDispatchInvalidDeviceRequest (previously leaked)
svn path=/trunk/; revision=42117
- The pin creation parameters are now placed right after the reference string. Handle this case in KsValidateConnectRequest
- Only store the passed create items, no need to copy the passed create items. This is required for enabling dynamic audio devices
- Fix copying of the object class in KsAllocateObjectHeader
- Check for KSCREATE_ITEM_IRP_STORAGE flag in KsCreate
[PORTCLS]
- Reduce initial audio buffer to about 1/3 second which greatly improves performance
[SYSAUDIO]
- Remove concept of audio subdevices
- Remove imported KsCreatePin
- Replace OpenDevice loop hack
svn path=/trunk/; revision=41842