Convert readme and changelog to markdown format

This commit is contained in:
Ryan Pavlik
2011-06-20 10:47:17 -05:00
parent 12066cf9ad
commit 5d377f901a
5 changed files with 580 additions and 452 deletions

280
CHANGELOG
View File

@@ -1,280 +0,0 @@
---------------------------
-
- CHANGE LOG - Wiiuse
-
---------------------------
Fork, located at: http://github.com/rpavlik/wiiuse
Original project:
http://wiiuse.net/
http://wiiuse.sourceforge.net/
http://sourceforge.net/projects/wiiuse/
---------------------------
v0.15 -- ???
---------------------------
Added:
- Callback API with constant-size wiimote_callback_data_t.
Added to more easily support a ctypes python binding, generated
by and included with RPythonic http://code.google.com/p/rpythonic/
Thanks to hartsantler for this feature.
Fixed:
-
Changed:
-
---------------------------
v0.14 -- 2 May 2011
---------------------------
Added:
- Support for redirecting or disabling messages: function
wiiuse_set_output in wiiuse.h. The preprocessor symbol
WIIUSE_HAS_OUTPUT_REDIRECTION indicates the presence of this
feature. Thanks to Johannes Zarl for this handy feature!
- Doxyfile and "doc" target to the build system, to easily make
use of the documentation already in the code, along with doc
cleanups and improvements. (rp)
- Added balance board code to example (Paul Burton, rp)
Fixed:
- Off-by-two overflow in IR dot ordering - thanks to Karl Semich (xloem on GitHub)
- Documentation typo fix - thanks to Johannes Zarl
- Check malloc results. (rp)
- Initialize an array entirely. (rp)
- Fixed reading of balance board data. (rp)
Changed:
- Cleaned up README. (rp)
- Removed references to the LGPL/noncommercial license, since it's
confusing and not useful in a practical sense. See, e.g.,
http://lists.fedoraproject.org/pipermail/legal/2010-November/001470.html
- Renamed bundled workaround stdint.h header for Visual Studio,
which we still have to use on MSVC 2010 for some unknown reason. (rp)
---------------------------
v0.13.1 -- 11 November 2010
---------------------------
Fixed:
- Fix crashers due to unchecked pointer use.
- [Windows] Fix crashers due to unchecked pointer use.
---------------------------
v0.13 -- 11 November 2010
---------------------------
Added:
- Support for Wii Balance Board ("wiiboard"): your code can
#ifdef EXP_WII_BOARD (support based in part on
code from TU-Delft)
- CMake-based cross-platform build system
- Version defines in wiiuse.h
Fixed:
- [Linux] Bluez issue with not initializing structure on newer kernels
- Use stdint.h types for guaranteed type size independent of platform
- Bundle a suitable stdint.h for MSVC builds
- Setting IR to off before handshake complete actually respected now.
(fix via Harald <Gotterdammerung@web.de>)
Changed:
- Old makefiles and Visual Studio projects removed.
- CMake allows easy building of binary packages with a uniform
directory structure: .dll/.exe in bin, .lib/.so in lib, .h in
include.
---------------------------
v0.12 -- 2 Apr 2008
---------------------------
Added:
- API function wiiuse_set_ir_sensitivity()
- Macro WIIUSE_GET_IR_SENSITIVITY()
- Event type WIIUSE_READ_DATA
- Event type WIIUSE_UNEXPECTED_DISCONNECT
Fixed:
- [Linux] Ability to try to select() nothing
- [Linux] Changed Makefile to include debug output when compiling in debug mode
Changed:
- wiiuse_set_nunchuk_orient_threshold() now takes a wiimote_t pointer
- wiiuse_set_nunchuk_accel_threshold() now takes a wiimote_t pointer
- wiiuse_read_data() generates an event WIIUSE_READ_DATA rather than executing a callback
---------------------------
v0.11 -- 25 Feb 2008
---------------------------
Added:
- API function wiiuse_set_nunchuk_orient_threshold()
- API function wiiuse_set_nunchuk_accel_threshold()
- Event type WIIUSE_NUNCHUK_INSERTED
- Event type WIIUSE_NUNCHUK_REMOVED
- Event type WIIUSE_CLASSIC_CTRL_INSERTED
- Event type WIIUSE_CLASSIC_CTRL_REMOVED
- Event type WIIUSE_GUITAR_HERO_3_CTRL_INSERTED
- Event type WIIUSE_GUITAR_HERO_3_CTRL_REMOVED
Fixed:
- Added some missing function prototypes to wiiuse.h
- [Linux] Fixed Makefile to link libmath and libbluetooth
- Status event is set when a status report comes in
- Orientation threshold not being saved in lstate
---------------------------
v0.10 -- 11 Feb 2008
---------------------------
Added:
- Real dynamic linking (by noisehole)
- Changed from callback to SDL style
- Guitar Hero 3 controller support
- API function wiiuse_set_accel_threshold()
- API function wiiuse_version()
- Macro WIIUSE_USING_SPEAKER()
- Macro WIIUSE_IS_LED_SET(wm, num)
- wiiuse_init() now autogenerates unids
- orient_t::a_roll/a_pitch
- wiiuse_resync()
- wiiuse_cleanup()
- wiiuse_set_timeout()
Fixed:
- [Windows] Fixed bug where it did not detect expansions on startup
- Renamed INFO/WARNING/DEBUG macros to WIIUSE_* (by noisehole)
- Updated Makefiles (by noisehole)
- Fixed incorrect roll/pitch when smoothing was enabled
- Fixed nunchuk and classic controller flooding events when significant changes occured
- Fixed bug where IR was not correct on roll if IR was enabled before handshake
Removed:
- wiiuse_startup(), no longer needed
---------------------------
v0.9 -- 3 Nov 2007
---------------------------
Fixed:
- Can now use include/wiiuse.h in C++ projects.
- HOME button works again.
- IR now functions after expansion is connected or removed.
---------------------------
v0.8 -- 27 Oct 2007
---------------------------
- Bumped API version to 8
- Exported all API functions for usage with non-C/C++ languages.
- Changed event callback to only trigger if a significant state change occurs.
Added:
- wiimote_t::lstate structure
Fixed:
- Bug 1820140 - Buffer overflow in io_nix.c. Thanks proppy.
---------------------------
v0.7 -- 19 Oct 2007
---------------------------
- Bumped API version to 7
- Renamed Linux build from wii.so to wiiuse.so
- Changed version representation from float to const char*.
Added:
- [Windows] BlueSoleil support.
- [Windows] Bluetooth stack auto-detection (WinXP SP2, Bluesoleil, Widdcomm tested).
- [Windows] API function wiiuse_set_bluetooth_stack().
- Calculates yaw if IR tracking is enabled.
Fixed:
- [Windows] Problem where a connection is made to a wiimote that does not exist.
- [Windows] Issue that occured while using multiple wiimotes.
---------------------------
v0.6 -- 16 Oct 2007
---------------------------
- Bumped API version to 0.6.
- Ported to Microsoft Windows.
- Improved IR tracking.
- Default IR virtual screen resolutions changed depending on 16:9 or 4:3.
Added:
- src/msvc/ and api/msvc/ - Microsoft Visual C++ 6.0 project files.
---------------------------
v0.5 -- 13 Oct 2007
---------------------------
- Bumped API version to 0.5.
- Greatly improved IR tracking.
- Renamed function wiiuse_set_ir_correction() to wiiuse_set_ir_position().
Added:
- API function wiiuse_set_aspect_ratio()
Fixed:
- When rolling around 180 degree rotation smoothing would not be seemless.
---------------------------
v0.4 -- 08 Oct 2007
---------------------------
- Bumped API version to 0.4.
- Greatly improved classic controller joystick functionality.
- Changed all functions named wiimote_*() to wiiuse_*()
- Renamed many macros from WIIMOTE_* to WIIUSE_*
Added:
- IR support
- New WIIMOTE_CONTINUOUS flag to set continuous reporting
- Macro IS_JUST_PRESSED()
- Macro WIIUSE_USING_ACC()
- Macro WIIUSE_USING_EXP()
- Macro WIIUSE_USING_IR()
- API function wiiuse_set_ir()
- API function wiiuse_set_ir_vres()
- API function wiiuse_set_ir_correction()
- gfx/ - A small OpenGL example that renders IR data
Fixed:
- Sometimes classic controller would only report infinite angle and magnitude for joysticks.
---------------------------
v0.3 -- 10 Sept 2007
---------------------------
- Moved license to GPLv3.
- Bumped API version to 0.3.
Added:
- Support for Classic Controller
- Smoothing for roll and pitch values of the wiimote and nunchuk.
- API: wiimote_set_flags() to set or disable wiimote options.
- API: wiimote_set_smooth_alpha() to set smoothing alpha value.
Fixed:
- When the wiimote accelerates the roll or pitch is unreliable and was set to 0.
It now remains at previous tilt value.
- If no event callback was specified then no events would be processed internally.
---------------------------
v0.2 -- 25 Aug 2007
---------------------------
- Bumped API version to 0.2.
Added:
- Nunchuk support.
- Ability to write to flash memory.
Fixed:
- Roll and pitch rotation now ranges from -180 to 180 degrees (previously -90 to 90).
- Bug when reading data from flash memory would read wrong address.
---------------------------
v0.1 -- 23 Feb 2007
---------------------------
- Initial release

