File ksmedia.h of Package mingw32-portaudio

/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the mingw-w64 runtime package.
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 */

#pragma once

#if __GNUC__ >=3
#pragma GCC system_header
#endif

#include <ksmedia-mingw.h>

typedef enum {
  LAST = KSPROPERTY_RTAUDIO_GETPOSITIONFUNCTION,
/* Additional structs for Windows Vista and later */
  KSPROPERTY_RTAUDIO_BUFFER,
  KSPROPERTY_RTAUDIO_HWLATENCY,
  KSPROPERTY_RTAUDIO_POSITIONREGISTER,
  KSPROPERTY_RTAUDIO_CLOCKREGISTER,
  KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION,
  KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT,
  KSPROPERTY_RTAUDIO_UNREGISTER_NOTIFICATION_EVENT
} KSPROPERTY_RTAUDIO_1;

/* Additional structs for Windows Vista and later */
typedef struct _tagKSRTAUDIO_BUFFER_PROPERTY {
    KSPROPERTY  Property;
    PVOID       BaseAddress;
    ULONG       RequestedBufferSize;
} KSRTAUDIO_BUFFER_PROPERTY, *PKSRTAUDIO_BUFFER_PROPERTY;

typedef struct _tagKSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION {
    KSPROPERTY  Property;
    PVOID       BaseAddress;
    ULONG       RequestedBufferSize;
    ULONG       NotificationCount;
} KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION, *PKSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION;

typedef struct _tagKSRTAUDIO_BUFFER {
    PVOID   BufferAddress;
    ULONG   ActualBufferSize;
    BOOL    CallMemoryBarrier;
} KSRTAUDIO_BUFFER, *PKSRTAUDIO_BUFFER;

typedef struct _tagKSRTAUDIO_HWLATENCY {
    ULONG   FifoSize;
    ULONG   ChipsetDelay;
    ULONG   CodecDelay;
} KSRTAUDIO_HWLATENCY, *PKSRTAUDIO_HWLATENCY;

typedef struct _tagKSRTAUDIO_HWREGISTER_PROPERTY {
    KSPROPERTY  Property;
    PVOID       BaseAddress;
} KSRTAUDIO_HWREGISTER_PROPERTY, *PKSRTAUDIO_HWREGISTER_PROPERTY;

typedef struct _tagKSRTAUDIO_HWREGISTER {
    PVOID       Register;
    ULONG       Width;
    ULONGLONG   Numerator;
    ULONGLONG   Denominator;
    ULONG       Accuracy;
} KSRTAUDIO_HWREGISTER, *PKSRTAUDIO_HWREGISTER;

typedef struct _tagKSRTAUDIO_NOTIFICATION_EVENT_PROPERTY {
    KSPROPERTY  Property;
    HANDLE      NotificationEvent;
} KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY, *PKSRTAUDIO_NOTIFICATION_EVENT_PROPERTY;

/* Added for Vista and later */
#define STATIC_KSCATEGORY_REALTIME \
    0xEB115FFCL, 0x10C8, 0x4964, 0x83, 0x1D, 0x6D, 0xCB, 0x02, 0xE6, 0xF2, 0x3F
DEFINE_GUIDSTRUCT("EB115FFC-10C8-4964-831D-6DCB02E6F23F", KSCATEGORY_REALTIME);
#define KSCATEGORY_REALTIME DEFINE_GUIDNAMED(KSCATEGORY_REALTIME)


openSUSE Build Service is sponsored by