game engine now compiles with SDL disabled. CDROM and Joystick wont function in this...
authorCampbell Barton <ideasman42@gmail.com>
Sun, 21 Sep 2008 05:38:28 +0000 (05:38 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sun, 21 Sep 2008 05:38:28 +0000 (05:38 +0000)
intern/SoundSystem/SConscript
intern/SoundSystem/sdl/SND_SDLCDDevice.cpp
source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
source/gameengine/GameLogic/Joystick/SCA_Joystick.h
source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp
source/gameengine/GameLogic/Joystick/SCA_JoystickPrivate.h
source/gameengine/GameLogic/SCA_JoystickManager.cpp
source/gameengine/GameLogic/SConscript

index baf680f03f0df7926a164aeb1816834ee018c2c7..be19c4b791535fb3f07125075dca1f30baa94570 100644 (file)
@@ -14,4 +14,7 @@ if env['WITH_BF_OPENAL']:
 else:
        defs = 'NO_SOUND'
 
+if not env['WITH_BF_SDL']:
+       defs += ' DISABLE_SDL'
+
 env.BlenderLib ('bf_soundsystem', sources, Split(incs), Split(defs), libtype=['core','player'], priority = [20,140] )
index 8bb6c642b114e0cd82f9f14e721b89f9cd110c37..0ab0fa94c7b74a4d06ecd10e7ede0bf924926d52 100644 (file)
@@ -55,6 +55,10 @@ SND_SDLCDDevice::SND_SDLCDDevice() :
 
 void SND_SDLCDDevice::init()
 {
+#ifdef DISABLE_SDL
+       fprintf(stderr, "Blender compiled without SDL, no CDROM support\n");
+       return;
+#else
        if (SDL_InitSubSystem(SDL_INIT_CDROM))
        {
                fprintf(stderr, "Error initializing CDROM\n");
@@ -75,19 +79,23 @@ void SND_SDLCDDevice::init()
        /* Did if open? Check if cdrom is NULL */
        if(!m_cdrom)
        {
-               fprintf(stderr, "Couldn't open drive: %s", SDL_GetError());
+               fprintf(stderr, "Couldn't open drive: %s\n", SDL_GetError());
                return;
        }
+#endif
 }
 
 SND_SDLCDDevice::~SND_SDLCDDevice()
 {
+#ifndef DISABLE_SDL
        StopCD();
        SDL_CDClose(m_cdrom);
+#endif
 }
 
 void SND_SDLCDDevice::NextFrame()
 {
+#ifndef DISABLE_SDL
        m_frame++;
        m_frame &= 127;
        
@@ -111,20 +119,24 @@ void SND_SDLCDDevice::NextFrame()
                }
        
        }
+#endif
 }
        
 void SND_SDLCDDevice::PlayCD(int track)
 {
+#ifndef DISABLE_SDL
        if ( m_cdrom && CD_INDRIVE(SDL_CDStatus(m_cdrom)) ) {
                SDL_CDPlayTracks(m_cdrom, track-1, 0, track, 0);
                m_cdplaying = true;
                m_cdtrack = track;
        }
+#endif
 }
 
 
 void SND_SDLCDDevice::PauseCD(bool pause)
 {
+#ifndef DISABLE_SDL
        if (!m_cdrom)
                return;
                
@@ -132,13 +144,16 @@ void SND_SDLCDDevice::PauseCD(bool pause)
                SDL_CDPause(m_cdrom);
        else
                SDL_CDResume(m_cdrom);
+#endif
 }
 
 void SND_SDLCDDevice::StopCD()
 {
+#ifndef DISABLE_SDL
        if (m_cdrom)
                SDL_CDStop(m_cdrom);
        m_cdplaying = false;
+#endif
 }
 
 void SND_SDLCDDevice::SetCDPlaymode(int playmode)
index 06002060bf1b5a8ad2644a672ef79d713ccb181b..092956e6489748341c2873eac14e484072af32b0 100644 (file)
@@ -42,14 +42,18 @@ SCA_Joystick::SCA_Joystick(short int index)
        m_isinit(0),
        m_istrig(0)
 {
+#ifndef DISABLE_SDL
        m_private = new PrivateData();
+#endif
 }
 
 
 SCA_Joystick::~SCA_Joystick()
 
 {
+#ifndef DISABLE_SDL
        delete m_private;
+#endif
 }
 
 SCA_Joystick *SCA_Joystick::m_instance[JOYINDEX_MAX];
