Merge pull request #59 from zsbzsb/feature/joystick_identification

Added support for joystick identification
This commit is contained in:
Laurent Gomila committed 2015-02-24 20:20:59 +01:00
commit a7ff14c407
4 files changed
+76

No files matched your search

+14
View File
@@ -29,6 +29,7 @@
// Headers
////////////////////////////////////////////////////////////
#include <SFML/Window/Export.h>
#include <SFML/Window/JoystickIdentification.h>
////////////////////////////////////////////////////////////
@@ -121,6 +122,19 @@ CSFML_WINDOW_API sfBool sfJoystick_isButtonPressed(unsigned int joystick, unsign
////////////////////////////////////////////////////////////
CSFML_WINDOW_API float sfJoystick_getAxisPosition(unsigned int joystick, sfJoystickAxis axis);
////////////////////////////////////////////////////////////
/// \brief Get the joystick information
///
/// The result of this function will only remain valid until
/// the next time the function is called.
///
/// \param joystick Index of the joystick
///
/// \return Structure containing joystick information.
///
////////////////////////////////////////////////////////////
CSFML_WINDOW_API sfJoystickIdentification sfJoystick_getIdentification(unsigned int joystick);
////////////////////////////////////////////////////////////
/// \brief Update the states of all joysticks
///
@@ -0,0 +1,45 @@
////////////////////////////////////////////////////////////
//
// SFML - Simple and Fast Multimedia Library
// Copyright (C) 2007-2014 Laurent Gomila (laurent.gom@gmail.com)
//
// This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it freely,
// subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented;
// you must not claim that you wrote the original software.
// If you use this software in a product, an acknowledgment
// in the product documentation would be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such,
// and must not be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source distribution.
//
////////////////////////////////////////////////////////////
#ifndef SFML_JOYSTICKIDENDIFICATION_H
#define SFML_JOYSTICKIDENDIFICATION_H
////////////////////////////////////////////////////////////
// Headers
////////////////////////////////////////////////////////////
#include <SFML/Window/Export.h>
////////////////////////////////////////////////////////////
/// sfJoystickIdentification holds a joystick's identification
////////////////////////////////////////////////////////////
typedef struct
{
const char* name;
unsigned int vendorId;
unsigned int productId;
} sfJoystickIdentification;
#endif // SFML_JOYSTICKIDENDIFICATION_H
+1
View File
@@ -11,6 +11,7 @@ set(SRC
${INCROOT}/Event.h
${SRCROOT}/Joystick.cpp
${INCROOT}/Joystick.h
${INCROOT}/JoystickIdentification.h
${SRCROOT}/Keyboard.cpp
${INCROOT}/Keyboard.h
${SRCROOT}/Mouse.cpp
+16
View File
@@ -64,6 +64,22 @@ float sfJoystick_getAxisPosition(unsigned int joystick, sfJoystickAxis axis)
return sf::Joystick::getAxisPosition(joystick, static_cast<sf::Joystick::Axis>(axis));
}
////////////////////////////////////////////////////////////
sfJoystickIdentification sfJoystick_getIdentification(unsigned int joystick)
{
static std::string name;
sf::Joystick::Identification identification = sf::Joystick::getIdentification(joystick);
name = identification.name;
sfJoystickIdentification result;
result.name = name.c_str();
result.productId = identification.productId;
result.vendorId = identification.vendorId;
return result;
}
////////////////////////////////////////////////////////////
void sfJoystick_update(void)