[PSDK]
[reactos.git] / reactos / include / psdk / ksmedia.h
index edfb9e1..a1b1c0c 100644 (file)
@@ -14,6 +14,8 @@
     KS CATEGORIES
 */
 
+typedef LONGLONG REFERENCE_TIME;
+
 #define EXTRACT_WAVEFORMATEX_ID(Guid)\
     (USHORT)((Guid)->Data1)
 
 DEFINE_GUIDSTRUCT("FBF6F530-07B9-11D2-A71E-0000F8004788", KSCATEGORY_AUDIO_DEVICE);
 #define KSCATEGORY_AUDIO_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_DEVICE)
 
+/* video */
+#define STATIC_PINNAME_VIDEO_CAPTURE \
+    0xfb6c4281, 0x353, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
+#define STATIC_PINNAME_CAPTURE STATIC_PINNAME_VIDEO_CAPTURE
+DEFINE_GUIDSTRUCT("FB6C4281-0353-11d1-905F-0000C0CC16BA", PINNAME_VIDEO_CAPTURE);
+#define PINNAME_VIDEO_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_CAPTURE)
+#define PINNAME_CAPTURE PINNAME_VIDEO_CAPTURE
+
 /* Preferred devices */
 
 #define STATIC_KSCATEGORY_PREFERRED_WAVEOUT_DEVICE \