386
CHANGELOG.mkd Normal file
View File

@@ -0,0 +1,386 @@
WiiUse Changelog
================
Fork, located at <http://github.com/rpavlik/wiiuse>
Original project:
- <http://wiiuse.net/>
- <http://wiiuse.sourceforge.net/>
- <http://sourceforge.net/projects/wiiuse/>
v0.15 -- ???
------------
Added:
- Callback API with constant-size wiimote_callback_data_t.
Added to more easily support a ctypes python binding, generated
by and included with RPythonic http://code.google.com/p/rpythonic/
Thanks to hartsantler for this feature.
Fixed:
Changed:
v0.14 -- 2 May 2011
-------------------
Added:
- Support for redirecting or disabling messages: function
`wiiuse_set_output` in `wiiuse.h`. The preprocessor symbol
`WIIUSE_HAS_OUTPUT_REDIRECTION` indicates the presence of this feature.
Thanks to Johannes Zarl for this handy feature!
- Doxyfile and "doc" target to the build system, to easily make use of
the documentation already in the code, along with doc cleanups and
improvements. (rp)
- Added balance board code to example (Paul Burton, rp)
Fixed:
- Off-by-two overflow in IR dot ordering - thanks to Karl Semich (xloem on GitHub)
- Documentation typo fix - thanks to Johannes Zarl
- Check malloc results. (rp)
- Initialize an array entirely. (rp)
- Fixed reading of balance board data. (rp)
Changed:
- Cleaned up README. (rp)
- Removed references to the LGPL/noncommercial license, since it's
confusing and not useful in a practical sense. See, e.g.,
<http://lists.fedoraproject.org/pipermail/legal/2010-November/001470.html>
- Renamed bundled workaround stdint.h header for Visual Studio, which
we still have to use on MSVC 2010 for some unknown reason. (rp)
v0.13.1 -- 11 November 2010
---------------------------
Fixed:
- Fix crashers due to unchecked pointer use.
- [Windows] Fix crashers due to unchecked pointer use.
v0.13 -- 11 November 2010
-------------------------
Added:
- Support for Wii Balance Board ("wiiboard"): your code can
`#ifdef EXP_WII_BOARD` (support based in part on code from TU-Delft)
- CMake-based cross-platform build system
- Version defines in `wiiuse.h`
Fixed:
- [Linux] Bluez issue with not initializing structure on newer kernels
- Use `stdint.h` types for guaranteed type size independent of platform
- Bundle a suitable `stdint.h` for MSVC builds
- Setting IR to off before handshake complete actually respected now.
(fix via Harald <Gotterdammerung@web.de>)
Changed:
- Old makefiles and Visual Studio projects removed.
- CMake allows easy building of binary packages with a uniform
directory structure: .dll/.exe in bin, .lib/.so in lib, .h in
include.
v0.12 -- 2 Apr 2008
-------------------
Added:
- API function `wiiuse_set_ir_sensitivity()`
- Macro `WIIUSE_GET_IR_SENSITIVITY()`
- Event type `WIIUSE_READ_DATA`
- Event type `WIIUSE_UNEXPECTED_DISCONNECT`
Fixed:
- [Linux] Ability to try to `select()` nothing
- [Linux] Changed Makefile to include debug output when compiling in debug mode
Changed:
- `wiiuse_set_nunchuk_orient_threshold()` now takes a`wiimote_t` pointer
- `wiiuse_set_nunchuk_accel_threshold()` now takes a `wiimote_t` pointer
- `wiiuse_read_data()` generates an event `WIIUSE_READ_DATA` rather than
executing a callback
v0.11 -- 25 Feb 2008
--------------------
Added:
- API function `wiiuse_set_nunchuk_orient_threshold()`
- API function `wiiuse_set_nunchuk_accel_threshold()`
- Event type `WIIUSE_NUNCHUK_INSERTED`
- Event type `WIIUSE_NUNCHUK_REMOVED`
- Event type `WIIUSE_CLASSIC_CTRL_INSERTED`
- Event type `WIIUSE_CLASSIC_CTRL_REMOVED`
- Event type `WIIUSE_GUITAR_HERO_3_CTRL_INSERTED`
- Event type `WIIUSE_GUITAR_HERO_3_CTRL_REMOVED`
Fixed:
- Added some missing function prototypes to wiiuse.h
- [Linux] Fixed Makefile to link libmath and libbluetooth
- Status event is set when a status report comes in
- Orientation threshold not being saved in lstate
v0.10 -- 11 Feb 2008
--------------------
Added:
- Real dynamic linking (by noisehole)
- Changed from callback to SDL style
- Guitar Hero 3 controller support
- API function `wiiuse_set_accel_threshold()`
- API function `wiiuse_version()`
- Macro `WIIUSE_USING_SPEAKER()`
- Macro `WIIUSE_IS_LED_SET(wm, num)`
- `wiiuse_init()` now autogenerates unids
- `orient_t::a_roll/a_pitch`
- `wiiuse_resync()`
- `wiiuse_cleanup()`
- `wiiuse_set_timeout()`
Fixed:
- [Windows] Fixed bug where it did not detect expansions on startup
- Renamed `INFO/WARNING/DEBUG` macros to `WIIUSE_*` (by noisehole)
- Updated Makefiles (by noisehole)
- Fixed incorrect roll/pitch when smoothing was enabled
- Fixed nunchuk and classic controller flooding events when significant changes occured
- Fixed bug where IR was not correct on roll if IR was enabled before handshake
Removed:
- `wiiuse_startup()`, no longer needed
v0.9 -- 3 Nov 2007
------------------
Fixed:
- Can now use `include/wiiuse.h` in C++ projects.
- HOME button works again.
- IR now functions after expansion is connected or removed.
v0.8 -- 27 Oct 2007
-------------------
Changed:
- Bumped API version to 8
- Exported all API functions for usage with non-C/C++ languages.
- Changed event callback to only trigger if a significant state change
occurs.
Added:
- `wiimote_t::lstate` structure
Fixed:
- Bug 1820140 - Buffer overflow in `io_nix.c`. Thanks proppy.
v0.7 -- 19 Oct 2007
-------------------
Changed:
- Bumped API version to 7
- Renamed Linux build from `wii.so` to `wiiuse.so`
- Changed version representation from float to const char*.
Added:
- [Windows] BlueSoleil support.
- [Windows] Bluetooth stack auto-detection (WinXP SP2, Bluesoleil,
Widdcomm tested).
- [Windows] API function `wiiuse_set_bluetooth_stack()`.
- Calculates yaw if IR tracking is enabled.
Fixed:
- [Windows] Problem where a connection is made to a wiimote that does
not exist.
- [Windows] Issue that occured while using multiple wiimotes.
v0.6 -- 16 Oct 2007
-------------------
Changed:
- Bumped API version to 0.6.
- Ported to Microsoft Windows.
- Improved IR tracking.
- Default IR virtual screen resolutions changed depending on 16:9 or 4:3.
Added:
- `src/msvc/` and `api/msvc/` - Microsoft Visual C++ 6.0 project files.
v0.5 -- 13 Oct 2007
-------------------
Changed:
- Bumped API version to 0.5.
- Greatly improved IR tracking.
- Renamed function `wiiuse_set_ir_correction()` to `wiiuse_set_ir_position()`.
Added:
- API function `wiiuse_set_aspect_ratio()`
Fixed:
- When rolling around 180 degree rotation smoothing would not be seemless.
v0.4 -- 08 Oct 2007
-------------------
Changed:
- Bumped API version to 0.4.
- Greatly improved classic controller joystick functionality.
- Changed all functions named `wiimote_*()` to `wiiuse_*()`
- Renamed many macros from `WIIMOTE_*` to `WIIUSE_*`
Added:
- IR support
- New `WIIMOTE_CONTINUOUS` flag to set continuous reporting
- Macro `IS_JUST_PRESSED()`
- Macro `WIIUSE_USING_ACC()`
- Macro `WIIUSE_USING_EXP()`
- Macro `WIIUSE_USING_IR()`
- API function `wiiuse_set_ir()`
- API function `wiiuse_set_ir_vres()`
- API function `wiiuse_set_ir_correction()`
- `gfx/` - A small OpenGL example that renders IR data
Fixed:
- Sometimes classic controller would only report infinite angle and magnitude for joysticks.
v0.3 -- 10 Sept 2007
--------------------
Changed:
- Moved license to GPLv3.
- Bumped API version to 0.3.
Added:
- Support for Classic Controller
- Smoothing for roll and pitch values of the wiimote and nunchuk.
- API: `wiimote_set_flags()` to set or disable wiimote options.
- API: `wiimote_set_smooth_alpha()` to set smoothing alpha value.
Fixed:
- When the wiimote accelerates the roll or pitch is unreliable and was
set to 0. It now remains at previous tilt value.
- If no event callback was specified then no events would be processed
internally.
v0.2 -- 25 Aug 2007
-------------------
Changed:
- Bumped API version to 0.2.
Added:
- Nunchuk support.
- Ability to write to flash memory.
Fixed:
- Roll and pitch rotation now ranges from -180 to 180 degrees
(previously -90 to 90).
- Bug when reading data from flash memory would read wrong address.
v0.1 -- 23 Feb 2007
-------------------
- Initial release

