diff src/xs_sidplay1.cpp @ 954:a5b118c853f5

Use xs_fread_str() and improve the probing of each backend to be more specific about what is accepted for the said backend.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 20 Nov 2012 21:27:26 +0200
parents 3a9bf45178ff
children be2a8436461a
line wrap: on
line diff
--- a/src/xs_sidplay1.cpp	Tue Nov 20 21:26:25 2012 +0200
+++ b/src/xs_sidplay1.cpp	Tue Nov 20 21:27:26 2012 +0200
@@ -52,14 +52,14 @@
  */
 gboolean xs_sidplay1_probe(XSFile *f)
 {
-    gchar tmpBuf[4];
-    
-    if (!f) return FALSE;
-    
-    if (xs_fread(tmpBuf, sizeof(gchar), 4, f) != 4)
+    gchar probe[16];
+
+    if (f == NULL || !xs_fread_str(f, (guint8 *) probe, sizeof(probe)))
         return FALSE;
-    
-    if (!strncmp(tmpBuf, "PSID", 4))
+
+    // Old libSIDPlay1 only supports PSIDv1, afaik
+    if (!strncmp(probe, "PSID", 4) &&
+        probe[4] == 0 && probe[5] == 1)
         return TRUE;
     else
         return FALSE;