@@ -124,6 +134,11 @@ DEFINE_GUIDSTRUCT("9EA331FA-B91B-45F8-9285-BD2BC77AFCDE", KSCATEGORY_AUDIO_SPLIT
 DEFINE_GUIDSTRUCT("4D837FE0-C555-11D0-8A2B-00A0C9255AC1", KSNODETYPE_ADC);
 #define KSNODETYPE_ADC DEFINE_GUIDNAMED(KSNODETYPE_ADC)
 
+#define STATIC_KSNODETYPE_AGC\
+    0xE88C9BA0L, 0xC557, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
+DEFINE_GUIDSTRUCT("E88C9BA0-C557-11D0-8A2B-00A0C9255AC1", KSNODETYPE_AGC);
+#define KSNODETYPE_AGC DEFINE_GUIDNAMED(KSNODETYPE_AGC)
+
 #define STATIC_KSNODETYPE_3D_EFFECTS\
     0x55515860L, 0xC559, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
 DEFINE_GUIDSTRUCT("55515860-C559-11D0-8A2B-00A0C9255AC1", KSNODETYPE_3D_EFFECTS);
@@ -159,6 +174,17 @@ DEFINE_GUIDSTRUCT("DFF21BE1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_MICROPHONE)
 DEFINE_GUIDSTRUCT("DFF220E3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_CD_PLAYER);
 #define KSNODETYPE_CD_PLAYER DEFINE_GUIDNAMED(KSNODETYPE_CD_PLAYER)
 
+#define STATIC_KSNODETYPE_CHORUS\
+    0x20173F20L, 0xC559, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
+DEFINE_GUIDSTRUCT("20173F20-C559-11D0-8A2B-00A0C9255AC1", KSNODETYPE_CHORUS);
+#define KSNODETYPE_CHORUS DEFINE_GUIDNAMED(KSNODETYPE_CHORUS)
+
+#define STATIC_KSNODETYPE_REVERB\
+    0xEF0328E0L, 0xC558, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
+DEFINE_GUIDSTRUCT("EF0328E0-C558-11D0-8A2B-00A0C9255AC1", KSNODETYPE_REVERB);
+#define KSNODETYPE_REVERB DEFINE_GUIDNAMED(KSNODETYPE_REVERB)
+
+
 #define STATIC_KSNODETYPE_LINE_CONNECTOR\
     DEFINE_USB_TERMINAL_GUID(0x0603)
 DEFINE_GUIDSTRUCT("DFF21FE3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_LINE_CONNECTOR);
@@ -284,6 +310,20 @@ DEFINE_GUIDSTRUCT("2CEAF780-C556-11D0-8A2B-00A0C9255AC1", KSNODETYPE_MUX);
 DEFINE_GUIDSTRUCT("185FEDE4-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MASTER_MUTE);
 #define KSAUDFNAME_MASTER_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_MUTE)
 
+#define STATIC_KSNODETYPE_PEAKMETER\
+    0xa085651eL, 0x5f0d, 0x4b36, 0xa8, 0x69, 0xd1, 0x95, 0xd6, 0xab, 0x4b, 0x9e
+DEFINE_GUIDSTRUCT("A085651E-5F0D-4b36-A869-D195D6AB4B9E", KSNODETYPE_PEAKMETER);
+#define KSNODETYPE_PEAKMETER DEFINE_GUIDNAMED(KSNODETYPE_PEAKMETER)
+
+#define STATIC_KSNODETYPE_STEREO_WIDE\
+    0xA9E69800L, 0xC558, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
+DEFINE_GUIDSTRUCT("A9E69800-C558-11D0-8A2B-00A0C9255AC1", KSNODETYPE_STEREO_WIDE);
+#define KSNODETYPE_STEREO_WIDE DEFINE_GUIDNAMED(KSNODETYPE_STEREO_WIDE)
+
+#define STATIC_KSNODETYPE_TONE\
+    0x7607E580L, 0xC557, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
+DEFINE_GUIDSTRUCT("7607E580-C557-11D0-8A2B-00A0C9255AC1", KSNODETYPE_TONE);
+#define KSNODETYPE_TONE DEFINE_GUIDNAMED(KSNODETYPE_TONE)
 
 /*
     Pins
@@ -396,10 +436,14 @@ DEFINE_GUIDSTRUCT("1D262760-E957-11CF-A5D6-28DB04C10000", KSDATAFORMAT_SUBTYPE_M
 #define KSDATAFORMAT_SUBTYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI)
 
 #define STATIC_KSDATAFORMAT_SUBTYPE_PCM\
-       0x00000001L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+    0x00000001L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
 DEFINE_GUIDSTRUCT("00000001-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_PCM);
 #define KSDATAFORMAT_SUBTYPE_PCM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_PCM)
 
+#define STATIC_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT\
+    0x00000003L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+DEFINE_GUIDSTRUCT("00000003-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_IEEE_FLOAT);
+#define KSDATAFORMAT_SUBTYPE_IEEE_FLOAT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)
 
 #define STATIC_KSDATAFORMAT_SPECIFIER_WAVEFORMATEX\
     0x05589f81L, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a
@@ -422,7 +466,7 @@ DEFINE_GUIDSTRUCT("BFABE720-6E1F-11D0-BCF2-444553540000", KSPROPSETID_AC3);
 #define KSPROPSETID_AC3 DEFINE_GUIDNAMED(KSPROPSETID_AC3)
 
 #define STATIC_KSPROPSETID_Audio\
-    0x45FFAAA0L, 0x6E1B, 0x11D0, 0xBC, 0xF2, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00
+    0x45FFAAA0L, 0x6E1B, 0x11D0, {0xBC, 0xF2, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}
 DEFINE_GUIDSTRUCT("45FFAAA0-6E1B-11D0-BCF2-444553540000", KSPROPSETID_Audio);
 #define KSPROPSETID_Audio DEFINE_GUIDNAMED(KSPROPSETID_Audio)
 
@@ -487,6 +531,40 @@ typedef enum {
 
 } KSPROPERTY_AUDIO;
 
+#define STATIC_KSEVENTSETID_AudioControlChange\
+    0xE85E9698L, 0xFA2F, 0x11D1, 0x95, 0xBD, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("E85E9698-FA2F-11D1-95BD-00C04FB925D3", KSEVENTSETID_AudioControlChange);
+#define KSEVENTSETID_AudioControlChange DEFINE_GUIDNAMED(KSEVENTSETID_AudioControlChange)
+
+typedef enum {
+    KSEVENT_CONTROL_CHANGE,
+} KSEVENT_AUDIO_CONTROL_CHANGE;
+
+
+#define STATIC_KSEVENTSETID_LoopedStreaming\
+    0x4682B940L, 0xC6EF, 0x11D0, 0x96, 0xD8, 0x00, 0xAA, 0x00, 0x51, 0xE5, 0x1D
+DEFINE_GUIDSTRUCT("4682B940-C6EF-11D0-96D8-00AA0051E51D", KSEVENTSETID_LoopedStreaming);
+#define KSEVENTSETID_LoopedStreaming DEFINE_GUIDNAMED(KSEVENTSETID_LoopedStreaming)
+
+typedef enum {
+    KSEVENT_LOOPEDSTREAMING_POSITION,
+} KSEVENT_LOOPEDSTREAMING;
+
+#define STATIC_KSEVENTSETID_Connection\
+    0x7f4bcbe0L, 0x9ea5, 0x11cf, 0xa5, 0xd6, 0x28, 0xdb, 0x04, 0xc1, 0x00, 0x00
+DEFINE_GUIDSTRUCT("7f4bcbe0-9ea5-11cf-a5d6-28db04c10000", KSEVENTSETID_Connection);
+#define KSEVENTSETID_Connection DEFINE_GUIDNAMED(KSEVENTSETID_Connection)
+
+
+typedef struct {
+    KSEVENTDATA KsEventData;
+#if defined(_NTDDK_)
+    ULONGLONG   Position;
+#else // !_NTDDK_
+    DWORDLONG   Position;
+#endif // !_NTDDK_
+} LOOPEDSTREAMING_POSITION_EVENT_DATA, *PLOOPEDSTREAMING_POSITION_EVENT_DATA ;
+
 
 /*
     SysAudio Properties
@@ -560,4 +638,43 @@ typedef enum {
 #define KSAUDIO_SPEAKER_5POINT1_BACK     KSAUDIO_SPEAKER_5POINT1
 #define KSAUDIO_SPEAKER_7POINT1_WIDE     KSAUDIO_SPEAKER_7POINT1
 #endif 
+
+typedef struct
+{
+    KSPROPERTY  Property;
+    ULONG  NodeId;
+    ULONG  Reserved;
+} KSNODEPROPERTY, *PKSNODEPROPERTY;
+
+typedef struct
+{
+    KSNODEPROPERTY  NodeProperty;
+    LONG  Channel;
+    ULONG  Reserved;
+} KSNODEPROPERTY_AUDIO_CHANNEL, *PKSNODEPROPERTY_AUDIO_CHANNEL;
+
+typedef struct {
+#if defined(_NTDDK_)
+    ULONGLONG        PlayOffset;
+    ULONGLONG        WriteOffset;
+#else
+    DWORDLONG        PlayOffset;
+    DWORDLONG        WriteOffset;
+#endif
+} KSAUDIO_POSITION, *PKSAUDIO_POSITION;
+
+typedef struct {
+    ULONG   FifoSize;
+    ULONG   ChipsetDelay;
+    ULONG   CodecDelay;
+} KSRTAUDIO_HWLATENCY, *PKSRTAUDIO_HWLATENCY;
+
+typedef struct {
+    PVOID       Register;
+    ULONG       Width;
+    ULONGLONG   Numerator;
+    ULONGLONG   Denominator;
+    ULONG       Accuracy;
+} KSRTAUDIO_HWREGISTER, *PKSRTAUDIO_HWREGISTER;
+
 #endif