165 ULONG NewIndex, OldIndex;
167 Samples =
BufferLength / (BitsPerSample / 8) / OldChannels;
169 if (NewChannels > OldChannels)
171 if (BitsPerSample == 8)
177 for(NewIndex = 0, OldIndex = 0; OldIndex < Samples * OldChannels; NewIndex += NewChannels, OldIndex += OldChannels)
186 BufferOut[NewIndex+OldChannels + SubIndex] =
Buffer[OldIndex + (SubIndex % OldChannels)];
187 }
while(SubIndex++ < NewChannels - OldChannels);
192 else if (BitsPerSample == 16)
198 for(NewIndex = 0, OldIndex = 0; OldIndex < Samples * OldChannels; NewIndex += NewChannels, OldIndex += OldChannels)
206 BufferOut[NewIndex+OldChannels + SubIndex] =
Buffer[OldIndex + (SubIndex % OldChannels)];
207 }
while(SubIndex++ < NewChannels - OldChannels);
212 else if (BitsPerSample == 24)
218 for(NewIndex = 0, OldIndex = 0; OldIndex < Samples * OldChannels; NewIndex += NewChannels, OldIndex += OldChannels)
226 RtlMoveMemory(&BufferOut[(NewIndex+OldChannels + SubIndex) * 3], &
Buffer[(OldIndex + (SubIndex % OldChannels)) * 3], 3);
227 }
while(SubIndex++ < NewChannels - OldChannels);
232 else if (BitsPerSample == 32)
238 for(NewIndex = 0, OldIndex = 0; OldIndex < Samples * OldChannels; NewIndex += NewChannels, OldIndex += OldChannels)
246 BufferOut[NewIndex+OldChannels + SubIndex] =
Buffer[OldIndex + (SubIndex % OldChannels)];
247 }
while(SubIndex++ < NewChannels - OldChannels);
260 for(NewIndex = 0, OldIndex = 0; OldIndex < Samples * OldChannels; NewIndex += NewChannels, OldIndex += OldChannels)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
#define STATUS_INSUFFICIENT_RESOURCES
#define RtlMoveMemory(Destination, Source, Length)
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
#define ExAllocatePool(type, size)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength