winks: Port to MSVC and pretend to be Windows XP
authorNirbheek Chauhan <nirbheek@centricular.com>
Tue, 24 May 2016 10:56:24 +0000 (16:26 +0530)
committerTim-Philipp Müller <tim@centricular.com>
Tue, 21 Jun 2016 10:32:29 +0000 (11:32 +0100)
strcasecmp is not defined on MSVC, so just use the glib wrapper. Also pretend to
be Windows XP explicitly since the API we use was deprecated and removed
(ifdef-ed) from the SDK after this version of Windows. This will be especially
relevant once we stop supporting Windows XP soon:

https://bugzilla.gnome.org/show_bug.cgi?id=756866

sys/winks/ksdeviceprovider.c
sys/winks/kshelpers.c
sys/winks/kshelpers.h

index 54429eb..609794d 100644 (file)
@@ -355,7 +355,7 @@ msg_window_message_proc (HWND window_handle, UINT message,
                 entry->path);
 
             if ((source == NULL) &&
-                (strcasecmp (entry->path, bcdi->dbcc_name) == 0))
+                (g_ascii_strcasecmp (entry->path, bcdi->dbcc_name) == 0))
               source = new_video_source (entry);
 
             ks_device_entry_free (entry);
@@ -377,7 +377,7 @@ msg_window_message_proc (HWND window_handle, UINT message,
           for (item = provider->devices; item; item = item->next) {
             dev = item->data;
 
-            if (strcasecmp (dev->path, bcdi->dbcc_name) == 0) {
+            if (g_ascii_strcasecmp (dev->path, bcdi->dbcc_name) == 0) {
               guid_str = gst_device_get_display_name (GST_DEVICE (dev));
               GST_INFO_OBJECT (self, "Device matches to %s", guid_str);
               g_free (guid_str);
index bbb9b06..3b5ec28 100644 (file)
 
 #include "kshelpers.h"
 
+/* This plugin is from the era of Windows XP and uses APIs that have been
+ * deprecated since then. Let's pretend we're Windows XP too so that Windows
+ * lets us use that deprecated API. */
+#define NTDDI_VERSION NTDDI_WINXP
+#define _WIN32_WINNT _WIN32_WINNT_WINXP
+
 #include <ksmedia.h>
 #include <setupapi.h>
 #include <gst/gst.h>
index 5181bfc..ded8101 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <glib.h>
 #include <windows.h>
+#include <mmsystem.h>
 #include <ks.h>
 
 G_BEGIN_DECLS