#pragma once

#include <windows.h>
#include <mmdeviceapi.h>
#include <audioclient.h>


#ifndef KSAUDIO_SPEAKER_2POINT1
#define KSAUDIO_SPEAKER_2POINT1 (KSAUDIO_SPEAKER_STEREO|SPEAKER_LOW_FREQUENCY)
#endif

#define KSAUDIO_SPEAKER_SURROUND_AVUTIL \
	(KSAUDIO_SPEAKER_STEREO|SPEAKER_FRONT_CENTER)

#ifndef KSAUDIO_SPEAKER_4POINT1
#define KSAUDIO_SPEAKER_4POINT1 (KSAUDIO_SPEAKER_SURROUND|SPEAKER_LOW_FREQUENCY)
#endif

#define safe_release(ptr) \
	do { \
		if (ptr) { \
			ptr->lpVtbl->Release(ptr); \
		} \
	} while (false)