diff options
author | OBATA Akio <obache@wizdas.com> | 2022-01-05 16:36:10 +0900 |
---|---|---|
committer | OBATA Akio <obache@wizdas.com> | 2022-01-05 16:36:10 +0900 |
commit | ecd978360d79ba71df598f372be65cc1c0e34d80 (patch) | |
tree | b8065873a3fc01b7115df7207de638589d304145 /noatun-plugins/synaescope | |
parent | 762bfec2c849854fc0247acf8d2f107c27b17940 (diff) | |
download | tdeaddons-ecd978360d79ba71df598f372be65cc1c0e34d80.tar.gz tdeaddons-ecd978360d79ba71df598f372be65cc1c0e34d80.zip |
noatun-plugins: change to use SDL feature to handle data for SDL
With own imcompleted endianness checkes, systems might be mis-detected
as big endian.
Change to use SDL macros to determine endianness.
Change to use SDL function to byte swap
Change to use SDL tyepdef for appropriate size integer type
Signed-off-by: OBATA Akio <obache@wizdas.com>
Diffstat (limited to 'noatun-plugins/synaescope')
-rw-r--r-- | noatun-plugins/synaescope/core.cpp | 18 | ||||
-rw-r--r-- | noatun-plugins/synaescope/sdlwrap.cpp | 6 | ||||
-rw-r--r-- | noatun-plugins/synaescope/syna.h | 24 |
3 files changed, 6 insertions, 42 deletions
diff --git a/noatun-plugins/synaescope/core.cpp b/noatun-plugins/synaescope/core.cpp index e21c796..15c6730 100644 --- a/noatun-plugins/synaescope/core.cpp +++ b/noatun-plugins/synaescope/core.cpp @@ -24,6 +24,7 @@ #include "syna.h" #include <unistd.h> #include <noatun/conversion.h> +#include <SDL_endian.h> using namespace std; @@ -305,9 +306,6 @@ bool Core::calculate() double a[NumSamples], b[NumSamples]; int clarity[NumSamples]; //Surround sound int i,j,k; -#ifndef LITTLEENDIAN - sampleType temp; -#endif int brightFactor = int(Brightness * brightnessTwiddler /(starSize+0.01)); @@ -322,18 +320,8 @@ bool Core::calculate() for(i=0;i<NumSamples;i++) { -# ifdef LITTLEENDIAN - x[i] = data[i*2]; - y[i] = data[i*2+1]; -# else - // Need to convert to big-endian - temp = data[i*2]; - temp = (temp >> 8) | (temp << 8); - x[i] = temp; - temp = data[i*2+1]; - temp = (temp << 8) | (temp >> 8); - y[i] = temp; -# endif + x[i] = SDL_SwapLE16(data[i*2]); + y[i] = SDL_SwapLE16(data[i*2+1]); } fft(x,y); diff --git a/noatun-plugins/synaescope/sdlwrap.cpp b/noatun-plugins/synaescope/sdlwrap.cpp index f40d384..920e150 100644 --- a/noatun-plugins/synaescope/sdlwrap.cpp +++ b/noatun-plugins/synaescope/sdlwrap.cpp @@ -150,8 +150,8 @@ void SdlScreen::show() { SDL_LockSurface(surface); - unsigned long *ptr2 = (unsigned long*)core->output(); - unsigned long *ptr1 = (unsigned long*)( surface->pixels ); + Uint32 *ptr2 = (Uint32*)core->output(); + Uint32 *ptr1 = (Uint32*)( surface->pixels ); int i = core->outWidth*core->outHeight/4; do { @@ -161,7 +161,7 @@ void SdlScreen::show() unsigned int const r2 = *(ptr2++); //if (r1 || r2) { -#ifdef LITTLEENDIAN +#if SDL_BYTEORDER == SDL_LIT_ENDIAN unsigned int const v = ((r1 & 0x000000f0ul) >> 4) | ((r1 & 0x0000f000ul) >> 8) diff --git a/noatun-plugins/synaescope/syna.h b/noatun-plugins/synaescope/syna.h index 07c4e5e..0d3831b 100644 --- a/noatun-plugins/synaescope/syna.h +++ b/noatun-plugins/synaescope/syna.h @@ -48,31 +48,7 @@ #define NumSamples (1<<LogSize) #define RecSize (1<<LogSize-Overlap) -#ifndef __linux__ -#warning This target has not been tested! -#endif - -#ifdef __FreeBSD__ -#include <machine/endian.h> typedef unsigned short sampleType; -#else -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif -#ifdef HAVE_ENDIAN_H -#include <endian.h> -#elif defined(_BIG_ENDIAN) -#define BIG_ENDIAN 1 -#define BYTE_ORDER BIG_ENDIAN -#endif -typedef short sampleType; -#endif - -#if BYTE_ORDER == BIG_ENDIAN -#define BIGENDIAN -#else -#define LITTLEENDIAN -#endif void error(const char *str, bool syscall=false); void warning(const char *str, bool syscall=false); |