- 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
This commit is contained in:
Johannes Anderwald 2010-11-01 00:17:07 +00:00
parent 93b73bb489
commit dc4a3fbbe2
5 changed files with 299 additions and 22 deletions

View file

@ -1,6 +1,8 @@
#ifndef _DMUSICKS_
#define _DMUSICKS_
#include <dmusprop.h>
#define DONT_HOLD_FOR_SEQUENCING 0x8000000000000000
#ifndef REFERENCE_TIME
@ -230,4 +232,35 @@ typedef IMiniportDMus *PMINIPORTDMUS;
IN PMASTERCLOCK MasterClock, \
OUT PULONGLONG SchedulePreFetch)
#define STATIC_KSAUDFNAME_DMUSIC_MPU_OUT\
0xA4DF0EB5, 0xBAC9, 0x11d2, {0xB7, 0xA8, 0x00, 0x60, 0x08, 0x33, 0x16, 0xC1}
DEFINE_GUIDSTRUCT("A4DF0EB5-BAC9-11d2-B7A8-0060083316C1", KSAUDFNAME_DMUSIC_MPU_OUT);
#define KSAUDFNAME_DMUSIC_MPU_OUT DEFINE_GUIDNAMED(KSAUDFNAME_DMUSIC_MPU_OUT)
#define STATIC_KSAUDFNAME_DMUSIC_MPU_IN\
0xB2EC0A7D, 0xBAC9, 0x11d2, {0xB7, 0xA8, 0x00, 0x60, 0x08, 0x33, 0x16, 0xC1}
DEFINE_GUIDSTRUCT("B2EC0A7D-BAC9-11d2-B7A8-0060083316C1", KSAUDFNAME_DMUSIC_MPU_IN);
#define KSAUDFNAME_DMUSIC_MPU_IN DEFINE_GUIDNAMED(KSAUDFNAME_DMUSIC_MPU_IN)
#define STATIC_IID_IMXF\
0xc096df9e, 0xfb09, 0x11d1, {0x81, 0xb0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1}
DEFINE_GUIDSTRUCT("c096df9e-fb09-11d1-81b0-0060083316c1", IID_IMXF);
#define IID_IMXF DEFINE_GUIDNAMED(IID_IMXF)
#define DMUS_KEF_EVENT_COMPLETE 0x0000
#define DMUS_KEF_EVENT_INCOMPLETE 0x0001
#define DMUS_KEF_PACKAGE_EVENT 0x0002
#define kBytePositionNone (~(ULONGLONG)0)
#define SHORT_EVT(evt) ((evt)->cbEvent <= sizeof(PBYTE))
#define PACKAGE_EVT(evt) ((evt)->usFlags & DMUS_KEF_PACKAGE_EVENT)
#define INCOMPLETE_EVT(evt) ((evt)->usFlags & DMUS_KEF_EVENT_INCOMPLETE)
#define COMPLETE_EVT(evt) (((evt)->usFlags & DMUS_KEF_EVENT_INCOMPLETE) == 0)
#define SET_INCOMPLETE_EVT(evt) ((evt)->usFlags |= DMUS_KEF_EVENT_INCOMPLETE)
#define SET_COMPLETE_EVT(evt) ((evt)->usFlags &= (~DMUS_KEF_EVENT_INCOMPLETE))
#define SET_PACKAGE_EVT(evt) ((evt)->usFlags |= DMUS_KEF_PACKAGE_EVENT)
#define CLEAR_PACKAGE_EVT(evt) ((evt)->usFlags &= (~DMUS_KEF_PACKAGE_EVENT))
#endif /* _DMUSICKS_ */

View file

