/*****************************************************************************
 * $LastChangedDate: 2009-11-07 22:56:33 -0500 (Sat, 07 Nov 2009) $
 * @file
 * @author  Jim E. Brooks  http://www.palomino3d.org
 * @brief   NOP Joystick class to run without joystick support.
 *//*
 * LEGAL:   COPYRIGHT (C) 2007 JIM E. BROOKS
 *          THIS SOURCE CODE IS RELEASED UNDER THE TERMS
 *          OF THE GNU GENERAL PUBLIC LICENSE VERSION 2 (GPL 2).
 *****************************************************************************/

#ifndef INPUT_DEVICE_JOYSTICK_NOP_HH
#define INPUT_DEVICE_JOYSTICK_NOP_HH 1

#include "input/device_joystick.hh"

namespace input {

////////////////////////////////////////////////////////////////////////////////
/// @brief NOP Joystick class to run without joystick support.
///
/// This is a private implementation of JoystickDevice.
///
class JoystickDeviceNop : public JoystickDevice
{
PREVENT_COPYING(JoystickDeviceNop)
friend class JoystickDevice;  // for JoystickDevice::GetInstance()
private:
                    JoystickDeviceNop( void ) { }
    virtual         ~JoystickDeviceNop() { }

// Abstract methods to implement:
    virtual bool    EnableDevice( void ) { return false; }
    virtual bool    PollJoystickDevice( JoystickEvent& event )  // Template Method pattern
                    { event.Clear(); return false; }
    virtual void    PrintStatus( void ) { }
};

} // namespace input

#endif // INPUT_DEVICE_JOYSTICK_NOP_HH
