diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/adlmidi.cpp | 6 | ||||
-rw-r--r-- | src/adlmidi_private.hpp | 11 |
2 files changed, 12 insertions, 5 deletions
diff --git a/src/adlmidi.cpp b/src/adlmidi.cpp index 3b124eb..2e75bbe 100644 --- a/src/adlmidi.cpp +++ b/src/adlmidi.cpp @@ -572,10 +572,10 @@ ADLMIDI_EXPORT int adl_play(ADL_MIDIPlayer *device, int sampleCount, short *out) left -= (int)ate; gotten_len += ate; - if(ate < setup.backup_samples_size) + if((ate < setup.backup_samples_size) && (ate != 0)) { - for(ssize_t j = 0; j < ate; j++) - setup.backup_samples[(ate - 1) - j] = setup.backup_samples[(setup.backup_samples_size - 1) - j]; + for(ssize_t i = 0, j = ate; j < setup.backup_samples_size; i++, j++) + setup.backup_samples[i] = setup.backup_samples[j]; } setup.backup_samples_size -= ate; diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 8058824..6ab9437 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -40,8 +40,12 @@ #endif #ifdef _WIN32 +#define NOMINMAX +#endif + +#if defined(_WIN32) && !defined(__WATCOMC__) # undef NO_OLDNAMES -# include <stdint.h> +# include <stdint.h> # ifdef _MSC_VER # ifdef _WIN64 typedef __int64 ssize_t; @@ -91,6 +95,9 @@ typedef int32_t ssize_t; #include <vector> // vector #include <deque> // deque #include <cmath> // exp, log, ceil +#if defined(__WATCOMC__) +#include <math.h> // round, sqrt +#endif #include <stdio.h> #include <stdlib.h> #include <limits> // numeric_limit @@ -328,7 +335,7 @@ public: void openFile(const char *path) { - #ifndef _WIN32 + #if !defined(_WIN32) || defined(__WATCOMC__) fp = std::fopen(path, "rb"); #else wchar_t widePath[MAX_PATH]; |