update the version number to 1.0.2
[flac.git] / src / test_streams / main.c
index 02ac5a6..dee0d53 100644 (file)
 #include <math.h>
 #include <stdio.h>
 #include <stdlib.h>
+#if !defined _MSC_VER && !defined __MINGW32__
 #include <sys/time.h>
+#endif
 #include "FLAC/assert.h"
 #include "FLAC/ordinals.h"
 
+#ifndef M_PI
+/* math.h in VC++ doesn't seem to have this (how Microsoft is that?) */
+#define M_PI 3.14159265358979323846
+#endif
+
 #ifdef _WIN32
        static const char *mode = "wb";
 #else
 
 static FLAC__bool is_big_endian_host;
 
+/* some flavors of UNIX #define this */
+#ifdef swap16
+#undef swap16
+#endif
 static void swap16(FLAC__int16 *i)
 {
        unsigned char *x = (unsigned char *)i, b;
@@ -380,20 +391,28 @@ foo:
 static FLAC__bool generate_noise(const char *fn, unsigned bytes)
 {
        FILE *f;
-       struct timeval tv;
        unsigned b;
+#if !defined _MSC_VER && !defined __MINGW32__
+       struct timeval tv;
 
        if(gettimeofday(&tv, 0) < 0) {
                fprintf(stderr, "WARNING: couldn't seed RNG with time\n");
                tv.tv_usec = 4321;
        }
        srandom(tv.tv_usec);
+#else
+       /* who has the patience to figure out how to do RNG with VC++? */
+#endif
 
        if(0 == (f = fopen(fn, mode)))
                return false;
 
        for(b = 0; b < bytes; b++) {
+#if !defined _MSC_VER && !defined __MINGW32__
                FLAC__byte x = (FLAC__byte)(((unsigned)random()) & 0xff);
+#else
+               FLAC__byte x = (FLAC__byte)((((unsigned)generate_noise) >> 8) ^ (b * 17)); /* fake it */
+#endif
                if(fwrite(&x, sizeof(x), 1, f) < 1)
                        goto foo;
        }