@ -0,0 +1,203 @@
#ifndef _DMusProp_
#define _DMusProp_
//#include "dmusbuff.h"
#define STATIC_KSDATAFORMAT_SUBTYPE_DIRECTMUSIC\
0x1a82f8bc, 0x3f8b, 0x11d2, {0xb7, 0x74, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1}
DEFINE_GUIDSTRUCT("1a82f8bc-3f8b-11d2-b774-0060083316c1", KSDATAFORMAT_SUBTYPE_DIRECTMUSIC);
#define KSDATAFORMAT_SUBTYPE_DIRECTMUSIC DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DIRECTMUSIC)
#define STATIC_KSNODETYPE_DMSYNTH\
0x94824f88, 0x6183, 0x11d2, {0x8f, 0x7a, 0x0, 0xc0, 0x4f, 0xbf, 0x8f, 0xef}
DEFINE_GUIDSTRUCT("94824F88-6183-11d2-8F7A-00C04FBF8FEF", KSNODETYPE_DMSYNTH);
#define KSNODETYPE_DMSYNTH DEFINE_GUIDNAMED(KSNODETYPE_DMSYNTH)
#define STATIC_KSNODETYPE_DMSYNTH_CAPS\
0xbca2a2f1, 0x93c6, 0x11d2, {0xba, 0x1d, 0x0, 0x0, 0xf8, 0x75, 0xac, 0x12}
DEFINE_GUIDSTRUCT("bca2a2f1-93c6-11d2-ba1d-0000f875ac12", KSNODETYPE_DMSYNTH_CAPS);
#define KSNODETYPE_DMSYNTH_CAPS DEFINE_GUIDNAMED(KSNODETYPE_DMSYNTH_CAPS)
#define STATIC_KSPROPSETID_Synth_Dls\
0xd523fa2c, 0xdee3, 0x11d1, {0xa7, 0x89, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12}
DEFINE_GUIDSTRUCT("d523fa2c-dee3-11d1-a789-0000f875ac12", KSPROPSETID_Synth_Dls);
#define KSPROPSETID_Synth_Dls DEFINE_GUIDNAMED(KSPROPSETID_Synth_Dls)
typedef enum
{
KSPROPERTY_SYNTH_DLS_DOWNLOAD = 0,
KSPROPERTY_SYNTH_DLS_UNLOAD,
KSPROPERTY_SYNTH_DLS_COMPACT,
KSPROPERTY_SYNTH_DLS_APPEND,
KSPROPERTY_SYNTH_DLS_WAVEFORMAT
} KSPROPERTY_SYNTH_DLS;
typedef struct _SYNTH_BUFFER
{
ULONG BufferSize;
PVOID BufferAddress;
} SYNTH_BUFFER, *PSYNTH_BUFFER;
typedef struct _SYNTHDOWNLOAD
{
HANDLE DownloadHandle;
BOOL Free;
} SYNTHDOWNLOAD, *PSYNTHDOWNLOAD;
#define STATIC_KSPROPSETID_Synth\
0xfedfae25L, 0xe46e, 0x11d1, {0xaa, 0xce, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12}
DEFINE_GUIDSTRUCT("fedfae25-e46e-11d1-aace-0000f875ac12", KSPROPSETID_Synth);
#define KSPROPSETID_Synth DEFINE_GUIDNAMED(KSPROPSETID_Synth)
typedef enum
{
KSPROPERTY_SYNTH_VOLUME = 0,
KSPROPERTY_SYNTH_VOLUMEBOOST,
KSPROPERTY_SYNTH_CAPS,
KSPROPERTY_SYNTH_PORTPARAMETERS,
KSPROPERTY_SYNTH_CHANNELGROUPS,
KSPROPERTY_SYNTH_VOICEPRIORITY,
KSPROPERTY_SYNTH_LATENCYCLOCK,
KSPROPERTY_SYNTH_RUNNINGSTATS
} KSPROPERTY_SYNTH;
#define SYNTH_PC_DLS (0x00000001)
#define SYNTH_PC_EXTERNAL (0x00000002)
#define SYNTH_PC_SOFTWARESYNTH (0x00000004)
#define SYNTH_PC_MEMORYSIZEFIXED (0x00000008)
#define SYNTH_PC_GMINHARDWARE (0x00000010)
#define SYNTH_PC_GSINHARDWARE (0x00000020)
#define SYNTH_PC_SYSTEMMEMORY (0x7fffffff)
#if (NTDDI_VERSION < NTDDI_WINXP)
#define SYNTH_PC_REVERB (0x00000040)
#elif (NTDDI_VERSION >= NTDDI_WINXP)
#define SYNTH_PC_XGINHARDWARE (0x00000040)
#define SYNTH_PC_DLS2 (0x00000200)
#define SYNTH_PC_REVERB (0x40000000)
#endif
typedef struct _SYNTHCAPS
{
GUID Guid;
DWORD Flags;
DWORD MemorySize;
DWORD MaxChannelGroups;
DWORD MaxVoices;
DWORD MaxAudioChannels;
DWORD EffectFlags;
WCHAR Description[128];
} SYNTHCAPS, *PSYNTHCAPS;
typedef struct _SYNTH_PORTPARAMS
{
DWORD ValidParams;
DWORD Voices;
DWORD ChannelGroups;
DWORD AudioChannels;
DWORD SampleRate;
DWORD EffectsFlags;
DWORD Share;
} SYNTH_PORTPARAMS, *PSYNTH_PORTPARAMS;
#define SYNTH_PORTPARAMS_VOICES 0x00000001
#define SYNTH_PORTPARAMS_CHANNELGROUPS 0x00000002
#define SYNTH_PORTPARAMS_AUDIOCHANNELS 0x00000004
#define SYNTH_PORTPARAMS_SAMPLERATE 0x00000008
#define SYNTH_PORTPARAMS_EFFECTS 0x00000020
#define SYNTH_PORTPARAMS_SHARE 0x00000040
#define SYNTH_EFFECT_NONE 0x00000000
#define SYNTH_EFFECT_REVERB 0x00000001
#define SYNTH_EFFECT_CHORUS 0x00000002
#define SYNTH_EFFECT_DELAY 0x00000004
typedef struct _SYNTHVOICEPRIORITY_INSTANCE
{
DWORD ChannelGroup;
DWORD Channel;
} SYNTHVOICEPRIORITY_INSTANCE, *PSYNTHVOICEPRIORITY_INSTANCE;
typedef struct _SYNTH_STATS
{
DWORD ValidStats;
DWORD Voices;
DWORD TotalCPU;
DWORD CPUPerVoice;
DWORD LostNotes;
DWORD FreeMemory;
LONG PeakVolume;
} SYNTH_STATS, *PSYNTH_STATS;
#define SYNTH_STATS_VOICES (1 << 0)
#define SYNTH_STATS_TOTAL_CPU (1 << 1)
#define SYNTH_STATS_CPU_PER_VOICE (1 << 2)
#define SYNTH_STATS_LOST_NOTES (1 << 3)
#define SYNTH_STATS_PEAK_VOLUME (1 << 4)
#define SYNTH_STATS_FREE_MEMORY (1 << 5)
#ifndef _DIRECTAUDIO_PRIORITIES_DEFINED_
#define _DIRECTAUDIO_PRIORITIES_DEFINED_
#define DAUD_CRITICAL_VOICE_PRIORITY (0xF0000000)
#define DAUD_HIGH_VOICE_PRIORITY (0xC0000000)
#define DAUD_STANDARD_VOICE_PRIORITY (0x80000000)
#define DAUD_LOW_VOICE_PRIORITY (0x40000000)
#define DAUD_PERSIST_VOICE_PRIORITY (0x10000000)
#define DAUD_CHAN1_VOICE_PRIORITY_OFFSET (0x0000000E)
#define DAUD_CHAN2_VOICE_PRIORITY_OFFSET (0x0000000D)
#define DAUD_CHAN3_VOICE_PRIORITY_OFFSET (0x0000000C)
#define DAUD_CHAN4_VOICE_PRIORITY_OFFSET (0x0000000B)
#define DAUD_CHAN5_VOICE_PRIORITY_OFFSET (0x0000000A)
#define DAUD_CHAN6_VOICE_PRIORITY_OFFSET (0x00000009)
#define DAUD_CHAN7_VOICE_PRIORITY_OFFSET (0x00000008)
#define DAUD_CHAN8_VOICE_PRIORITY_OFFSET (0x00000007)
#define DAUD_CHAN9_VOICE_PRIORITY_OFFSET (0x00000006)
#define DAUD_CHAN10_VOICE_PRIORITY_OFFSET (0x0000000F)
#define DAUD_CHAN11_VOICE_PRIORITY_OFFSET (0x00000005)
#define DAUD_CHAN12_VOICE_PRIORITY_OFFSET (0x00000004)
#define DAUD_CHAN13_VOICE_PRIORITY_OFFSET (0x00000003)
#define DAUD_CHAN14_VOICE_PRIORITY_OFFSET (0x00000002)
#define DAUD_CHAN15_VOICE_PRIORITY_OFFSET (0x00000001)
#define DAUD_CHAN16_VOICE_PRIORITY_OFFSET (0x00000000)
#define DAUD_CHAN1_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN1_VOICE_PRIORITY_OFFSET)
#define DAUD_CHAN2_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN2_VOICE_PRIORITY_OFFSET)
#define DAUD_CHAN3_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN3_VOICE_PRIORITY_OFFSET)
#define DAUD_CHAN4_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN4_VOICE_PRIORITY_OFFSET)
#define DAUD_CHAN5_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN5_VOICE_PRIORITY_OFFSET)
#define DAUD_CHAN6_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN6_VOICE_PRIORITY_OFFSET)
#define DAUD_CHAN7_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN7_VOICE_PRIORITY_OFFSET)
#define DAUD_CHAN8_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN8_VOICE_PRIORITY_OFFSET)
#define DAUD_CHAN9_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN9_VOICE_PRIORITY_OFFSET)
#define DAUD_CHAN10_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN10_VOICE_PRIORITY_OFFSET)
#define DAUD_CHAN11_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN11_VOICE_PRIORITY_OFFSET)
#define DAUD_CHAN12_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN12_VOICE_PRIORITY_OFFSET)
#define DAUD_CHAN13_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN13_VOICE_PRIORITY_OFFSET)
#define DAUD_CHAN14_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN14_VOICE_PRIORITY_OFFSET)
#define DAUD_CHAN15_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN15_VOICE_PRIORITY_OFFSET)
#define DAUD_CHAN16_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN16_VOICE_PRIORITY_OFFSET)
#endif
typedef struct _SYNTH_REVERB_PARAMS
{
float fInGain;
float fReverbMix;
float fReverbTime;
float fHighFreqRTRatio;
} SYNTH_REVERB_PARAMS, *PSYNTH_REVERB_PARAMS;
#define STATIC_KSPROPSETID_SynthClock \
0xfedfae26L, 0xe46e, 0x11d1, 0xaa, 0xce, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12
DEFINE_GUIDSTRUCT("fedfae26-e46e-11d1-aace-0000f875ac12", KSPROPSETID_SynthClock);
#define KSPROPSETID_SynthClock DEFINE_GUIDNAMED(KSPROPSETID_SynthClock)
typedef enum
{
KSPROPERTY_SYNTH_MASTERCLOCK
} KSPROPERTY_SYNTHCLOCK;
#endif

