DEADSOFTWARE

common: move endianness converters to common
authorDeaDDooMER <deaddoomer@deadsoftware.ru>
Tue, 6 Apr 2021 09:54:14 +0000 (12:54 +0300)
committerDeaDDooMER <deaddoomer@deadsoftware.ru>
Tue, 6 Apr 2021 09:54:14 +0000 (12:54 +0300)
src/common/endianness.h [new file with mode: 0644]
src/common/streams.c
src/gl/render.c
src/misc.h
src/miscc.c
src/my.c
src/openal/sound.c
src/sdlmixer/sound.c
src/soft/vga.c

diff --git a/src/common/endianness.h b/src/common/endianness.h
new file mode 100644 (file)
index 0000000..f4708b2
--- /dev/null
@@ -0,0 +1,47 @@
+#ifndef COMMON_ENDIANNESS_H_INCLUDED
+#define COMMON_ENDIANNESS_H_INCLUDED
+
+#include <stdint.h>
+
+#define SWAP_VAR(a, b) do { unsigned char t = a; a = b; b = t; } while(0)
+
+static inline int16_t short2swap (int16_t x) {
+  union {
+    uint8_t a[2];
+    int16_t x;
+  } y;
+  y.x = x;
+  SWAP_VAR(y.a[0], y.a[1]);
+  return y.x;
+}
+
+static inline int32_t int2swap (int32_t x) {
+  union {
+    uint8_t a[4];
+    int32_t x;
+  } y;
+  y.x = x;
+  SWAP_VAR(y.a[0], y.a[3]);
+  SWAP_VAR(y.a[1], y.a[2]);
+  return y.x;
+}
+
+#undef SWAP_VAR
+
+static inline int16_t short2host (int16_t x) {
+#if __BIG_ENDIAN__
+  return short2swap(x);
+#else
+  return x;
+#endif
+}
+
+static inline int32_t int2host (int32_t x) {
+#if __BIG_ENDIAN__
+  return int2swap(x);
+#else
+  return x;
+#endif
+}
+
+#endif /* COMMON_ENDIANNESS_H_INCLUDED */
\ No newline at end of file
index 615274cb98d63e738df275307fb3bd642e7666bd..46e756b18b66acf0d36f93022f696ef8327639f0 100644 (file)
@@ -1,10 +1,9 @@
-#include "streams.h"
+#include "common/streams.h"
+#include "common/endianness.h"
 
 #include <stddef.h>
 #include <stdint.h>
 
-#include "misc.h" // endianness conversion
-
 void stream_read (void *data, size_t size, size_t n, Reader *r) {
   r->read(r, data, size, n);
 }
index 948a7b5cc8d3abb22ffd6484fde0957fa3c0d201..e29dd232c40cfd39ff164ab81e1483e17d710948 100644 (file)
@@ -38,6 +38,7 @@
 #include "switch.h" // sw_secrets
 
 #include "cp866.h"
+#include "common/endianness.h"
 
 #ifdef __APPLE__
 #  include <OpenGL/gl.h>
index 20ec63016cfc56393d034b73a17bd70116ef5529..b863460c2c70b6ab63170f5afe27665df1f22e98 100644 (file)
@@ -57,7 +57,4 @@ int Z_moveobj (obj_t *p);
 void Z_splash (obj_t *p, int n);
 void Z_calc_time(dword t, word *h, word *m, word *s);
 
-int16_t short2host (int16_t x);
-int32_t int2host (int32_t x);
-
 #endif /* MISC_H_INCLUDED */
index b2bbbaf585fc6b082e8350228a3cee7b2405acb0..184e369b7ea7f8637d3f3831e30b381f544250d4 100644 (file)
@@ -389,44 +389,3 @@ void Z_calc_time(dword t,word *h,word *m,word *s)
     t = t / 60;
     *h = t;
 }
-
-#define SWAP_VAR(a, b) do { unsigned char t = a; a = b; b = t; } while(0)
-
-static int16_t short2swap (int16_t x) {
-  union {
-    uint8_t a[2];
-    int16_t x;
-  } y;
-  y.x = x;
-  SWAP_VAR(y.a[0], y.a[1]);
-  return y.x;
-}
-
-static int32_t int2swap (int32_t x) {
-  union {
-    uint8_t a[4];
-    int32_t x;
-  } y;
-  y.x = x;
-  SWAP_VAR(y.a[0], y.a[3]);
-  SWAP_VAR(y.a[1], y.a[2]);
-  return y.x;
-}
-
-#undef SWAP_VAR
-
-int16_t short2host (int16_t x) {
-#if __BIG_ENDIAN__
-  return short2swap(x);
-#else
-  return x;
-#endif
-}
-
-int32_t int2host (int32_t x) {
-#if __BIG_ENDIAN__
-  return int2swap(x);
-#else
-  return x;
-#endif
-}
index b3eb964f476a95f2cfba3e0e71b1995812468999..a7adf3c5c0087bb1294034f5e8d3ddda274846f4 100644 (file)
--- a/src/my.c
+++ b/src/my.c
@@ -18,7 +18,8 @@
 
 #include "glob.h"
 #include "error.h"
-#include "misc.h"
+#include "common/endianness.h"
+
 #include <stdio.h>
 #include <stdint.h>
 #include <assert.h>
index 8d0b342c4ff656dee368401530f64946d9e4d98a..7bb60a0933b0145b63a7d4a70054e06f4db5af75 100644 (file)
 
 #include "files.h" // F_findres F_getreslen
 #include "memory.h" // M_lock M_unlock
-#include "misc.h" // int2host
 #include "error.h" // logo
 
+#include "common/endianness.h"
+
 #ifdef __APPLE__
 #  include <OpenAL/al.h>
 #  include <OpenAL/alc.h>
index ec27e45f373387512c6e2422220d4c5866ee63a6..a5da8c5aecc272b00b3b69297881e90cf02b8b06 100644 (file)
 #include "glob.h"
 #include "sound.h"
 #include "music.h"
-#include "misc.h" // int2host
 #include "memory.h" // M_lock M_unlock
 #include "files.h" // F_findres
 #include "error.h"
 
+#include "common/endianness.h"
+
 #include "SDL.h"
 #include "SDL_mixer.h"
 #include <assert.h>
index 63b5f65b7f104ef2204b2058a6dfb6c6fe9266fa..5f9078533aea39957dfa1c9ae8acaaabbb7010da 100644 (file)
@@ -24,6 +24,8 @@
 #include "files.h"
 #include "system.h"
 
+#include "common/endianness.h"
+
 #include <string.h>
 #include <assert.h>