@@ -57,6 +61,9 @@ int SCA_Joystick::m_refCount = 0;
 
 SCA_Joystick *SCA_Joystick::GetInstance( short int joyindex )
 {
+#ifdef DISABLE_SDL
+       return NULL;
+#else
        if (joyindex < 0 || joyindex >= JOYINDEX_MAX) {
                echo("Error-invalid joystick index: " << joyindex);
                return NULL;
@@ -81,12 +88,14 @@ SCA_Joystick *SCA_Joystick::GetInstance( short int joyindex )
                m_refCount++;
        }
        return m_instance[joyindex];
+#endif
 }
 
 void SCA_Joystick::ReleaseInstance()
 {
        if (--m_refCount == 0)
        {
+#ifndef DISABLE_SDL
                int i;
                for (i=0; i<JOYINDEX_MAX; i++) {
                        if (m_instance[i]) {
@@ -95,7 +104,9 @@ void SCA_Joystick::ReleaseInstance()
                        }
                        m_instance[i]= NULL;
                }
+
                SDL_QuitSubSystem(SDL_INIT_JOYSTICK | SDL_INIT_VIDEO );
+#endif
        }
 }
 
@@ -147,19 +158,27 @@ bool SCA_Joystick::aDownAxisIsPositive(int axis)
 
 bool SCA_Joystick::aButtonPressIsPositive(int button)
 {
+#ifdef DISABLE_SDL
+       return false;
+#else
        bool result;
        SDL_JoystickGetButton(m_private->m_joystick, button)? result = true:result = false;
        m_istrig = result;
        return result;
+#endif
 }
 
 
 bool SCA_Joystick::aButtonReleaseIsPositive(int button)
 {
+#ifdef DISABLE_SDL
+       return false;
+#else
        bool result;
        SDL_JoystickGetButton(m_private->m_joystick, button)? result = false : result = true;
        m_istrig = result;
        return result;
+#endif
 }
 
 
@@ -199,6 +218,9 @@ int SCA_Joystick::pGetHat(int direction)
 
 int SCA_Joystick::GetNumberOfAxes()
 {
+#ifdef DISABLE_SDL
+       return -1;
+#else
        int number;
        if(m_isinit){
                if(m_private->m_joystick){
@@ -207,11 +229,15 @@ int SCA_Joystick::GetNumberOfAxes()
                }
        }
        return -1;
+#endif
 }
 
 
 int SCA_Joystick::GetNumberOfButtons()
 {
+#ifdef DISABLE_SDL
+       return -1;
+#else
        int number;
        if(m_isinit){
                if(m_private->m_joystick){
@@ -220,11 +246,15 @@ int SCA_Joystick::GetNumberOfButtons()
                }
        }
        return -1;
+#endif
 }
 
 
 int SCA_Joystick::GetNumberOfHats()
 {
+#ifdef DISABLE_SDL
+       return -1;
+#else
        int number;
        if(m_isinit){
                if(m_private->m_joystick){
@@ -233,10 +263,14 @@ int SCA_Joystick::GetNumberOfHats()
                }
        }
        return -1;
+#endif
 }
 
 bool SCA_Joystick::CreateJoystickDevice(void)
 {
+#ifdef DISABLE_SDL
+       return false;
+#else
        if(m_isinit == false){
                if (m_joyindex>=SDL_NumJoysticks()) {
                        // don't print a message, because this is done anyway
@@ -251,11 +285,13 @@ bool SCA_Joystick::CreateJoystickDevice(void)
                m_isinit = true;
        }
        return true;
+#endif
 }
 
 
 void SCA_Joystick::DestroyJoystickDevice(void)
 {
+#ifndef DISABLE_SDL
        if (m_isinit){
                if(SDL_JoystickOpened(m_joyindex)){
                        echo("Closing-joystick " << m_joyindex);
@@ -263,21 +299,21 @@ void SCA_Joystick::DestroyJoystickDevice(void)
                }
                m_isinit = false;
        }
+#endif
 }
 
 int SCA_Joystick::Connected(void)
 {
-       if (m_isinit){
-               if(SDL_JoystickOpened(m_joyindex)){
-                       return 1;
-               }
-       }
-       
+#ifndef DISABLE_SDL
+       if (m_isinit && SDL_JoystickOpened(m_joyindex))
+               return 1;
+#endif
        return 0;
 }
 
 void SCA_Joystick::pFillAxes()
 {
+#ifndef DISABLE_SDL
        if(GetNumberOfAxes() == 1){
                m_axis10 = SDL_JoystickGetAxis(m_private->m_joystick, 0);
                m_axis11 = SDL_JoystickGetAxis(m_private->m_joystick, 1);
@@ -287,18 +323,20 @@ void SCA_Joystick::pFillAxes()
                m_axis20 = SDL_JoystickGetAxis(m_private->m_joystick, 2);
                m_axis21 = SDL_JoystickGetAxis(m_private->m_joystick, 3);
        }else{
-               m_axis10 = 0;m_axis11 = 0;
-               m_axis20 = 0;m_axis21 = 0;
+               m_axis10 = m_axis11 = m_axis20 = m_axis21 = 0;
        }
+#endif
 }
 
 
 int SCA_Joystick::pGetAxis(int axisnum, int udlr)
 {
+#ifndef DISABLE_SDL
        if(axisnum == 1 && udlr == 1)return m_axis10; //u/d
        if(axisnum == 1 && udlr == 0)return m_axis11; //l/r
        if(axisnum == 2 && udlr == 0)return m_axis20; //...
        if(axisnum == 2 && udlr == 1)return m_axis21;
+#endif
        return 0;
 }
 
index bcbb43241c2e83c99cb07696446c9e50c6661b97..ea7ecf7cefeaceb9b2a7452d1a495f42edbef370 100644 (file)
@@ -45,9 +45,9 @@ class SCA_Joystick
        static int m_refCount;
 
        class PrivateData;
-
+#ifndef DISABLE_SDL
        PrivateData             *m_private;
-
+#endif
        int                             m_joyindex;
 
        /* 
@@ -104,6 +104,7 @@ class SCA_Joystick
        /* is triggered */
        bool                    m_istrig;
 
+#ifndef DISABLE_SDL
        /*
         * event callbacks
         */
@@ -113,7 +114,7 @@ class SCA_Joystick
        void OnButtonDown(SDL_Event *sdl_event);
        void OnNothing(SDL_Event *sdl_event);
        void OnBallMotion(SDL_Event *sdl_event){}
-
+#endif
        /*
         * Open the joystick
         */
@@ -226,8 +227,9 @@ public:
         */
        int Connected(void);
 };
