Logitech Controller Input SDK for PC Copyright (C) 2009 Logitech Inc. All Rights Reserved Introduction -------------------------------------------------------------------------- This package enables developers to easily add support in their games for hot plug/unplug of game controllers, and enables to gracefully combine XInput and DirectInput devices. Any controller simply gets a number upon plug in corresponding to the lowest number available (from 0 to 3), and then the developer can get both positional and descriptive information about the controller (such as whether it is XInput or DirectInput, friendly name, VID/PID, connection status including connection based on manufacturer type and product name, and whether it supports force feedback/rumble or not). Furthermore the developer can get the device handle for DirectInput devices in order for example to do force feedback, or the XInput ID to do rumble or other XInput operations. NOTE: a game controller is any device that will appear in "Control Panel/Game Controllers" in Windows. Contents of the package -------------------------------------------------------------------------- - Logitech Controller Input SDK Source Files - Demo executable - Documentation - Sample in-game implementation program file The environment for use of the package -------------------------------------------------------------------------- 1. Microsoft DirectX 9 SDK or higher (http://msdn.microsoft.com/downloads) 2. DirectX Runtime 9.0c or higher (October 2006 update or higher). 3. Visual Studio 2005 to build and run the demo program 4. Drivers installed for particular wheels/joysticks/rumble pads. For example if using Logitech wheels/joysticks/rumble pads make sure the latest Gaming Software is installed (http://www.logitech.com/index.cfm/support_downloads/&cl=us,en). Testing setup -------------------------------------------------------------------------- Devices used Logitech gamepads - Cordless Rumblepad 2 - Rumblepad 2 Vibration Feedback Gamepad - Dual Action Gamepad - Precision Gamepad 2 Logitech wheels - G27 - G25 - Driving Force Pro - MOMO Racing - Formula Force GP - NASCAR Racing Wheel - Formula GP Logitech joysticks - G940 - Force 3D Pro - Freedom 2.4 Cordless Joystick - Force 3D - Extreme 3D Pro - Attack 3 Joystick Microsoft - Sidewinder Force Feedback 2 (Stick) - Sidewinder Force (Wheel) Other (Immersion drivers) - Gravis gamepad (XTerminator Force) Operating Systems - Windows XP/Vista DirectX versions - 9.0c Disclaimer -------------------------------------------------------------------------- This is work in progress. If you find anything wrong with either documentation or code, please let us know so we can improve on it. Where to start -------------------------------------------------------------------------- For a demo program to try plugging and unplugging controllers and getting their X axis values and descriptive information: Execute ControllerInputSDKDemo.exe. Or: 1. Go to Samples/ControllerInputSDKDemo folder and open the project in Visual Studio. 2. Set the DirectX SDK include and lib folders in Visual Studio. 3. Compile and run. 4. Plug in one or multiple PC wheel, joystick, gamepad or other game controllers at any time. To implement game controller support in your game: 1. Copy the following source files from the Src folder to your game: - LogiControllerInput.h/cpp - LogiGameController.h/cpp - LogiGameControllerDI.h/cpp - LogiGameControllerXInput.h/cpp - LogiControllerInputGlobals.h - LogiControllerInputUtils.h/cpp 2. Read and follow Doc/SampleInGameImplementation.cpp 3. Check method details in Doc/api.html For questions/problems/suggestions email to: cj@wingmanteam.com roland@wingmanteam.com End-User License Agreement for Logitech Controller Input SDK Agreement This End-User License Agreement for Logitech Controller Input SDK Agreement ( "Agreement") is a legal agreement between you, either an individual or legal entity ("You" or "you") and Logitech Inc. ("Logitech") for the pre-release alpha test version of the Logitech Controller Input software development kit, which includes computer software and related media and documentation (hereinafter "Controller Input SDK"). By installing, copying or otherwise using the Controller Input SDK, you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not install or use the Controller Input SDK. 1 Grant of License and Restrictions. Logitech grants You a limited, non-exclusive, nontransferable license to install and use an unlimited number of copies of the Controller Input SDK on computers for any purpose. All other rights are reserved to Logitech. 2 Intellectual Property Rights. The Controller Input SDK is licensed, not sold, to You for use only under the terms and conditions of this Agreement. Logitech and its suppliers retain title to the Controller Input SDK and all intellectual property rights therein. The Controller Input SDK is protected by intellectual property laws and international treaties, including U.S. copyright law and international copyright treaties. All rights not expressly granted by Logitech are reserved. 3 Disclaimer of Warranty. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, LOGITECH AND ITS SUPPLIERS PROVIDE THE CONTROLLER INPUT SDK AND OTHER LOGITECH PRODUCTS AND SERVICES (IF ANY) AS IS AND WITHOUT WARRANTY OF ANY KIND. LOGITECH AND ITS SUPPLIERS EXPRESSLY DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD-PARTY RIGHTS WITH RESPECT TO THE CONTROLLER INPUT SDK AND ANY WARRANTIES OF NON-INTERFERENCE OR ACCURACY OF INFORMATIONAL CONTENT. NO LOGITECH DEALER, AGENT, OR EMPLOYEE IS AUTHORIZED TO MAKE ANY MODIFICATION, EXTENSION, OR ADDITION TO THIS WARRANTY. Some jurisdictions do not allow limitations on how long an implied warranty lasts, so the above limitation may not apply to you. 4 Limitation of Liability. IN NO EVENT WILL LOGITECH OR ITS SUPPLIERS BE LIABLE FOR ANY COSTS OF PROCUREMENT OF SUBSTITUTE PRODUCTS OR SERVICES, LOST PROFITS, LOSS OF INFORMATION OR DATA, OR ANY OTHER SPECIAL, INDIRECT, CONSEQUENTIAL, OR INCIDENTAL DAMAGES ARISING IN ANY WAY OUT OF THE SALE OF, USE OF, OR INABILITY TO USE THE CONTROLLER INPUT SDK OR ANY LOGITECH PRODUCT OR SERVICE, EVEN IF LOGITECH HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN NO CASE SHALL LOGITECH'S AND ITS SUPPLIERS' TOTAL LIABILITY EXCEED THE ACTUAL MONEY PAID FOR THE LOGITECH PRODUCT OR SERVICE GIVING RISE TO THE LIABILITY. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so the above limitation or exclusion may not apply to you. The above limitations will not apply in case of personal injury where and to the extent that applicable law requires such liability.