View file

@ -1958,6 +1958,12 @@ DECLARE_INTERFACE_(IPowerNotify, IUnknown)
typedef IPowerNotify *PPOWERNOTIFY;
#define IMP_IPowerNotify\
STDMETHODIMP_(void) PowerChangeNotify\
( IN POWER_STATE PowerState\
)
#undef INTERFACE
/* ===============================================================
@ -2158,6 +2164,11 @@ typedef IPortClsVersion *PPORTCLSVERSION;
#undef INTERFACE
#if (NTDDI_VERSION >= NTDDI_WINXP)
DEFINE_GUID(IID_IMusicTechnology,
0x80396C3CL, 0xCBCB, 0x409B, 0x9F, 0x65, 0x4F, 0x1E, 0x74, 0x67, 0xCD, 0xAF);
#endif
/* ===============================================================
IDmaOperations Interface
*/
@ -2364,6 +2375,10 @@ PORTCLASSAPI ULONGLONG NTAPI
PcGetTimeInterval(
IN ULONGLONG Since);
#define GTI_SECONDS(t) (ULONGLONG(t)*10000000)
#define GTI_MILLISECONDS(t) (ULONGLONG(t)*10000)
#define GTI_MICROSECONDS(t) (ULONGLONG(t)*10)
PORTCLASSAPI NTSTATUS NTAPI
PcRegisterSubdevice(
IN PDEVICE_OBJECT DeviceObject,

View file

@ -1017,28 +1017,6 @@ DEFINE_GUIDSTRUCT("97E99BA0-BDEA-11CF-A5D6-28DB04C10000", KSPROPTYPESETID_Genera
KSPROPERTY_ITD3D_PARAMS
*/
#define KSPROPSETID_Synth
/*
KSPROPERTY_SYNTH_CAPS
KSPROPERTY_SYNTH_CHANNELGROUPS
KSPROPERTY_SYNTH_LATENCYCLOCK
KSPROPERTY_SYNTH_MASTERCLOCK
KSPROPERTY_SYNTH_PORTPARAMETERS
KSPROPERTY_SYNTH_RUNNINGSTATS
KSPROPERTY_SYNTH_VOICEPRIORITY
KSPROPERTY_SYNTH_VOLUME
KSPROPERTY_SYNTH_VOLUMEBOOST
*/
#define KSPROPSETID_Synth_Dls
/*
KSPROPERTY_SYNTH_DLS_APPEND
KSPROPERTY_SYNTH_DLS_COMPACT
KSPROPERTY_SYNTH_DLS_DOWNLOAD
KSPROPERTY_SYNTH_DLS_UNLOAD
KSPROPERTY_SYNTH_DLS_WAVEFORMAT
*/
#define KSPROPSETID_TopologyNode
/*
KSPROPERTY_TOPOLOGYNODE_ENABLE

View file

@ -686,4 +686,52 @@ typedef struct {
ULONG Accuracy;
} KSRTAUDIO_HWREGISTER, *PKSRTAUDIO_HWREGISTER;
#define KSNODEPIN_STANDARD_IN 1
#define KSNODEPIN_STANDARD_OUT 0
#define KSNODEPIN_SUM_MUX_IN 1
#define KSNODEPIN_SUM_MUX_OUT 0
#define KSNODEPIN_DEMUX_IN 0
#define KSNODEPIN_DEMUX_OUT 1
#if (NTDDI_VERSION < NTDDI_VISTA)
#define KSNODEPIN_AEC_RENDER_IN 1
#define KSNODEPIN_AEC_RENDER_OUT 0
#define KSNODEPIN_AEC_CAPTURE_IN 2
#define KSNODEPIN_AEC_CAPTURE_OUT 3
#endif
#define STATIC_KSMUSIC_TECHNOLOGY_PORT\
0x86C92E60L, 0x62E8, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
DEFINE_GUIDSTRUCT("86C92E60-62E8-11CF-A5D6-28DB04C10000", KSMUSIC_TECHNOLOGY_PORT);
#define KSMUSIC_TECHNOLOGY_PORT DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_PORT)
#define STATIC_KSDATAFORMAT_SUBTYPE_MIDI_BUS\
0x2CA15FA0L, 0x6CFE, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
DEFINE_GUIDSTRUCT("2CA15FA0-6CFE-11CF-A5D6-28DB04C10000", KSDATAFORMAT_SUBTYPE_MIDI_BUS);
#define KSDATAFORMAT_SUBTYPE_MIDI_BUS DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI_BUS)
#define STATIC_KSAUDFNAME_MIDI\
0x185FEDF8L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
DEFINE_GUIDSTRUCT("185FEDF8-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIDI);
#define KSAUDFNAME_MIDI DEFINE_GUIDNAMED(KSAUDFNAME_MIDI)
#define STATIC_KSNODETYPE_SYNTHESIZER\
DEFINE_USB_TERMINAL_GUID(0x0713)
DEFINE_GUIDSTRUCT("DFF220F3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_SYNTHESIZER);
#define KSNODETYPE_SYNTHESIZER DEFINE_GUIDNAMED(KSNODETYPE_SYNTHESIZER)
typedef struct
{
KSDATARANGE DataRange;
GUID Technology;
ULONG Channels;
ULONG Notes;
ULONG ChannelMask;
} KSDATARANGE_MUSIC, *PKSDATARANGE_MUSIC;
#endif