- Fix a number of warnings, no actual code change
- Patch by Love Nystrom, improvements by me
See issue #5336 for more details.
svn path=/trunk/; revision=47496
#include <initguid.h>
#include "adapter.hpp"
#include <initguid.h>
#include "adapter.hpp"
-//#pragma code_seg("PAGE")
+#ifdef _MSC_VER
+//#pragma code_seg("PAGE") // GCC ignores pragma code_seg
+#endif
const GUID KSNODETYPE_DAC = {0x507AE360L, 0xC554, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}};
const GUID KSNODETYPE_ADC = {0x4D837FE0L, 0xC555, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}};
const GUID KSNODETYPE_DAC = {0x507AE360L, 0xC554, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}};
const GUID KSNODETYPE_ADC = {0x4D837FE0L, 0xC555, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}};
PUNKNOWN unknownTopology = NULL;
// install the topology miniport.
PUNKNOWN unknownTopology = NULL;
// install the topology miniport.
- ntStatus = InstallSubdevice(DeviceObject, Irp, L"Topology", CLSID_PortTopology, CLSID_PortTopology, CreateMiniportTopologyCMI, pCMIAdapter, NULL, GUID_NULL, &unknownTopology);
+ ntStatus = InstallSubdevice( DeviceObject, Irp, (PWCHAR) L"Topology",
+ CLSID_PortTopology, CLSID_PortTopology, CreateMiniportTopologyCMI,
+ pCMIAdapter, NULL, GUID_NULL, &unknownTopology );
if (!NT_SUCCESS (ntStatus)) {
DBGPRINT(("Topology miniport installation failed"));
return ntStatus;
if (!NT_SUCCESS (ntStatus)) {
DBGPRINT(("Topology miniport installation failed"));
return ntStatus;
// install the UART miniport - execution order important
ntStatus = STATUS_UNSUCCESSFUL;
MPUBase = 0;
// install the UART miniport - execution order important
ntStatus = STATUS_UNSUCCESSFUL;
MPUBase = 0;
- for (int i=0;i<ResourceList->NumberOfPorts();i++) {
+ for ( UINT i=0; i < ResourceList->NumberOfPorts(); i++ ) {
if (ResourceList->FindTranslatedPort(i)->u.Port.Length == 2) {
MPUBase = (UInt32*)ResourceList->FindTranslatedPort(i)->u.Port.Start.QuadPart;
}
if (ResourceList->FindTranslatedPort(i)->u.Port.Length == 2) {
MPUBase = (UInt32*)ResourceList->FindTranslatedPort(i)->u.Port.Start.QuadPart;
}
if (MPUBase != 0) {
ntStatus = pCMIAdapter->activateMPU(MPUBase);
if (NT_SUCCESS(ntStatus)) {
if (MPUBase != 0) {
ntStatus = pCMIAdapter->activateMPU(MPUBase);
if (NT_SUCCESS(ntStatus)) {
- ntStatus = InstallSubdevice(DeviceObject, Irp, L"Uart", CLSID_PortDMus, CLSID_MiniportDriverDMusUART, NULL, pCMIAdapter->getInterruptSync(), UartResourceList, IID_IPortDMus, NULL);
+ ntStatus = InstallSubdevice( DeviceObject, Irp, (PWCHAR) L"Uart",
+ CLSID_PortDMus, CLSID_MiniportDriverDMusUART, NULL,
+ pCMIAdapter->getInterruptSync(), UartResourceList,
+ IID_IPortDMus, NULL );
}
}
if (!NT_SUCCESS(ntStatus)) {
}
}
if (!NT_SUCCESS(ntStatus)) {
// install the wave miniport - the order matters here
#ifdef WAVERT
// install the wave miniport - the order matters here
#ifdef WAVERT
- ntStatus = InstallSubdevice(DeviceObject, Irp, L"Wave", CLSID_PortWaveRT, CLSID_PortWaveRT, CreateMiniportWaveCMI, pCMIAdapter, ResourceList, IID_IPortWaveRT, &unknownWave);
+ ntStatus = InstallSubdevice(DeviceObject, Irp, (PWCHAR) L"Wave",
+ CLSID_PortWaveRT, CLSID_PortWaveRT, CreateMiniportWaveCMI,
+ pCMIAdapter, ResourceList, IID_IPortWaveRT, &unknownWave );
- ntStatus = InstallSubdevice(DeviceObject, Irp, L"Wave", CLSID_PortWaveCyclic, CLSID_PortWaveCyclic, CreateMiniportWaveCMI, pCMIAdapter, ResourceList, IID_IPortWaveCyclic, &unknownWave);
+ ntStatus = InstallSubdevice(DeviceObject, Irp, (PWCHAR) L"Wave",
+ CLSID_PortWaveCyclic, CLSID_PortWaveCyclic, CreateMiniportWaveCMI,
+ pCMIAdapter, ResourceList, IID_IPortWaveCyclic, &unknownWave );
#endif
if (!NT_SUCCESS(ntStatus)) {
DBGPRINT(("Wave miniport installation failed"));
#endif
if (!NT_SUCCESS(ntStatus)) {
DBGPRINT(("Wave miniport installation failed"));
resourceList->List[0].Count = 0;
// copy the resources which have already been assigned
resourceList->List[0].Count = 0;
// copy the resources which have already been assigned
- for (int i=0;i<list->List[0].Count;i++) {
- if (CopyResourceDescriptor(&list->List[0].Descriptors[i], &resourceList->List[0].Descriptors[resourceList->List[0].Count])) {
+ for ( UINT i=0; i < list->List[0].Count; i++ ) {
+ if (CopyResourceDescriptor( &list->List[0].Descriptors[i],
+ &resourceList->List[0].Descriptors[resourceList->List[0].Count] ))
+ {
resourceList->List[0].Count++;
}
}
resourceList->List[0].Count++;
}
}
-#pragma code_seg("PAGE")
+#ifdef _MSC_VER
+#pragma code_seg("PAGE") /* warning - ignored by GCC compiler */
+#endif
DeviceObject = aDeviceObject;
cm.IOBase = 0;
DeviceObject = aDeviceObject;
cm.IOBase = 0;
- for (int i=0;i<ResourceList->NumberOfPorts();i++) {
+ for ( UINT i=0; i < ResourceList->NumberOfPorts(); i++ ) {
if (ResourceList->FindTranslatedPort(i)->u.Port.Length == 0x100) {
cm.IOBase = (UInt32*)ResourceList->FindTranslatedPort(i)->u.Port.Start.QuadPart;
}
if (ResourceList->FindTranslatedPort(i)->u.Port.Length == 0x100) {
cm.IOBase = (UInt32*)ResourceList->FindTranslatedPort(i)->u.Port.Start.QuadPart;
}
//PAGED_CODE();
DBGPRINT(("CCMIAdapter[%p]::loadSBMixerFromMemory()", this));
#endif
//PAGED_CODE();
DBGPRINT(("CCMIAdapter[%p]::loadSBMixerFromMemory()", this));
#endif
- for (int i = 0; i<(sizeof(sbIndex)/sizeof(sbIndex[0]));i++) {
+ for ( UINT i = 0; i < (sizeof(sbIndex)/sizeof(sbIndex[0])); i++ ) {
writeUInt8(REG_SBINDEX, sbIndex[i]);
writeUInt8(REG_SBDATA, mixerCache[i]);
}
writeUInt8(REG_SBINDEX, sbIndex[i]);
writeUInt8(REG_SBDATA, mixerCache[i]);
}
/*
** non-paged code below
*/
/*
** non-paged code below
*/
+#ifdef _MSC_VER
+#pragma code_seg() /* warning - ignored by GCC compiler */
+#endif
STDMETHODIMP_(UInt8) CCMIAdapter::readUInt8(UInt8 reg)
{
STDMETHODIMP_(UInt8) CCMIAdapter::readUInt8(UInt8 reg)
{
#define NTSTRSAFE_LIB //for Windows 2000 compatibility
#include "ntstrsafe.h"
#define NTSTRSAFE_LIB //for Windows 2000 compatibility
#include "ntstrsafe.h"
-#pragma code_seg("PAGE")
+#ifdef _MSC_VER
+#pragma code_seg("PAGE") /* warning - ignored by GCC compiler */
+#endif
const GUID KSPROPSETID_CMI = {0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xFF}};
const GUID KSPROPSETID_CMI = {0x2B81CDBB, 0xEE6C, 0x4ECC, {0x8A, 0xA5, 0x9A, 0x18, 0x8B, 0x02, 0x3D, 0xFF}};
PropertyRequest.ValueSize = sizeof(DWORD);
PropertyRequest.PropertyItem = &PropertyItem;
PropertyRequest.ValueSize = sizeof(DWORD);
PropertyRequest.PropertyItem = &PropertyItem;
- for (int i=0;i < SIZEOF_ARRAY(TopologyNodes); i++) {
+ for ( UINT i=0; i < SIZEOF_ARRAY(TopologyNodes); i++ ) {
PropertyRequest.Node = i;
Channel = CHAN_LEFT;
PropertyRequest.Node = i;
Channel = CHAN_LEFT;
PropertyRequest.ValueSize = sizeof(DWORD);
PropertyRequest.PropertyItem = &PropertyItem;
PropertyRequest.ValueSize = sizeof(DWORD);
PropertyRequest.PropertyItem = &PropertyItem;
- for (int i=0;i < SIZEOF_ARRAY(TopologyNodes); i++) {
+ for ( UINT i=0; i < SIZEOF_ARRAY(TopologyNodes); i++ ) {
PropertyRequest.Node = i;
if (IsEqualGUIDAligned(*(TopologyNodes[i].Type), KSNODETYPE_VOLUME)) {
PropertyRequest.Node = i;
PropertyRequest.Node = i;
if (IsEqualGUIDAligned(*(TopologyNodes[i].Type), KSNODETYPE_VOLUME)) {
PropertyRequest.Node = i;
CCMITopology *that = (CCMITopology *) ((PMINIPORTTOPOLOGY) PropertyRequest->MajorTarget);
NTSTATUS ntStatus = STATUS_INVALID_PARAMETER;
CCMITopology *that = (CCMITopology *) ((PMINIPORTTOPOLOGY) PropertyRequest->MajorTarget);
NTSTATUS ntStatus = STATUS_INVALID_PARAMETER;
+ //UInt8 data, mask, reg;
+ UInt8 mask, reg;
LONG channel;
if (PropertyRequest->Node == ULONG(-1)) {
LONG channel;
if (PropertyRequest->Node == ULONG(-1)) {
PKSPROPERTY_STEPPING_LONG Range = PKSPROPERTY_STEPPING_LONG(Members + 1);
PKSPROPERTY_STEPPING_LONG Range = PKSPROPERTY_STEPPING_LONG(Members + 1);
- for (int i=0;i<SIZEOF_ARRAY(VolTable);i++) {
+ for ( UINT i=0; i < SIZEOF_ARRAY(VolTable); i++ ) {
if (VolTable[i].node == PropertyRequest->Node) {
Range->Bounds.SignedMaximum = (VolTable[i].max << 16);
Range->Bounds.SignedMinimum = (VolTable[i].min << 16);
if (VolTable[i].node == PropertyRequest->Node) {
Range->Bounds.SignedMaximum = (VolTable[i].max << 16);
Range->Bounds.SignedMinimum = (VolTable[i].min << 16);
PLONG Level = (PLONG)PropertyRequest->Value;
PLONG Level = (PLONG)PropertyRequest->Value;
- for (int i=0;i<SIZEOF_ARRAY(VolTable);i++)
+ for ( UINT i=0; i <SIZEOF_ARRAY(VolTable); i++ )
{
if (VolTable[i].node == PropertyRequest->Node) {
if (PropertyRequest->Verb & KSPROPERTY_TYPE_GET) {
{
if (VolTable[i].node == PropertyRequest->Node) {
if (PropertyRequest->Verb & KSPROPERTY_TYPE_GET) {
#define STATIC_KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF\
DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_DOLBY_AC3_SPDIF)
DEFINE_GUIDSTRUCT("00000092-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF);
#define STATIC_KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF\
DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_DOLBY_AC3_SPDIF)
DEFINE_GUIDSTRUCT("00000092-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF);
-#define KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF)
+#define KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF DEFINE_GUIDNAMED( KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF )
+/* Warning - Recursive #define for KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF */
static KSDATARANGE PinDataRangesBridge[] =
{
static KSDATARANGE PinDataRangesBridge[] =
{
- {
- sizeof(KSDATARANGE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_ANALOG),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE)
- }
+ {
+ {
+ sizeof(KSDATARANGE),
+ 0,
+ 0,
+ 0,
+ { STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO) },
+ { STATICGUIDOF(KSDATAFORMAT_SUBTYPE_ANALOG) },
+ { STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE) }
+ }
+ }
};
static PKSDATARANGE PinDataRangePointersBridge[] =
};
static PKSDATARANGE PinDataRangePointersBridge[] =
static KSDATARANGE WavePinDataRangesAC3Bridge[] =
{
static KSDATARANGE WavePinDataRangesAC3Bridge[] =
{
- {
- sizeof(KSDATARANGE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_AC3_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE)
+ {
+ {
+ sizeof(KSDATARANGE),
+ 0,
+ 0,
+ 0,
+ { STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO) },
+ { STATICGUIDOF(KSDATAFORMAT_SUBTYPE_AC3_AUDIO) },
+ { STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE) }
+ }
KSPIN_COMMUNICATION_NONE, // Communication
&KSCATEGORY_AUDIO, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSCATEGORY_AUDIO, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSNODETYPE_SPDIF_INTERFACE, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSNODETYPE_SPDIF_INTERFACE, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSNODETYPE_MICROPHONE, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSNODETYPE_MICROPHONE, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSNODETYPE_CD_PLAYER, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSNODETYPE_CD_PLAYER, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSNODETYPE_LINE_CONNECTOR, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSNODETYPE_LINE_CONNECTOR, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSNODETYPE_ANALOG_CONNECTOR, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSNODETYPE_ANALOG_CONNECTOR, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSNODETYPE_ANALOG_CONNECTOR, // Category
&CMINAME_DAC, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSNODETYPE_ANALOG_CONNECTOR, // Category
&CMINAME_DAC, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSNODETYPE_SPEAKER, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSNODETYPE_SPEAKER, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSCATEGORY_AUDIO, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSCATEGORY_AUDIO, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSCATEGORY_AUDIO, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
&KSCATEGORY_AUDIO, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
NULL, // Category
NULL, // Name
KSPIN_COMMUNICATION_NONE, // Communication
NULL, // Category
NULL, // Name
#include "minwavetables.hpp"
#include "ntddk.h"
#include "minwavetables.hpp"
#include "ntddk.h"
-#pragma code_seg("PAGE")
+#ifdef _MSC_VER
+#pragma code_seg("PAGE") /* warning - ignored by GCC compiler */
+#endif
HRESULT NTAPI CreateMiniportWaveCMI(PUNKNOWN *Unknown, REFCLSID, PUNKNOWN UnknownOuter, POOL_TYPE PoolType)
{
HRESULT NTAPI CreateMiniportWaveCMI(PUNKNOWN *Unknown, REFCLSID, PUNKNOWN UnknownOuter, POOL_TYPE PoolType)
{
PREGISTRYKEY DriverKey;
PREGISTRYKEY SettingsKey;
UNICODE_STRING KeyName;
PREGISTRYKEY DriverKey;
PREGISTRYKEY SettingsKey;
UNICODE_STRING KeyName;
- DWORD Value, ResultLength;
+ //DWORD Value, ResultLength;
+ DWORD ResultLength;
PVOID KeyInfo;
DBGPRINT(("CMiniportWaveCMI::loadChannelConfigFromRegistry()"));
PVOID KeyInfo;
DBGPRINT(("CMiniportWaveCMI::loadChannelConfigFromRegistry()"));
DBGPRINT(("---channels: %d, resolution: %d, sample rate: %d, pin: %d, formatMask: %x", waveFormat->nChannels, waveFormat->wBitsPerSample, waveFormat->nSamplesPerSec, PinID, cm->formatMask));
//WaveFormatEx
DBGPRINT(("---channels: %d, resolution: %d, sample rate: %d, pin: %d, formatMask: %x", waveFormat->nChannels, waveFormat->wBitsPerSample, waveFormat->nSamplesPerSec, PinID, cm->formatMask));
//WaveFormatEx
- if ( ( format->FormatSize >= sizeof(KSDATAFORMAT_WAVEFORMATEX))
+ if ( ( (size_t) format->FormatSize >= sizeof(KSDATAFORMAT_WAVEFORMATEX))
&& IsEqualGUIDAligned(format->MajorFormat,KSDATAFORMAT_TYPE_AUDIO)
&& IsEqualGUIDAligned(format->Specifier,KSDATAFORMAT_SPECIFIER_WAVEFORMATEX) ) {
switch (EXTRACT_WAVEFORMATEX_ID(&format->SubFormat)) {
case WAVE_FORMAT_PCM:
&& IsEqualGUIDAligned(format->MajorFormat,KSDATAFORMAT_TYPE_AUDIO)
&& IsEqualGUIDAligned(format->Specifier,KSDATAFORMAT_SPECIFIER_WAVEFORMATEX) ) {
switch (EXTRACT_WAVEFORMATEX_ID(&format->SubFormat)) {
case WAVE_FORMAT_PCM:
- if ((PinID != PIN_WAVE_RENDER_SINK) && (PinID != PIN_WAVE_CAPTURE_SOURCE) && (PinID != -1)) {
+ if ((PinID != PIN_WAVE_RENDER_SINK) && (PinID != PIN_WAVE_CAPTURE_SOURCE) && ((int)PinID != -1)) {
if ((PinID == PIN_WAVE_AC3_RENDER_SINK) && !IoIsWdmVersionAvailable(6,0)) {
return STATUS_INVALID_PARAMETER;
}
if ((PinID == PIN_WAVE_AC3_RENDER_SINK) && !IoIsWdmVersionAvailable(6,0)) {
return STATUS_INVALID_PARAMETER;
}
return isFormatAllowed(waveFormat->nSamplesPerSec, FALSE, FALSE);
}
if ( (waveFormat->wBitsPerSample == 16)
return isFormatAllowed(waveFormat->nSamplesPerSec, FALSE, FALSE);
}
if ( (waveFormat->wBitsPerSample == 16)
- && ((waveFormat->nChannels >= 4) && (waveFormat->nChannels <= cm->maxChannels))
+ && ((waveFormat->nChannels >= 4) && (waveFormat->nChannels <= (WORD) cm->maxChannels))
&& ((waveFormat->nSamplesPerSec == 44100) || (waveFormat->nSamplesPerSec == 48000)) ) {
#if OUT_CHANNEL == 1
&& ((waveFormat->nSamplesPerSec == 44100) || (waveFormat->nSamplesPerSec == 48000)) ) {
#if OUT_CHANNEL == 1
- if ((PinID == PIN_WAVE_RENDER_SINK) || (PinID == -1)) {
+ if ((PinID == PIN_WAVE_RENDER_SINK) || ((int)PinID == -1)) {
return isFormatAllowed(waveFormat->nSamplesPerSec, TRUE, FALSE);
}
#else
return isFormatAllowed(waveFormat->nSamplesPerSec, TRUE, FALSE);
}
#else
}
break;
case WAVE_FORMAT_DOLBY_AC3_SPDIF:
}
break;
case WAVE_FORMAT_DOLBY_AC3_SPDIF:
- if ((PinID != PIN_WAVE_AC3_RENDER_SINK) && (PinID != -1)) {
+ if ((PinID != PIN_WAVE_AC3_RENDER_SINK) && ((int)PinID != -1)) {
return STATUS_INVALID_PARAMETER;
}
if ( ((waveFormat->wBitsPerSample >= MIN_BITS_PER_SAMPLE_AC3) && (waveFormat->wBitsPerSample <= MAX_BITS_PER_SAMPLE_AC3))
return STATUS_INVALID_PARAMETER;
}
if ( ((waveFormat->wBitsPerSample >= MIN_BITS_PER_SAMPLE_AC3) && (waveFormat->wBitsPerSample <= MAX_BITS_PER_SAMPLE_AC3))
DBGPRINT(("---streamIndex: %d, channelNumber: %d", streamIndex, channelNumber));
NTSTATUS ntStatus;
DBGPRINT(("---streamIndex: %d, channelNumber: %d", streamIndex, channelNumber));
NTSTATUS ntStatus;
UInt32 val;
if (state == KSSTATE_RUN) {
UInt32 val;
if (state == KSSTATE_RUN) {
NTSTATUS ntStatus = STATUS_SUCCESS;
if (currentChannelCount > 2) {
NTSTATUS ntStatus = STATUS_SUCCESS;
if (currentChannelCount > 2) {
- if (Miniport->cm->maxChannels < currentChannelCount) {
+ if ((WORD) Miniport->cm->maxChannels < currentChannelCount ) {
return STATUS_INVALID_DEVICE_REQUEST;
}
if ((currentResolution != 16) || (currentChannelCount < 2)) {
return STATUS_INVALID_DEVICE_REQUEST;
}
if ((currentResolution != 16) || (currentChannelCount < 2)) {
//PAGED_CODE();
DBGPRINT(("CMiniportWaveStreamCMI[%p]::setupSPDIFPlayback(%d)", this, enableSPDIF));
//PAGED_CODE();
DBGPRINT(("CMiniportWaveStreamCMI[%p]::setupSPDIFPlayback(%d)", this, enableSPDIF));
KeWaitForSingleObject(&Miniport->mutex, Executive, KernelMode, false, NULL);
KeWaitForSingleObject(&Miniport->mutex, Executive, KernelMode, false, NULL);
/*
** non-paged code below
*/
/*
** non-paged code below
*/
+#ifdef _MSC_VER
+#pragma code_seg() /* warning - ignored by GCC compiler */
+#endif
STDMETHODIMP CMiniportWaveStreamCMI::SetState(KSSTATE NewState)
{
STDMETHODIMP CMiniportWaveStreamCMI::SetState(KSSTATE NewState)
{
// STOP -> ACQUIRE -> PAUSE -> PLAY -> PAUSE -> ACQUIRE -> STOP
if (state != NewState) {
// STOP -> ACQUIRE -> PAUSE -> PLAY -> PAUSE -> ACQUIRE -> STOP
if (state != NewState) {
+ switch ((UINT) NewState) {
+ // LN: The cast on NewState is to satisfy the compiler about
+ // KSSTATE_STOP_AC3, which is not in the original enum KSSTATE.
case KSSTATE_ACQUIRE:
DBGPRINT(("---KSSTATE_ACQUIRE: previous state: %d", state));
if (state == KSSTATE_PAUSE) {
case KSSTATE_ACQUIRE:
DBGPRINT(("---KSSTATE_ACQUIRE: previous state: %d", state));
if (state == KSSTATE_PAUSE) {
#define STATIC_KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF\
DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_DOLBY_AC3_SPDIF)
DEFINE_GUIDSTRUCT("00000092-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF);
#define STATIC_KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF\
DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_DOLBY_AC3_SPDIF)
DEFINE_GUIDSTRUCT("00000092-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF);
-#define KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF)
+#define KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF)
+/* Warning - Recursive #define for KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF */
NTSTATUS NTAPI PropertyHandler_ChannelConfig(PPCPROPERTY_REQUEST PropertyRequest);
NTSTATUS NTAPI PropertyHandler_ChannelConfig(PPCPROPERTY_REQUEST PropertyRequest);
static KSDATARANGE_AUDIO WavePinDataRangesPCMStream[] =
{
{
static KSDATARANGE_AUDIO WavePinDataRangesPCMStream[] =
{
{
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
+ { STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO) },
+ { STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM) },
+ { STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX) }
+ }},
MAX_CHANNELS_PCM,
MIN_BITS_PER_SAMPLE_PCM,
MAX_BITS_PER_SAMPLE_PCM,
MAX_CHANNELS_PCM,
MIN_BITS_PER_SAMPLE_PCM,
MAX_BITS_PER_SAMPLE_PCM,
static KSDATARANGE_AUDIO WavePinDataRangesAC3Stream[] =
{
{
static KSDATARANGE_AUDIO WavePinDataRangesAC3Stream[] =
{
{
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
+ { STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO) },
+ { STATICGUIDOF(KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF) },
+ { STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX) }
+ }},
MAX_CHANNELS_AC3,
MIN_BITS_PER_SAMPLE_AC3,
MAX_BITS_PER_SAMPLE_AC3,
MAX_CHANNELS_AC3,
MIN_BITS_PER_SAMPLE_AC3,
MAX_BITS_PER_SAMPLE_AC3,
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_DSOUND)
- },
+ { STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO) },
+ { STATICGUIDOF(KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF) },
+ { STATICGUIDOF(KSDATAFORMAT_SPECIFIER_DSOUND) }
+ }},
MAX_CHANNELS_AC3,
MIN_BITS_PER_SAMPLE_AC3,
MAX_BITS_PER_SAMPLE_AC3,
MAX_CHANNELS_AC3,
MIN_BITS_PER_SAMPLE_AC3,
MAX_BITS_PER_SAMPLE_AC3,
static KSDATARANGE WavePinDataRangesPCMBridge[] =
{
static KSDATARANGE WavePinDataRangesPCMBridge[] =
{
sizeof(KSDATARANGE),
0,
0,
0,
sizeof(KSDATARANGE),
0,
0,
0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_ANALOG),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE)
- }
+ { STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO) },
+ { STATICGUIDOF(KSDATAFORMAT_SUBTYPE_ANALOG) },
+ { STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE) }
+ }}
};
static KSDATARANGE WavePinDataRangesAC3Bridge[] =
{
};
static KSDATARANGE WavePinDataRangesAC3Bridge[] =
{
sizeof(KSDATARANGE),
0,
0,
0,
sizeof(KSDATARANGE),
0,
0,
0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_AC3_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE)
- }
+ { STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO) },
+ { STATICGUIDOF(KSDATAFORMAT_SUBTYPE_AC3_AUDIO) },
+ { STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE) }
+ }}
};
static PKSDATARANGE WavePinDataRangePointersPCMBridge[] =
};
static PKSDATARANGE WavePinDataRangePointersPCMBridge[] =
KSPIN_COMMUNICATION_SINK,
&KSCATEGORY_AUDIO,
&KSAUDFNAME_RECORDING_CONTROL,
KSPIN_COMMUNICATION_SINK,
&KSCATEGORY_AUDIO,
&KSAUDFNAME_RECORDING_CONTROL,
KSPIN_COMMUNICATION_NONE,
&KSCATEGORY_AUDIO,
NULL,
KSPIN_COMMUNICATION_NONE,
&KSCATEGORY_AUDIO,
NULL,
KSPIN_COMMUNICATION_SINK,
&KSCATEGORY_AUDIO,
&KSAUDFNAME_VOLUME_CONTROL,
KSPIN_COMMUNICATION_SINK,
&KSCATEGORY_AUDIO,
&KSAUDFNAME_VOLUME_CONTROL,
KSPIN_COMMUNICATION_NONE,
&KSNODETYPE_SPEAKER,
NULL,
KSPIN_COMMUNICATION_NONE,
&KSNODETYPE_SPEAKER,
NULL,
KSPIN_COMMUNICATION_SINK,
&KSCATEGORY_AUDIO,
NULL,
KSPIN_COMMUNICATION_SINK,
&KSCATEGORY_AUDIO,
NULL,
KSPIN_COMMUNICATION_NONE,
&KSNODETYPE_SPDIF_INTERFACE,
NULL,
KSPIN_COMMUNICATION_NONE,
&KSNODETYPE_SPDIF_INTERFACE,
NULL,