changeset 866:6b47d9813067

Add xs_fsize() helper function.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 09 Nov 2012 03:57:59 +0200
parents 9052d9096c59
children 051ef70d0123
files src/xs_support.c src/xs_support.h
diffstat 2 files changed, 17 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/xs_support.c	Fri Nov 09 03:55:39 2012 +0200
+++ b/src/xs_support.c	Fri Nov 09 03:57:59 2012 +0200
@@ -28,6 +28,22 @@
 #include <ctype.h>
 #include <glib.h>
 
+#ifdef __AUDACIOUS_NEWVFS__
+off_t xs_fsize(XSFile *f)
+{
+    off_t pos;
+    if (fseeko(f, 0, SEEK_END) < 0)
+        return -1;
+
+    pos = ftello(f);
+
+    if (fseeko(f, 0, SEEK_SET) < 0)
+        return -1;
+
+    return pos;
+}
+#endif
+
 
 guint16 xs_fread_be16(XSFile *f)
 {
--- a/src/xs_support.h	Fri Nov 09 03:55:39 2012 +0200
+++ b/src/xs_support.h	Fri Nov 09 03:57:59 2012 +0200
@@ -102,6 +102,7 @@
 #define xs_ferror(a) (0)
 #define xs_ftell(a) aud_vfs_ftell(a)
 #define xs_fseek(a,b,c) aud_vfs_fseek(a,b,c)
+#define xs_fsize(a) aud_vfs_fsize(a)
 #else
 #define XSFile FILE
 #define xs_fopen(a,b) fopen(a,b)