Difference between revisions of "SoC Ideas Gui2 Input"

From The Battle for Wesnoth Wiki
m (Description)
m (Description)
Line 11: Line 11:
devices as well. The scope of this SoC project is to add more different kind
devices as well. The scope of this SoC project is to add more different kind
of input devices like pads and touch screens.
of input devices like pads and touch screens.
  |resultsheader=''There are %PAGES% student proposals for this idea''
  |resultsheader=''There are %PAGES% student proposals for this idea''

Revision as of 16:21, 28 March 2010

This page is related to Summer of Code 2010
See the list of Summer of Code 2010 Ideas

This is a Summer of Code 2010 Idea


Port Wesnoth input framework to a more flexible system

Page for the idea: SoC_Ideas_Gui2_Input

Since 2007, Wesnoth has been rewriting its GUI system with a more flexible system allowing all user interface aspect to be specified through WML. One of the changes has been to change the GUI input system. The input system still only support keyboard and mouse. With the rise of the more powerful hand-held devices(hand-held game consoles and phones) Wesnoth gets ported to these devices as well. The scope of this SoC project is to add more different kind of input devices like pads and touch screens.

There are 2 student proposals for this idea

Dakmor - Porting Wesnoth input framework.

TODO: Add a description of my proposal.
See SummerOfCodeProposal Dakmor for more information.

Kahowell - Making the Wesnoth Input Framework More Flexible

This would involve learning about the current state of the Wesnoth input system, and creating an input layer which is highly portable between different sorts of devices. Since Wesnoth already uses SDL, this project would mainly involve creating a subsytem to enumerate input devices and create a default configuration. I will look into different ways of identifying input devices (hopefully cross-platform), and perhaps create a database of default configurations (most likely just a collection of files). This project would also involve creating a dialog for input configuration.
See SummerOfCodeProposal Kahowell for more information.

Additional Information

The project is divided in several sub projects:

  • Add the new input devices to the gui2 framework.
  • Make it possible to select and configure the input devices.
  • Port the gui1 interfaces to use the new input sub system.

In the sections below the steps are discussed in more detail.

Add devices to gui2

The SDL project is currently working on version 1.3 of their library, which has several improvements for the iPhone. SDL hasn't been released yet and there's no firm release date yet. It would be interesting to see whether the input system can use SDL-1.2 and SDL-1.3 with some ifdefs.

Configure input devices

Since the number of buttons and placements of the button differ per device the user should be able to configure which buttons to use and assign functions to them. A dialog should be added for this. Preferably the dialog also shows which button is pressed at a certain moment so the user can see how Wesnoth calls the button on that device.

Port gui1 to new sub system

Once the gui2 part can use the new input system it also needs to be ported to the old input system. (Porting the old gui is long process, porting the input system will be faster and easier.)