Use SDL_bool instead an int return code in the SDL API

Most SDL functions used to indicate success or failure using an int return code. These functions have been changed to return SDL_bool.

Here is a coccinelle patch to change code that previously compared the return value to 0 and changes it to a boolean test:
@ bool_return_type  @
identifier func =~ "^(SDL_AddEventWatch|SDL_AddHintCallback|SDL_AddSurfaceAlternateImage|SDL_AddVulkanRenderSemaphores|SDL_BindAudioStream|SDL_BindAudioStreams|SDL_BlitSurface|SDL_BlitSurface9Grid|SDL_BlitSurfaceScaled|SDL_BlitSurfaceTiled|SDL_BlitSurfaceTiledWithScale|SDL_BlitSurfaceUnchecked|SDL_BlitSurfaceUncheckedScaled|SDL_CaptureMouse|SDL_ClearAudioStream|SDL_ClearClipboardData|SDL_ClearComposition|SDL_ClearError|SDL_ClearProperty|SDL_ClearSurface|SDL_CloseIO|SDL_CloseStorage|SDL_ConvertAudioSamples|SDL_ConvertEventToRenderCoordinates|SDL_ConvertPixels|SDL_ConvertPixelsAndColorspace|SDL_CopyFile|SDL_CopyProperties|SDL_CopyStorageFile|SDL_CreateDirectory|SDL_CreateStorageDirectory|SDL_CreateWindowAndRenderer|SDL_DateTimeToTime|SDL_DestroyWindowSurface|SDL_DetachVirtualJoystick|SDL_DisableScreenSaver|SDL_EnableScreenSaver|SDL_EnumerateDirectory|SDL_EnumerateProperties|SDL_EnumerateStorageDirectory|SDL_FillSurfaceRect|SDL_FillSurfaceRects|SDL_FlashWindow|SDL_FlipSurface|SDL_FlushAudioStream|SDL_FlushRenderer|SDL_GL_DestroyContext|SDL_GL_GetAttribute|SDL_GL_GetSwapInterval|SDL_GL_LoadLibrary|SDL_GL_MakeCurrent|SDL_GL_SetAttribute|SDL_GL_SetSwapInterval|SDL_GL_SwapWindow|SDL_GetAudioDeviceFormat|SDL_GetAudioStreamFormat|SDL_GetCameraFormat|SDL_GetClosestFullscreenDisplayMode|SDL_GetCurrentRenderOutputSize|SDL_GetCurrentTime|SDL_GetDXGIOutputInfo|SDL_GetDateTimeLocalePreferences|SDL_GetDisplayBounds|SDL_GetDisplayUsableBounds|SDL_GetGDKDefaultUser|SDL_GetGDKTaskQueue|SDL_GetGamepadSensorData|SDL_GetGamepadTouchpadFinger|SDL_GetHapticEffectStatus|SDL_GetJoystickBall|SDL_GetMasksForPixelFormat|SDL_GetPathInfo|SDL_GetRectUnion|SDL_GetRectUnionFloat|SDL_GetRenderClipRect|SDL_GetRenderColorScale|SDL_GetRenderDrawBlendMode|SDL_GetRenderDrawColor|SDL_GetRenderDrawColorFloat|SDL_GetRenderLogicalPresentation|SDL_GetRenderLogicalPresentationRect|SDL_GetRenderOutputSize|SDL_GetRenderSafeArea|SDL_GetRenderScale|SDL_GetRenderVSync|SDL_GetRenderViewport|SDL_GetSensorData|SDL_GetStorageFileSize|SDL_GetStoragePathInfo|SDL_GetSurfaceAlphaMod|SDL_GetSurfaceBlendMode|SDL_GetSurfaceClipRect|SDL_GetSurfaceColorKey|SDL_GetSurfaceColorMod|SDL_GetTextInputArea|SDL_GetTextureAlphaMod|SDL_GetTextureAlphaModFloat|SDL_GetTextureBlendMode|SDL_GetTextureColorMod|SDL_GetTextureColorModFloat|SDL_GetTextureScaleMode|SDL_GetTextureSize|SDL_GetWindowAspectRatio|SDL_GetWindowBordersSize|SDL_GetWindowMaximumSize|SDL_GetWindowMinimumSize|SDL_GetWindowPosition|SDL_GetWindowRelativeMouseMode|SDL_GetWindowSafeArea|SDL_GetWindowSize|SDL_GetWindowSizeInPixels|SDL_GetWindowSurfaceVSync|SDL_HideCursor|SDL_HideWindow|SDL_Init|SDL_InitHapticRumble|SDL_InitSubSystem|SDL_LoadWAV|SDL_LoadWAV_IO|SDL_LockAudioStream|SDL_LockProperties|SDL_LockSurface|SDL_LockTexture|SDL_LockTextureToSurface|SDL_MaximizeWindow|SDL_MinimizeWindow|SDL_MixAudio|SDL_OpenURL|SDL_OutOfMemory|SDL_PauseAudioDevice|SDL_PauseAudioStreamDevice|SDL_PauseHaptic|SDL_PlayHapticRumble|SDL_PremultiplyAlpha|SDL_PremultiplySurfaceAlpha|SDL_PushEvent|SDL_PutAudioStreamData|SDL_RaiseWindow|SDL_ReadStorageFile|SDL_ReadSurfacePixel|SDL_ReadSurfacePixelFloat|SDL_RegisterApp|SDL_ReloadGamepadMappings|SDL_RemovePath|SDL_RemoveStoragePath|SDL_RemoveTimer|SDL_RenamePath|SDL_RenameStoragePath|SDL_RenderClear|SDL_RenderCoordinatesFromWindow|SDL_RenderCoordinatesToWindow|SDL_RenderFillRect|SDL_RenderFillRects|SDL_RenderGeometry|SDL_RenderGeometryRaw|SDL_RenderLine|SDL_RenderLines|SDL_RenderPoint|SDL_RenderPoints|SDL_RenderPresent|SDL_RenderRect|SDL_RenderRects|SDL_RenderTexture|SDL_RenderTexture9Grid|SDL_RenderTextureRotated|SDL_RenderTextureTiled|SDL_RequestAndroidPermission|SDL_RestoreWindow|SDL_ResumeAudioDevice|SDL_ResumeAudioStreamDevice|SDL_ResumeHaptic|SDL_RumbleGamepad|SDL_RumbleGamepadTriggers|SDL_RumbleJoystick|SDL_RumbleJoystickTriggers|SDL_RunHapticEffect|SDL_SaveBMP|SDL_SaveBMP_IO|SDL_SendAndroidMessage|SDL_SendGamepadEffect|SDL_SendJoystickEffect|SDL_SendJoystickVirtualSensorData|SDL_SetAppMetadata|SDL_SetAppMetadataProperty|SDL_SetAudioDeviceGain|SDL_SetAudioPostmixCallback|SDL_SetAudioStreamFormat|SDL_SetAudioStreamFrequencyRatio|SDL_SetAudioStreamGain|SDL_SetAudioStreamGetCallback|SDL_SetAudioStreamInputChannelMap|SDL_SetAudioStreamOutputChannelMap|SDL_SetAudioStreamPutCallback|SDL_SetBooleanProperty|SDL_SetClipboardData|SDL_SetClipboardText|SDL_SetCursor|SDL_SetFloatProperty|SDL_SetGamepadLED|SDL_SetGamepadMapping|SDL_SetGamepadPlayerIndex|SDL_SetGamepadSensorEnabled|SDL_SetHapticAutocenter|SDL_SetHapticGain|SDL_SetJoystickLED|SDL_SetJoystickPlayerIndex|SDL_SetJoystickVirtualAxis|SDL_SetJoystickVirtualBall|SDL_SetJoystickVirtualButton|SDL_SetJoystickVirtualHat|SDL_SetJoystickVirtualTouchpad|SDL_SetLinuxThreadPriority|SDL_SetLinuxThreadPriorityAndPolicy|SDL_SetLogPriorityPrefix|SDL_SetMemoryFunctions|SDL_SetNumberProperty|SDL_SetPaletteColors|SDL_SetPointerProperty|SDL_SetPointerPropertyWithCleanup|SDL_SetPrimarySelectionText|SDL_SetRenderClipRect|SDL_SetRenderColorScale|SDL_SetRenderDrawBlendMode|SDL_SetRenderDrawColor|SDL_SetRenderDrawColorFloat|SDL_SetRenderLogicalPresentation|SDL_SetRenderScale|SDL_SetRenderTarget|SDL_SetRenderVSync|SDL_SetRenderViewport|SDL_SetScancodeName|SDL_SetStringProperty|SDL_SetSurfaceAlphaMod|SDL_SetSurfaceBlendMode|SDL_SetSurfaceColorKey|SDL_SetSurfaceColorMod|SDL_SetSurfaceColorspace|SDL_SetSurfacePalette|SDL_SetSurfaceRLE|SDL_SetTLS|SDL_SetTextInputArea|SDL_SetTextureAlphaMod|SDL_SetTextureAlphaModFloat|SDL_SetTextureBlendMode|SDL_SetTextureColorMod|SDL_SetTextureColorModFloat|SDL_SetTextureScaleMode|SDL_SetThreadPriority|SDL_SetWindowAlwaysOnTop|SDL_SetWindowAspectRatio|SDL_SetWindowBordered|SDL_SetWindowFocusable|SDL_SetWindowFullscreen|SDL_SetWindowFullscreenMode|SDL_SetWindowHitTest|SDL_SetWindowIcon|SDL_SetWindowKeyboardGrab|SDL_SetWindowMaximumSize|SDL_SetWindowMinimumSize|SDL_SetWindowModalFor|SDL_SetWindowMouseGrab|SDL_SetWindowMouseRect|SDL_SetWindowOpacity|SDL_SetWindowPosition|SDL_SetWindowRelativeMouseMode|SDL_SetWindowResizable|SDL_SetWindowShape|SDL_SetWindowSize|SDL_SetWindowSurfaceVSync|SDL_SetWindowTitle|SDL_SetiOSAnimationCallback|SDL_ShowAndroidToast|SDL_ShowCursor|SDL_ShowMessageBox|SDL_ShowSimpleMessageBox|SDL_ShowWindow|SDL_ShowWindowSystemMenu|SDL_StartTextInput|SDL_StartTextInputWithProperties|SDL_StopHapticEffect|SDL_StopHapticEffects|SDL_StopHapticRumble|SDL_StopTextInput|SDL_SyncWindow|SDL_TimeToDateTime|SDL_TryLockMutex|SDL_TryLockRWLockForReading|SDL_TryLockRWLockForWriting|SDL_TryWaitSemaphore|SDL_UnlockAudioStream|SDL_UpdateHapticEffect|SDL_UpdateNVTexture|SDL_UpdateTexture|SDL_UpdateWindowSurface|SDL_UpdateWindowSurfaceRects|SDL_UpdateYUVTexture|SDL_Vulkan_CreateSurface|SDL_Vulkan_LoadLibrary|SDL_WaitConditionTimeout|SDL_WaitSemaphoreTimeout|SDL_WarpMouseGlobal|SDL_WriteStorageFile|SDL_WriteSurfacePixel|SDL_WriteSurfacePixelFloat)$";
@@
(
  func(
  ...
  )
- == 0
|
- func(
+ !func(
  ...
  )
- < 0
|
- func(
+ !func(
  ...
  )
- != 0
|
- func(
+ !func(
  ...
  )
- == -1
)
This commit is contained in:
Sam Lantinga
2024-08-22 17:33:49 -07:00
parent d9a5ed75b9
commit 9ff3446f03
726 changed files with 11062 additions and 11472 deletions

View File

@@ -38,9 +38,9 @@
#define MAX_HAPTICS 32 // It's doubtful someone has more then 32 evdev
static int MaybeAddDevice(const char *path);
static bool MaybeAddDevice(const char *path);
#ifdef SDL_USE_LIBUDEV
static int MaybeRemoveDevice(const char *path);
static bool MaybeRemoveDevice(const char *path);
static void haptic_udev_callback(SDL_UDEV_deviceevent udev_type, int udev_class, const char *devpath);
#endif // SDL_USE_LIBUDEV
@@ -85,16 +85,15 @@ static int numhaptics = 0;
* Test whether a device has haptic properties.
* Returns available properties or 0 if there are none.
*/
static int EV_IsHaptic(int fd)
static Uint32 EV_IsHaptic(int fd)
{
unsigned int ret;
unsigned long features[1 + FF_MAX / sizeof(unsigned long)];
Uint32 ret = 0;
// Ask device for what it has.
ret = 0;
if (ioctl(fd, EVIOCGBIT(EV_FF, sizeof(features)), features) < 0) {
return SDL_SetError("Haptic: Unable to get device's features: %s",
strerror(errno));
SDL_SetError("Haptic: Unable to get device's features: %s", strerror(errno));
return 0;
}
// Convert supported features to SDL_HAPTIC platform-neutral features.
@@ -121,27 +120,27 @@ static int EV_IsHaptic(int fd)
/*
* Tests whether a device is a mouse or not.
*/
static int EV_IsMouse(int fd)
static bool EV_IsMouse(int fd)
{
unsigned long argp[40];
// Ask for supported features.
if (ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(argp)), argp) < 0) {
return -1;
return false;
}
// Currently we only test for BTN_MOUSE which can give fake positives.
if (test_bit(BTN_MOUSE, argp) != 0) {
return 1;
return true;
}
return 0;
return true;
}
/*
* Initializes the haptic subsystem by finding available devices.
*/
int SDL_SYS_HapticInit(void)
bool SDL_SYS_HapticInit(void)
{
const char joydev_pattern[] = "/dev/input/event%d";
char path[PATH_MAX];
@@ -158,11 +157,11 @@ int SDL_SYS_HapticInit(void)
}
#ifdef SDL_USE_LIBUDEV
if (SDL_UDEV_Init() < 0) {
if (!SDL_UDEV_Init()) {
return SDL_SetError("Could not initialize UDEV");
}
if (SDL_UDEV_AddCallback(haptic_udev_callback) < 0) {
if (!SDL_UDEV_AddCallback(haptic_udev_callback)) {
SDL_UDEV_Quit();
return SDL_SetError("Could not setup haptic <-> udev callback");
}
@@ -171,7 +170,7 @@ int SDL_SYS_HapticInit(void)
SDL_UDEV_Scan();
#endif // SDL_USE_LIBUDEV
return numhaptics;
return true;
}
int SDL_SYS_NumHaptics(void)
@@ -229,34 +228,34 @@ static void haptic_udev_callback(SDL_UDEV_deviceevent udev_type, int udev_class,
}
#endif // SDL_USE_LIBUDEV
static int MaybeAddDevice(const char *path)
static bool MaybeAddDevice(const char *path)
{
struct stat sb;
int fd;
int success;
Uint32 supported;
SDL_hapticlist_item *item;
if (!path) {
return -1;
return false;
}
// try to open
fd = open(path, O_RDWR | O_CLOEXEC, 0);
if (fd < 0) {
return -1;
return false;
}
// get file status
if (fstat(fd, &sb) != 0) {
close(fd);
return -1;
return false;
}
// check for duplicates
for (item = SDL_hapticlist; item; item = item->next) {
if (item->dev_num == sb.st_rdev) {
close(fd);
return -1; // duplicate.
return false; // duplicate.
}
}
@@ -265,22 +264,22 @@ static int MaybeAddDevice(const char *path)
#endif
// see if it works
success = EV_IsHaptic(fd);
supported = EV_IsHaptic(fd);
close(fd);
if (success <= 0) {
return -1;
if (!supported) {
return false;
}
item = (SDL_hapticlist_item *)SDL_calloc(1, sizeof(SDL_hapticlist_item));
if (!item) {
return -1;
return false;
}
item->instance_id = SDL_GetNextObjectID();
item->fname = SDL_strdup(path);
if (!item->fname) {
SDL_free(item);
return -1;
return false;
}
item->dev_num = sb.st_rdev;
@@ -297,23 +296,23 @@ static int MaybeAddDevice(const char *path)
// !!! TODO: Send a haptic add event?
return numhaptics;
return true;
}
#ifdef SDL_USE_LIBUDEV
static int MaybeRemoveDevice(const char *path)
static bool MaybeRemoveDevice(const char *path)
{
SDL_hapticlist_item *item;
SDL_hapticlist_item *prev = NULL;
if (!path) {
return -1;
return false;
}
for (item = SDL_hapticlist; item; item = item->next) {
// found it, remove it.
if (SDL_strcmp(path, item->fname) == 0) {
const int retval = item->haptic ? 0 : -1;
const bool result = item->haptic ? true : false;
if (prev) {
prev->next = item->next;
@@ -331,12 +330,12 @@ static int MaybeRemoveDevice(const char *path)
SDL_free(item->fname);
SDL_free(item);
return retval;
return result;
}
prev = item;
}
return -1;
return false;
}
#endif // SDL_USE_LIBUDEV
@@ -399,7 +398,7 @@ const char *SDL_SYS_HapticName(int index)
/*
* Opens the haptic device from the file descriptor.
*/
static int SDL_SYS_HapticOpenFromFD(SDL_Haptic *haptic, int fd)
static bool SDL_SYS_HapticOpenFromFD(SDL_Haptic *haptic, int fd)
{
// Allocate the hwdata
haptic->hwdata = (struct haptic_hwdata *)
@@ -429,7 +428,7 @@ static int SDL_SYS_HapticOpenFromFD(SDL_Haptic *haptic, int fd)
SDL_memset(haptic->effects, 0,
sizeof(struct haptic_effect) * haptic->neffects);
return 0;
return true;
// Error handling
open_err:
@@ -438,16 +437,15 @@ open_err:
SDL_free(haptic->hwdata);
haptic->hwdata = NULL;
}
return -1;
return false;
}
/*
* Opens a haptic device for usage.
*/
int SDL_SYS_HapticOpen(SDL_Haptic *haptic)
bool SDL_SYS_HapticOpen(SDL_Haptic *haptic)
{
int fd;
int ret;
SDL_hapticlist_item *item;
item = HapticByInstanceID(haptic->instance_id);
@@ -459,14 +457,14 @@ int SDL_SYS_HapticOpen(SDL_Haptic *haptic)
}
// Try to create the haptic.
ret = SDL_SYS_HapticOpenFromFD(haptic, fd); // Already closes on error.
if (ret < 0) {
return -1;
if (!SDL_SYS_HapticOpenFromFD(haptic, fd)) {
// Already closes on error.
return false;
}
// Set the fname.
haptic->hwdata->fname = SDL_strdup(item->fname);
return 0;
return true;
}
/*
@@ -541,18 +539,17 @@ bool SDL_SYS_JoystickSameHaptic(SDL_Haptic *haptic, SDL_Joystick *joystick)
/*
* Opens a SDL_Haptic from a SDL_Joystick.
*/
int SDL_SYS_HapticOpenFromJoystick(SDL_Haptic *haptic, SDL_Joystick *joystick)
bool SDL_SYS_HapticOpenFromJoystick(SDL_Haptic *haptic, SDL_Joystick *joystick)
{
#ifdef SDL_JOYSTICK_LINUX
int fd;
int ret;
SDL_hapticlist_item *item;
const char *name;
SDL_AssertJoysticksLocked();
if (joystick->driver != &SDL_LINUX_JoystickDriver) {
return -1;
return false;
}
// Find the joystick in the haptic list.
for (item = SDL_hapticlist; item; item = item->next) {
@@ -567,9 +564,9 @@ int SDL_SYS_HapticOpenFromJoystick(SDL_Haptic *haptic, SDL_Joystick *joystick)
return SDL_SetError("Haptic: Unable to open %s: %s",
joystick->hwdata->fname, strerror(errno));
}
ret = SDL_SYS_HapticOpenFromFD(haptic, fd); // Already closes on error.
if (ret < 0) {
return -1;
if (!SDL_SYS_HapticOpenFromFD(haptic, fd)) {
// Already closes on error.
return false;
}
haptic->hwdata->fname = SDL_strdup(joystick->hwdata->fname);
@@ -578,9 +575,9 @@ int SDL_SYS_HapticOpenFromJoystick(SDL_Haptic *haptic, SDL_Joystick *joystick)
if (name) {
haptic->name = SDL_strdup(name);
}
return 0;
return true;
#else
return -1;
return false;
#endif
}
@@ -658,7 +655,7 @@ static Uint16 SDL_SYS_ToButton(Uint16 button)
/*
* Initializes the ff_effect usable direction from a SDL_HapticDirection.
*/
static int SDL_SYS_ToDirection(Uint16 *dest, const SDL_HapticDirection *src)
static bool SDL_SYS_ToDirection(Uint16 *dest, const SDL_HapticDirection *src)
{
Uint32 tmp;
@@ -711,7 +708,7 @@ static int SDL_SYS_ToDirection(Uint16 *dest, const SDL_HapticDirection *src)
return SDL_SetError("Haptic: Unsupported direction type.");
}
return 0;
return true;
}
#define CLAMP(x) (((x) > 32767) ? 32767 : x)
@@ -719,7 +716,7 @@ static int SDL_SYS_ToDirection(Uint16 *dest, const SDL_HapticDirection *src)
* Initializes the Linux effect struct from a haptic_effect.
* Values above 32767 (for unsigned) are unspecified so we must clamp.
*/
static int SDL_SYS_ToFFEffect(struct ff_effect *dest, const SDL_HapticEffect *src)
static bool SDL_SYS_ToFFEffect(struct ff_effect *dest, const SDL_HapticEffect *src)
{
const SDL_HapticConstant *constant;
const SDL_HapticPeriodic *periodic;
@@ -736,8 +733,8 @@ static int SDL_SYS_ToFFEffect(struct ff_effect *dest, const SDL_HapticEffect *sr
// Header
dest->type = FF_CONSTANT;
if (SDL_SYS_ToDirection(&dest->direction, &constant->direction) == -1) {
return -1;
if (!SDL_SYS_ToDirection(&dest->direction, &constant->direction)) {
return false;
}
// Replay
@@ -770,8 +767,8 @@ static int SDL_SYS_ToFFEffect(struct ff_effect *dest, const SDL_HapticEffect *sr
// Header
dest->type = FF_PERIODIC;
if (SDL_SYS_ToDirection(&dest->direction, &periodic->direction) == -1) {
return -1;
if (!SDL_SYS_ToDirection(&dest->direction, &periodic->direction)) {
return false;
}
// Replay
@@ -864,8 +861,8 @@ static int SDL_SYS_ToFFEffect(struct ff_effect *dest, const SDL_HapticEffect *sr
// Header
dest->type = FF_RAMP;
if (SDL_SYS_ToDirection(&dest->direction, &ramp->direction) == -1) {
return -1;
if (!SDL_SYS_ToDirection(&dest->direction, &ramp->direction)) {
return false;
}
// Replay
@@ -912,13 +909,13 @@ static int SDL_SYS_ToFFEffect(struct ff_effect *dest, const SDL_HapticEffect *sr
return SDL_SetError("Haptic: Unknown effect type.");
}
return 0;
return true;
}
/*
* Creates a new haptic effect.
*/
int SDL_SYS_HapticNewEffect(SDL_Haptic *haptic, struct haptic_effect *effect,
bool SDL_SYS_HapticNewEffect(SDL_Haptic *haptic, struct haptic_effect *effect,
const SDL_HapticEffect *base)
{
struct ff_effect *linux_effect;
@@ -927,12 +924,12 @@ int SDL_SYS_HapticNewEffect(SDL_Haptic *haptic, struct haptic_effect *effect,
effect->hweffect = (struct haptic_hweffect *)
SDL_calloc(1, sizeof(struct haptic_hweffect));
if (!effect->hweffect) {
return -1;
return false;
}
// Prepare the ff_effect
linux_effect = &effect->hweffect->effect;
if (SDL_SYS_ToFFEffect(linux_effect, base) != 0) {
if (!SDL_SYS_ToFFEffect(linux_effect, base)) {
goto new_effect_err;
}
linux_effect->id = -1; // Have the kernel give it an id
@@ -944,12 +941,12 @@ int SDL_SYS_HapticNewEffect(SDL_Haptic *haptic, struct haptic_effect *effect,
goto new_effect_err;
}
return 0;
return true;
new_effect_err:
SDL_free(effect->hweffect);
effect->hweffect = NULL;
return -1;
return false;
}
/*
@@ -958,15 +955,15 @@ new_effect_err:
* Note: Dynamically updating the direction can in some cases force
* the effect to restart and run once.
*/
int SDL_SYS_HapticUpdateEffect(SDL_Haptic *haptic,
bool SDL_SYS_HapticUpdateEffect(SDL_Haptic *haptic,
struct haptic_effect *effect,
const SDL_HapticEffect *data)
{
struct ff_effect linux_effect;
// Create the new effect
if (SDL_SYS_ToFFEffect(&linux_effect, data) != 0) {
return -1;
if (!SDL_SYS_ToFFEffect(&linux_effect, data)) {
return false;
}
linux_effect.id = effect->hweffect->effect.id;
@@ -980,13 +977,13 @@ int SDL_SYS_HapticUpdateEffect(SDL_Haptic *haptic,
SDL_memcpy(&effect->hweffect->effect, &linux_effect,
sizeof(struct ff_effect));
return effect->hweffect->effect.id;
return true;
}
/*
* Runs an effect.
*/
int SDL_SYS_HapticRunEffect(SDL_Haptic *haptic, struct haptic_effect *effect,
bool SDL_SYS_HapticRunEffect(SDL_Haptic *haptic, struct haptic_effect *effect,
Uint32 iterations)
{
struct input_event run;
@@ -1001,13 +998,13 @@ int SDL_SYS_HapticRunEffect(SDL_Haptic *haptic, struct haptic_effect *effect,
return SDL_SetError("Haptic: Unable to run the effect: %s", strerror(errno));
}
return 0;
return true;
}
/*
* Stops an effect.
*/
int SDL_SYS_HapticStopEffect(SDL_Haptic *haptic, struct haptic_effect *effect)
bool SDL_SYS_HapticStopEffect(SDL_Haptic *haptic, struct haptic_effect *effect)
{
struct input_event stop;
@@ -1020,7 +1017,7 @@ int SDL_SYS_HapticStopEffect(SDL_Haptic *haptic, struct haptic_effect *effect)
strerror(errno));
}
return 0;
return true;
}
/*
@@ -1050,19 +1047,21 @@ int SDL_SYS_HapticGetEffectStatus(SDL_Haptic *haptic,
ie.code = effect->hweffect->effect.id;
if (write(haptic->hwdata->fd, &ie, sizeof(ie)) < 0) {
return SDL_SetError("Haptic: Error getting device status.");
SDL_SetError("Haptic: Error getting device status.");
return -1;
}
return 0;
return 1;
#endif
SDL_Unsupported();
return -1;
}
/*
* Sets the gain.
*/
int SDL_SYS_HapticSetGain(SDL_Haptic *haptic, int gain)
bool SDL_SYS_HapticSetGain(SDL_Haptic *haptic, int gain)
{
struct input_event ie;
@@ -1074,13 +1073,13 @@ int SDL_SYS_HapticSetGain(SDL_Haptic *haptic, int gain)
return SDL_SetError("Haptic: Error setting gain: %s", strerror(errno));
}
return 0;
return true;
}
/*
* Sets the autocentering.
*/
int SDL_SYS_HapticSetAutocenter(SDL_Haptic *haptic, int autocenter)
bool SDL_SYS_HapticSetAutocenter(SDL_Haptic *haptic, int autocenter)
{
struct input_event ie;
@@ -1092,29 +1091,29 @@ int SDL_SYS_HapticSetAutocenter(SDL_Haptic *haptic, int autocenter)
return SDL_SetError("Haptic: Error setting autocenter: %s", strerror(errno));
}
return 0;
return true;
}
/*
* Pausing is not supported atm by linux.
*/
int SDL_SYS_HapticPause(SDL_Haptic *haptic)
bool SDL_SYS_HapticPause(SDL_Haptic *haptic)
{
return -1;
return SDL_Unsupported();
}
/*
* Unpausing is not supported atm by linux.
*/
int SDL_SYS_HapticUnpause(SDL_Haptic *haptic)
bool SDL_SYS_HapticResume(SDL_Haptic *haptic)
{
return -1;
return SDL_Unsupported();
}
/*
* Stops all the currently playing effects.
*/
int SDL_SYS_HapticStopAll(SDL_Haptic *haptic)
bool SDL_SYS_HapticStopAll(SDL_Haptic *haptic)
{
int i, ret;
@@ -1127,7 +1126,7 @@ int SDL_SYS_HapticStopAll(SDL_Haptic *haptic)
}
}
}
return 0;
return true;
}
#endif // SDL_HAPTIC_LINUX