]> git.mxchange.org Git - simgear.git/blobdiff - simgear/io/lowlevel.hxx
Add a new node "float-property" to be used in float comparision in effect predicates
[simgear.git] / simgear / io / lowlevel.hxx
index b866df2e9d54cfdee58960aaedba75442a06c21d..0f650d5b0f27d0372b0395895c484cb9e3da05e2 100644 (file)
@@ -4,7 +4,7 @@
 // Shamelessly adapted from plib  January 2001
 //
 // Original version Copyright (C) 2000  the plib team
-// Local changes Copyright (C) 2000  Curtis L. Olson  - curt@flightgear.org
+// Local changes Copyright (C) 2000  Curtis L. Olson  - http://www.flightgear.org/~curt
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
@@ -18,7 +18,7 @@
 //
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 //
 // $Id$
 //
 #ifndef _SG_LOWLEVEL_HXX
 #define _SG_LOWLEVEL_HXX
 
-
 #include <stdio.h>
-
-#ifdef HAVE_ZLIB
-#  include <zlib.h>
-#else
-#  include <simgear/zlib/zlib.h>
-#endif
+#include <zlib.h>
 
 #include <plib/sg.h>
 
-#ifdef _MSC_VER
-typedef __int64 int64;
-typedef __int64 uint64;
-#else
-typedef long long int64;
-typedef unsigned long long uint64;
-#endif
+#include <simgear/compiler.h>
+#include <simgear/misc/stdint.hxx>
 
 // Note that output is written in little endian form (and converted as
 // necessary for big endian machines)
@@ -59,10 +48,10 @@ void sgReadUInt ( gzFile fd, unsigned int *var ) ;
 void sgWriteUInt ( gzFile fd, const unsigned int var ) ;
 void sgReadInt ( gzFile fd, int *var ) ;
 void sgWriteInt ( gzFile fd, const int var ) ;
-void sgReadLong ( gzFile fd, long int *var ) ;
-void sgWriteLong ( gzFile fd, const long int var ) ;
-void sgReadLongLong ( gzFile fd, int64 *var ) ;
-void sgWriteLongLong ( gzFile fd, const int64 var ) ;
+void sgReadLong ( gzFile fd, int32_t *var ) ;
+void sgWriteLong ( gzFile fd, const int32_t var ) ;
+void sgReadLongLong ( gzFile fd, int64_t *var ) ;
+void sgWriteLongLong ( gzFile fd, const int64_t var ) ;
 void sgReadUShort ( gzFile fd, unsigned short *var ) ;
 void sgWriteUShort ( gzFile fd, const unsigned short var ) ;
 void sgReadShort ( gzFile fd, short *var ) ;
@@ -126,52 +115,4 @@ void sgClearWriteError();
 int sgReadError();
 int sgWriteError();
 
-inline bool sgIsLittleEndian() {
-    static const int sgEndianTest = 1;
-    return (*((char *) &sgEndianTest ) != 0);
-}
-
-inline bool sgIsBigEndian() {
-    static const int sgEndianTest = 1;
-    return (*((char *) &sgEndianTest ) == 0);
-}
-
-inline void sgEndianSwap(unsigned short *x) {
-    *x =
-        (( *x >>  8 ) & 0x00FF ) | 
-        (( *x <<  8 ) & 0xFF00 ) ;
-}
-  
-inline void sgEndianSwap(unsigned int *x) {
-    *x =
-        (( *x >> 24 ) & 0x000000FF ) | 
-        (( *x >>  8 ) & 0x0000FF00 ) | 
-        (( *x <<  8 ) & 0x00FF0000 ) | 
-        (( *x << 24 ) & 0xFF000000 ) ;
-}
-  
-inline void sgEndianSwap(uint64 *x) {
-#ifndef _MSC_VER
-    *x =
-        (( *x >> 56 ) & 0x00000000000000FFULL ) | 
-        (( *x >> 40 ) & 0x000000000000FF00ULL ) | 
-        (( *x >> 24 ) & 0x0000000000FF0000ULL ) | 
-        (( *x >>  8 ) & 0x00000000FF000000ULL ) | 
-        (( *x <<  8 ) & 0x000000FF00000000ULL ) | 
-        (( *x << 24 ) & 0x0000FF0000000000ULL ) |
-        (( *x << 40 ) & 0x00FF000000000000ULL ) |
-        (( *x << 56 ) & 0xFF00000000000000ULL ) ;
-#else
-    *x =
-        (( *x >> 56 ) & 0x00000000000000FF ) | 
-        (( *x >> 40 ) & 0x000000000000FF00 ) | 
-        (( *x >> 24 ) & 0x0000000000FF0000 ) | 
-        (( *x >>  8 ) & 0x00000000FF000000 ) | 
-        (( *x <<  8 ) & 0x000000FF00000000 ) | 
-        (( *x << 24 ) & 0x0000FF0000000000 ) |
-        (( *x << 40 ) & 0x00FF000000000000 ) |
-        (( *x << 56 ) & 0xFF00000000000000 ) ;
-#endif
-}
-
 #endif // _SG_LOWLEVEL_HXX