supertux/main, control/haptic_manager: Add SDL 1.2 compatibility code. ff/haptic
authorFlorian Forster <octo@leeloo.lan.home.verplant.org>
Fri, 15 Jan 2010 15:51:13 +0000 (16:51 +0100)
committerFlorian Forster <octo@leeloo.lan.home.verplant.org>
Sun, 21 Feb 2010 07:58:50 +0000 (08:58 +0100)
src/control/haptic_manager.cpp
src/supertux/main.cpp

index 826d3ff..cda5782 100644 (file)
@@ -19,6 +19,7 @@
 #include "control/haptic_manager.hpp"
 #include "util/log.hpp"
 
+#if SDL_VERSION_ATLEAST(1,3,0)
 HapticManager::HapticManager () /* {{{ */
 {
   int i;
@@ -90,5 +91,20 @@ void HapticManager::playEffect (haptic_effect_t idx) { /* {{{ */
   SDL_HapticRunEffect (_device, _effect_ids[idx],
       /* iterations = */ 1);
 } /* }}} void playEffect */
+#else /* if SDL < 1.3 */
+/* If the SDL version is too old, provide dummy methods that don't to anything.
+ * This avoid using defines all over the place. */
+HapticManager::HapticManager () {
+  log_debug << "Haptic manager: Disabled because SDL version is too old." << std::endl;
+}
+
+void HapticManager::addJoystick (SDL_Joystick *j) {
+  /* do nothing. */
+}
+
+void HapticManager::playEffect (haptic_effect_t idx) {
+  /* do nothing. */
+}
+#endif /* SDL < 1.3 */
 
 /* vim: set sw=2 sts=2 et fdm=marker : */
index 48c2b7e..1a05161 100644 (file)
@@ -401,7 +401,14 @@ Main::parse_commandline(int argc, char** argv)
 void
 Main::init_sdl()
 {
-  if(SDL_Init(SDL_INIT_TIMER | SDL_INIT_VIDEO | SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC) < 0) {
+  int init_flags;
+
+  init_flags = SDL_INIT_TIMER | SDL_INIT_VIDEO | SDL_INIT_JOYSTICK;
+#ifdef SDL_INIT_HAPTIC
+  init_flags |= SDL_INIT_HAPTIC;
+#endif
+
+  if(SDL_Init(init_flags) < 0) {
     std::stringstream msg;
     msg << "Couldn't initialize SDL: " << SDL_GetError();
     throw std::runtime_error(msg.str());