foxygit / doom Log in
commit e66653a8a67f3613344ae4ea30b37403d6ff17cf
Author:     Simon Howard <fraggle@gmail.com>
AuthorDate: Sun Jul 12 16:47:12 2009 +0000
Commit:     Simon Howard <fraggle@gmail.com>
CommitDate: Sun Jul 12 16:47:12 2009 +0000

    Fix compile with libsamplerate.

    Subversion-branch: /trunk/chocolate-doom
    Subversion-revision: 1620
---
 src/i_sdlsound.c | 9 +++++----
 src/z_native.c   | 5 +++++
 src/z_zone.c     | 5 +++++
 src/z_zone.h     | 2 +-
 4 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/src/i_sdlsound.c b/src/i_sdlsound.c
index cdb771e9..bb8229e4 100644
--- a/src/i_sdlsound.c
+++ b/src/i_sdlsound.c
@@ -63,8 +63,6 @@ static int mixer_channels;

 int use_libsamplerate = 0;

-extern int mb_used;
-
 // When a sound stops, check if it is still playing.  If it is not,
 // we can mark the sound data as CACHE to be freed back for other
 // means.
@@ -364,17 +362,20 @@ static void I_PrecacheSounds_SRC(void)
     uint32_t resampled_sound_length[NUMSFX];
     float norm_factor;
     float max_amp = 0;
+    unsigned int zone_size;

     assert(use_libsamplerate);

-    if (mb_used < 32)
+    zone_size = Z_ZoneSize();
+
+    if (zone_size < 32 * 1024 * 1024)
     {
         fprintf(stderr,
                 "WARNING: low memory.  Heap size is only %d MiB.\n"
                 "WARNING: use_libsamplerate needs more heap!\n"
                 "WARNING: put -mb 64 on the command line to avoid "
                 "\"Error: Z_Malloc: failed on allocation of X bytes\" !\n",
-                mb_used);
+                zone_size / (1024 * 1024));
     }

     printf("I_PrecacheSounds_SRC: Precaching all sound effects..");
diff --git a/src/z_native.c b/src/z_native.c
index 199c9426..37bdc02a 100644
--- a/src/z_native.c
+++ b/src/z_native.c
@@ -483,3 +483,8 @@ int Z_FreeMemory(void)
     return -1;
 }

+unsigned int Z_ZoneSize(void)
+{
+    return 0;
+}
+
diff --git a/src/z_zone.c b/src/z_zone.c
index f0b8ad53..975f41e5 100644
--- a/src/z_zone.c
+++ b/src/z_zone.c
@@ -473,3 +473,8 @@ int Z_FreeMemory (void)
     return free;
 }

+unsigned int Z_ZoneSize(void)
+{
+    return mainzone->size;
+}
+
diff --git a/src/z_zone.h b/src/z_zone.h
index 44eb365b..a00630cf 100644
--- a/src/z_zone.h
+++ b/src/z_zone.h
@@ -67,7 +67,7 @@ void    Z_FileDumpHeap (FILE *f);
 void    Z_CheckHeap (void);
 void    Z_ChangeTag2 (void *ptr, int tag, char *file, int line);
 int     Z_FreeMemory (void);
-
+unsigned int Z_ZoneSize(void);

 //
 // This is used to get the local FILE:LINE info from CPP