View File

@@ -78,9 +78,9 @@ add_doxygen(Doxyfile
NO_PDF)
install(FILES
CHANGELOG
CHANGELOG.mkd
LICENSE
README
README.mkd
DESTINATION ${DOC_DIR} COMPONENT docs)
if(INSTALL_EXAMPLES)
@@ -91,7 +91,7 @@ if(INSTALL_EXAMPLES)
endif()
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README")
set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.mkd")
include(GetCompilerInfoString)
get_compiler_info_string(_compiler)

169
README
View File

@@ -1,169 +0,0 @@
---------------------------
-
- README - Wiiuse
-
---------------------------
Fork, located at: http://github.com/rpavlik/wiiuse
Original project:
http://wiiuse.net/
http://wiiuse.sourceforge.net/
http://sourceforge.net/projects/wiiuse/
---------------------------
ABOUT
Wiiuse is a library written in C that connects with several Nintendo
Wii remotes. Supports motion sensing, IR tracking, nunchuk, classic
controller, Balance Board, and the Guitar Hero 3 controller. Single
threaded and nonblocking makes a light weight and clean API.
Distributed under the GPL 3+.
This is a friendly fork, prompted by apparent non-maintained status
of upstream project but proliferation of ad-hoc forks without
project infrastructure. Balance board support has been merged from
TU-Delft [1] cross-referenced with other similar implementations in
embedded forks of WiiUse in other applications. Hopefully GitHub will
help the community maintain this project more seamlessly now.
Patches and improvements are greatly appreciated - the easiest way
to submit them is to fork the repository on GitHub and make the
changes, then submit a pull request. The "fork and edit this file"
button on the web interface should make this even simpler.
[1] http://graphics.tudelft.nl/Projects/WiiBalanceBoard
AUTHORS
Fork Maintainer: Ryan Pavlik <rpavlik@iastate.edu> or <abiryan@ryand.net>
Original Author: Michael Laforest < para > < thepara (--AT--) g m a i l [--DOT--] com >
Additional Contributors:
- dhewg
- Christopher Sawczuk @ TU-Delft (initial Balance Board support)
- Paul Burton ( https://github.com/paulburton/wiiuse )
- Karl Semich ( https://github.com/xloem )
- Johannes Zarl <johannes.zarl@jku.at>
LICENSE
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
ACKNOWLEDGEMENTS BY MICHAEL LAFOREST
http://wiibrew.org/
This site and their users have contributed an immense amount of
information about the wiimote and its technical details. I could
not have written this program without the vast amounts of
reverse engineered information that was researched by them.
Nintendo
Of course Nintendo for designing and manufacturing the Wii and Wii remote.
BlueZ
Easy and intuitive bluetooth stack for Linux.
Thanks to Brent for letting me borrow his Guitar Hero 3 controller.
AUDIENCE
This project is intended for developers who wish to include support
for the Nintendo Wii remote with their third party application.
PLATFORMS AND DEPENDENCIES
Wiiuse currently operates on both Linux and Windows.
You will need:
For Linux:
- The kernel must support bluetooth
- The BlueZ bluetooth drivers must be installed
- If compiling, you'll need the BlueZ dev files (Debian/Ubuntu package
libbluetooth-dev)
For Windows:
- Bluetooth driver (tested with Microsoft's stack with Windows XP SP2)
- If compiling, Microsoft Windows Driver Development Kit (DDK)
For either platform:
- If compiling, CMake is needed to generate a makefile
COMPILING
Linux:
You need SDL and OpenGL installed to compile the SDL example.
$ cd build
$ ccmake .. [-DCMAKE_INSTALL_PREFIX=/usr/local] [-DCMAKE_BUILD_TYPE=Release]
OR
$ cmake-gui ..
$ make [target]
If 'target' is omitted then everything is compiled.
Where 'target' can be any of the following:
- wiiuse
Compiles libwiiuse.so
- wiiuseexample
Compiles wiiuse-example
- wiiuseexample-sdl
Compiles wiiuse-sdl
- doc
Generates doxygen-based API documentation in HTML and PDF
format in docs-generated
Become root.
# make install
libwiiuse.so is installed to CMAKE_INSTALL_PREFIX/lib
wiiuse-example and wiiuse-sdl are installed to CMAKE_INSTALL_PREFIX/bin
Windows:
The CMake GUI can be used to generate a Visual Studio solution.
You need the install the Windows DDK (driver development kit)
to compile wiiuse.
You can download this from here:
http://www.microsoft.com/whdc/devtools/ddk/default.mspx
You might also need to install the latest Windows SDK.
USING THE LIBRARY IN A THIRD PARTY APPLICATION
To use the library in your own program you must first compile wiiuse as a module.
Include include/wiiuse.h in any file that uses wiiuse.
For Linux you must link wiiuse.so ( -lwiiuse ).
For Windows you must link wiiuse.lib. When your program runs it will need wiiuse.dll.
BUGS
On Windows using more than one wiimote (usually more than two wiimotes) may cause
significant latency.

191
README.mkd Normal file
View File

@@ -0,0 +1,191 @@
WiiUse README
=============
Fork, located at <http://github.com/rpavlik/wiiuse>
Changelog: <https://github.com/rpavlik/wiiuse/blob/master/CHANGELOG.mkd>
Original project:
- <http://wiiuse.net/>
- <http://wiiuse.sourceforge.net/>
- <http://sourceforge.net/projects/wiiuse/>
About
-----
Wiiuse is a library written in C that connects with several Nintendo
Wii remotes. Supports motion sensing, IR tracking, nunchuk, classic
controller, Balance Board, and the Guitar Hero 3 controller. Single
threaded and nonblocking makes a light weight and clean API.
Distributed under the GPL 3+.
This is a friendly fork, prompted by apparent non-maintained status
of upstream project but proliferation of ad-hoc forks without
project infrastructure. Balance board support has been merged from
[TU-Delft][1] cross-referenced with other similar implementations in
embedded forks of WiiUse in other applications. Additional community
contributions have since been merged. Hopefully GitHub will help the
community maintain this project more seamlessly now.
Patches and improvements are greatly appreciated - the easiest way
to submit them is to fork the repository on GitHub and make the
changes, then submit a pull request. The "fork and edit this file"
button on the web interface should make this even simpler.
[1]: http://graphics.tudelft.nl/Projects/WiiBalanceBoard
Authors
-------
Fork Maintainer: Ryan Pavlik <rpavlik@iastate.edu> or <abiryan@ryand.net>
Original Author: Michael Laforest < para > < thepara (--AT--) g m a i l [--DOT--] com >
Additional Contributors:
- dhewg
- Christopher Sawczuk @ TU-Delft (initial Balance Board support)
- Paul Burton <https://github.com/paulburton/wiiuse>
- Karl Semich <https://github.com/xloem>
- Johannes Zarl <johannes.zarl@jku.at>
- hartsantler <http://code.google.com/p/rpythonic/>
License
-------
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Audience
--------
This project is intended for developers who wish to include support
for the Nintendo Wii remote with their third party application.
Platforms and Dependencies
--------------------------
Wiiuse currently operates on both Linux and Windows. You will need:
### For Linux: ###
- The kernel must support bluetooth
- The BlueZ bluetooth drivers must be installed
- If compiling, you'll need the BlueZ dev files (Debian/Ubuntu package
libbluetooth-dev)
### For Windows: ###
- Bluetooth driver (tested with Microsoft's stack with Windows XP SP2)
- If compiling, Microsoft Windows Driver Development Kit (DDK)
### For either platform: ###
- If compiling, [CMake](http://cmake.org) is needed to generate a makefile/project
Compiling
---------
You need SDL and OpenGL installed to compile the (optional) SDL example.
### Linux: ###
$ cd build
$ ccmake .. [-DCMAKE_INSTALL_PREFIX=/usr/local] [-DCMAKE_BUILD_TYPE=Release]
OR
$ cmake-gui ..
$ make [target]
If `target` is omitted then everything is compiled.
Where `target can be any of the following:
- *wiiuse* - Compiles libwiiuse.so
- *wiiuseexample* - Compiles wiiuse-example
- *wiiuseexample-sdl* - Compiles wiiuse-sdl
- *doc* - Generates doxygen-based API documentation in HTML and PDF
format in `docs-generated`
Become root.
# make install
`libwiiuse.so` is installed to `CMAKE_INSTALL_PREFIX/lib`
`wiiuse-example` and `wiiuse-sdl` are installed to `CMAKE_INSTALL_PREFIX/bin`
### Windows: ###
The CMake GUI can be used to generate a Visual Studio solution.
You need the install the Windows DDK (driver development kit) to compile
wiiuse. You can download this from here:
<http://www.microsoft.com/whdc/devtools/ddk/default.mspx>
You might also need to install the latest Windows SDK.
Using the Library
-----------------
To use the library in your own program you must first compile wiiuse as
a module. Include `include/wiiuse.h` in any file that uses wiiuse.
For Linux you must link `libwiiuse.so` ( `-lwiiuse` ). For Windows you
must link `wiiuse.lib`. When your program runs it will need
`wiiuse.dll`.
Known Issues
------------
On Windows using more than one wiimote (usually more than two wiimotes)
may cause significant latency.
Acknowledgements by Michael Laforest
------------------------------------
<http://wiibrew.org/>
> This site and their users have contributed an immense amount of
> information about the wiimote and its technical details. I could
> not have written this program without the vast amounts of
> reverse engineered information that was researched by them.
Nintendo
> Of course Nintendo for designing and manufacturing the Wii and Wii remote.
BlueZ
> Easy and intuitive bluetooth stack for Linux.
Thanks to Brent for letting me borrow his Guitar Hero 3 controller.