# SDL: work around type redefinition errors in SDL\_immdevice.h

**URL:** <https://discourse.libsdl.org/t/sdl-work-around-type-redefinition-errors-in-sdl-immdevice-h/55807>\
**Category:** SDL Commits\
**Created:** [December 6, 2024, 2:51pm UTC](https://discourse.libsdl.org/t/sdl-work-around-type-redefinition-errors-in-sdl-immdevice-h/55807 "2024-12-06T14:51:08Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![SDLPushPostBot](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/sdlpushpostbot/32/4370_2.png) [@SDLPushPostBot](https://discourse.libsdl.org/u/SDLPushPostBot)\
**Post date:** [December 6, 2024, 2:51pm UTC](https://discourse.libsdl.org/t/sdl-work-around-type-redefinition-errors-in-sdl-immdevice-h/55807/1 "2024-12-06T14:51:08Z")

</div>

> <https://github.com/libsdl-org/SDL/commit/d1b8fcd692418995e310d19912db350e222c057e>

```diff
From d1b8fcd692418995e310d19912db350e222c057e Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Fri, 6 Dec 2024 17:51:00 +0300
Subject: [PATCH] work around type redefinition errors in SDL_immdevice.h

---
 src/core/windows/SDL_immdevice.h | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/core/windows/SDL_immdevice.h b/src/core/windows/SDL_immdevice.h
index 9ebd142e92c87..5181e34d8f101 100644
--- a/src/core/windows/SDL_immdevice.h
+++ b/src/core/windows/SDL_immdevice.h
@@ -26,20 +26,20 @@
 #include <mmdeviceapi.h>
 #include <mmreg.h>
 
-typedef struct SDL_AudioDevice SDL_AudioDevice; // this is defined in src/audio/SDL_sysaudio.h
+struct SDL_AudioDevice; // defined in src/audio/SDL_sysaudio.h
 
 typedef struct SDL_IMMDevice_callbacks
 {
- void (*audio_device_disconnected)(SDL_AudioDevice *device);
- void (*default_audio_device_changed)(SDL_AudioDevice *new_default_device);
+ void (*audio_device_disconnected)(struct SDL_AudioDevice *device);
+ void (*default_audio_device_changed)(struct SDL_AudioDevice *new_default_device);
 } SDL_IMMDevice_callbacks;
 
 bool SDL_IMMDevice_Init(const SDL_IMMDevice_callbacks *callbacks);
 void SDL_IMMDevice_Quit(void);
-bool SDL_IMMDevice_Get(SDL_AudioDevice *device, IMMDevice **immdevice, bool recording);
-void SDL_IMMDevice_EnumerateEndpoints(SDL_AudioDevice **default_playback, SDL_AudioDevice** default_recording);
-LPGUID SDL_IMMDevice_GetDirectSoundGUID(SDL_AudioDevice *device);
-LPCWSTR SDL_IMMDevice_GetDevID(SDL_AudioDevice *device);
-void SDL_IMMDevice_FreeDeviceHandle(SDL_AudioDevice *device);
+bool SDL_IMMDevice_Get(struct SDL_AudioDevice *device, IMMDevice **immdevice, bool recording);
+void SDL_IMMDevice_EnumerateEndpoints(struct SDL_AudioDevice **default_playback, struct SDL_AudioDevice** default_recording);
+LPGUID SDL_IMMDevice_GetDirectSoundGUID(struct SDL_AudioDevice *device);
+LPCWSTR SDL_IMMDevice_GetDevID(struct SDL_AudioDevice *device);
+void SDL_IMMDevice_FreeDeviceHandle(struct SDL_AudioDevice *device);
 
 #endif // SDL_IMMDEVICE_H

```