-
+#ifndef        DISABLE_SDL
 void Joystick_HandleEvents( void );
+#endif
 
 #endif
 
index 1e064f553970266e132dd4aa4eb4408bb1f59094..0e2078265c9e5b3be48a7bcd67b042a6c6ce3d16 100644 (file)
@@ -29,7 +29,7 @@
 #include "SCA_JoystickPrivate.h"
 
 
-
+#ifndef DISABLE_SDL
 void SCA_Joystick::OnAxisMotion(SDL_Event* sdl_event)
 {
        pFillAxes();
@@ -102,3 +102,4 @@ void SCA_Joystick::HandleEvents(void)
                }
        }
 }
+#endif
index bb6bfe2d4cc099c3816c8673dcf67e7bca45c261..acbbcae9cd725671f066a93a3ebc939756043a07 100644 (file)
@@ -29,6 +29,7 @@
 #define __SCA_JOYSTICKPRIVATE_H__
 #include "SCA_Joystick.h"
 
+#ifndef DISABLE_SDL
 class SCA_Joystick::PrivateData
 {
 public:
@@ -43,3 +44,5 @@ public:
        }
 };
 #endif
+
+#endif
index a86770a6e0a0ed4f2c2fb689bea3fa4dd7aeb0b8..d874b5b013a5348b5fd49c8e36e87ceb2580802e 100644 (file)
@@ -63,9 +63,9 @@ void SCA_JoystickManager::NextFrame(double curtime,double deltatime)
        }
        else {
                set<SCA_ISensor*>::iterator it;
-       
+#ifndef        DISABLE_SDL
                SCA_Joystick::HandleEvents(); /* Handle all SDL Joystick events */
-       
+#endif
                for (it = m_sensors.begin(); it != m_sensors.end(); it++)
                {
                        SCA_JoystickSensor* joysensor = (SCA_JoystickSensor*)(*it);
index 1ca884f6dec2788c4e8f3a3b0171f0a40edcd64c..fa5a3123215a45958f6f0406ac5612b090e4c0e7 100644 (file)
@@ -10,4 +10,9 @@ incs += ' #/source/gameengine/Rasterizer'
 incs += ' ' + env['BF_PYTHON_INC']
 incs += ' ' + env['BF_SDL_INC']
 
-env.BlenderLib ( 'bf_logic', sources, Split(incs), [], libtype=['game','player'], priority=[30, 110] )
+defs = ''
+
+if not env['WITH_BF_SDL']:
+       defs += ' DISABLE_SDL'
+
+env.BlenderLib ( 'bf_logic', sources, Split(incs), Split(defs), libtype=['game','player'], priority=[30, 110] )