Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Fixed Visual Studio compilation problems
- Loading branch information
|
@@ -291,10 +291,8 @@ SDL_StreamLength(SDL_AudioStreamer * stream) |
|
|
int |
|
|
SDL_StreamInit(SDL_AudioStreamer * stream, int max_len, Uint8 silence) |
|
|
{ |
|
|
int i; |
|
|
|
|
|
/* First try to allocate the buffer */ |
|
|
stream->buffer = (Uint8 *) malloc(max_len); |
|
|
stream->buffer = (Uint8 *) SDL_malloc(max_len); |
|
|
if (stream->buffer == NULL) { |
|
|
return -1; |
|
|
} |
|
@@ -304,17 +302,17 @@ SDL_StreamInit(SDL_AudioStreamer * stream, int max_len, Uint8 silence) |
|
|
stream->write_pos = 0; |
|
|
|
|
|
/* Zero out the buffer */ |
|
|
for (i = 0; i < max_len; ++i) { |
|
|
stream->buffer[i] = silence; |
|
|
} |
|
|
SDL_memset(stream->buffer, silence, max_len); |
|
|
|
|
|
return 0; |
|
|
} |
|
|
|
|
|
/* Deinitialize the stream simply by freeing the buffer */ |
|
|
void |
|
|
SDL_StreamDeinit(SDL_AudioStreamer * stream) |
|
|
{ |
|
|
if (stream->buffer != NULL) { |
|
|
free(stream->buffer); |
|
|
SDL_free(stream->buffer); |
|
|
} |
|
|
} |
|
|
|
|
|
|
@@ -20,14 +20,16 @@ |
|
|
slouken@libsdl.org |
|
|
*/ |
|
|
#include "SDL_config.h" |
|
|
|
|
|
#define _USE_MATH_DEFINES |
|
|
#include <math.h> |
|
|
|
|
|
/* Functions for audio drivers to perform runtime conversion of audio format */ |
|
|
|
|
|
#include "SDL_audio.h" |
|
|
#include "SDL_audio_c.h" |
|
|
|
|
|
#define DEBUG_CONVERT |
|
|
//#define DEBUG_CONVERT |
|
|
|
|
|
/* These are fractional multiplication routines. That is, their inputs |
|
|
are two numbers in the range [-1, 1) and the result falls in that |
|
@@ -1369,7 +1371,7 @@ SDL_BuildIIRLowpass(SDL_AudioCVT * cvt, SDL_AudioFormat format) |
|
|
|
|
|
w0 = 2.0f * M_PI * fc; |
|
|
cosw0 = cosf(w0); |
|
|
alpha = sin(w0) / (2.0f * Q); |
|
|
alpha = sinf(w0) / (2.0f * Q); |
|
|
|
|
|
/* Compute coefficients, normalizing by a0 */ |
|
|
scale = 1.0f / (1.0f + alpha); |
|
@@ -1438,7 +1440,7 @@ SDL_BuildIIRLowpass(SDL_AudioCVT * cvt, SDL_AudioFormat format) |
|
|
#endif |
|
|
|
|
|
/* Initialize the state buffer to all zeroes, and set initial position */ |
|
|
memset(cvt->state_buf, 0, 4 * SDL_AUDIO_BITSIZE(format) / 4); |
|
|
SDL_memset(cvt->state_buf, 0, 4 * SDL_AUDIO_BITSIZE(format) / 4); |
|
|
cvt->state_pos = 0; |
|
|
#undef convert_fixed |
|
|
} |
|
@@ -1636,7 +1638,7 @@ SDL_BuildWindowedSinc(SDL_AudioCVT * cvt, SDL_AudioFormat format, |
|
|
cvt->len_sinc = m + 1; |
|
|
|
|
|
/* Allocate the floating point windowed sinc. */ |
|
|
fSinc = (float *) malloc((m + 1) * sizeof(float)); |
|
|
fSinc = SDL_stack_alloc(float, (m + 1)); |
|
|
if (fSinc == NULL) { |
|
|
return -1; |
|
|
} |
|
@@ -1699,16 +1701,17 @@ SDL_BuildWindowedSinc(SDL_AudioCVT * cvt, SDL_AudioFormat format, |
|
|
} |
|
|
|
|
|
/* Initialize the state buffer to all zeroes, and set initial position */ |
|
|
memset(cvt->state_buf, 0, cvt->len_sinc * SDL_AUDIO_BITSIZE(format) / 4); |
|
|
SDL_memset(cvt->state_buf, 0, |
|
|
cvt->len_sinc * SDL_AUDIO_BITSIZE(format) / 4); |
|
|
cvt->state_pos = 0; |
|
|
|
|
|
/* Clean up */ |
|
|
#undef convert_fixed |
|
|
free(fSinc); |
|
|
SDL_stack_free(fSinc); |
|
|
} |
|
|
|
|
|
/* This is used to reduce the resampling ratio */ |
|
|
inline int |
|
|
static __inline__ int |
|
|
SDL_GCD(int a, int b) |
|
|
{ |
|
|
int temp; |
|
|
|
@@ -173,8 +173,8 @@ WIN_InitMouse(_THIS) |
|
|
if (tablet == index) { |
|
|
AXIS pressure; |
|
|
int cursors; |
|
|
data->WTInfo(WTI_DEVICES, DVC_NPRESSURE, &pressure); |
|
|
data->WTInfo(WTI_DEVICES, DVC_NCSRTYPES, &cursors); |
|
|
data->WTInfoA(WTI_DEVICES, DVC_NPRESSURE, &pressure); |
|
|
data->WTInfoA(WTI_DEVICES, DVC_NCSRTYPES, &cursors); |
|
|
data->mouse = |
|
|
SDL_AddMouse(&mouse, index, device_name, pressure.axMax, |
|
|
pressure.axMin, cursors); |
|
|
|
@@ -110,14 +110,14 @@ WIN_CreateDevice(int devindex) |
|
|
data->wintabDLL = LoadLibrary(TEXT("WINTAB32.DLL")); |
|
|
if (data->wintabDLL) { |
|
|
#define PROCNAME(X) #X |
|
|
data->WTInfo = |
|
|
data->WTInfoA = |
|
|
(UINT(*)(UINT, UINT, LPVOID)) GetProcAddress(data->wintabDLL, |
|
|
PROCNAME(WTInfo)); |
|
|
data->WTOpen = |
|
|
(HCTX(*)(HWND, LPLOGCONTEXT, BOOL)) GetProcAddress(data-> |
|
|
wintabDLL, |
|
|
PROCNAME |
|
|
(WTOpen)); |
|
|
PROCNAME(WTInfoA)); |
|
|
data->WTOpenA = |
|
|
(HCTX(*)(HWND, LPLOGCONTEXTA, BOOL)) GetProcAddress(data-> |
|
|
wintabDLL, |
|
|
PROCNAME |
|
|
(WTOpenA)); |
|
|
data->WTPacket = |
|
|
(int (*)(HCTX, UINT, LPVOID)) GetProcAddress(data->wintabDLL, |
|
|
PROCNAME(WTPacket)); |
|
@@ -126,7 +126,7 @@ WIN_CreateDevice(int devindex) |
|
|
PROCNAME(WTClose)); |
|
|
#undef PROCNAME |
|
|
|
|
|
if (!data->WTInfo || !data->WTOpen || !data->WTPacket |
|
|
if (!data->WTInfoA || !data->WTOpenA || !data->WTPacket |
|
|
|| !data->WTClose) { |
|
|
FreeLibrary(data->wintabDLL); |
|
|
data->wintabDLL = NULL; |
|
|
|
@@ -69,8 +69,8 @@ typedef struct SDL_VideoData |
|
|
/* *INDENT-OFF* */ |
|
|
/* Function pointers for the Wacom API */ |
|
|
HANDLE wintabDLL; |
|
|
UINT (*WTInfo) (UINT, UINT, LPVOID); |
|
|
HCTX (*WTOpen) (HWND, LPLOGCONTEXT, BOOL); |
|
|
UINT (*WTInfoA) (UINT, UINT, LPVOID); |
|
|
HCTX (*WTOpenA) (HWND, LPLOGCONTEXTA, BOOL); |
|
|
int (*WTPacket) (HCTX, UINT, LPVOID); |
|
|
BOOL (*WTClose) (HCTX); |
|
|
/* *INDENT-ON* */ |
|
|
|
@@ -151,7 +151,7 @@ WIN_CreateWindow(_THIS, SDL_Window * window) |
|
|
SDL_VideoData *videodata = (SDL_VideoData *) _this->driverdata; |
|
|
RAWINPUTDEVICE Rid; |
|
|
AXIS TabX, TabY; |
|
|
LOGCONTEXT lc; |
|
|
LOGCONTEXTA lc; |
|
|
HWND hwnd; |
|
|
HWND top; |
|
|
RECT rect; |
|
@@ -206,15 +206,16 @@ WIN_CreateWindow(_THIS, SDL_Window * window) |
|
|
} |
|
|
|
|
|
/* we're configuring the tablet data. See Wintab reference for more info */ |
|
|
if (videodata->wintabDLL && videodata->WTInfo(WTI_DEFSYSCTX, 0, &lc) != 0) { |
|
|
if (videodata->wintabDLL |
|
|
&& videodata->WTInfoA(WTI_DEFSYSCTX, 0, &lc) != 0) { |
|
|
lc.lcPktData = PACKETDATA; |
|
|
lc.lcPktMode = PACKETMODE; |
|
|
lc.lcOptions |= CXO_MESSAGES; |
|
|
lc.lcOptions |= CXO_SYSTEM; |
|
|
lc.lcMoveMask = PACKETDATA; |
|
|
lc.lcBtnDnMask = lc.lcBtnUpMask = PACKETDATA; |
|
|
videodata->WTInfo(WTI_DEVICES, DVC_X, &TabX); |
|
|
videodata->WTInfo(WTI_DEVICES, DVC_Y, &TabY); |
|
|
videodata->WTInfoA(WTI_DEVICES, DVC_X, &TabX); |
|
|
videodata->WTInfoA(WTI_DEVICES, DVC_Y, &TabY); |
|
|
lc.lcInOrgX = 0; |
|
|
lc.lcInOrgY = 0; |
|
|
lc.lcInExtX = TabX.axMax; |
|
@@ -235,7 +236,7 @@ WIN_CreateWindow(_THIS, SDL_Window * window) |
|
|
} |
|
|
g_hCtx = tmp_hctx; |
|
|
} |
|
|
g_hCtx[window->id] = videodata->WTOpen(hwnd, &lc, TRUE); |
|
|
g_hCtx[window->id] = videodata->WTOpenA(hwnd, &lc, TRUE); |
|
|
} |
|
|
|
|
|
/* we're telling the window, we want it to report raw input events from mice */ |
|
|