osx: Handle .hhe, .seh file extensions.

These are the equivalents of .deh for Heretic and Strife. Add these as
file associations and auto-switch to the appropriate game type when
opened.
Merge branch 'master' of github.com:chocolate-doom/chocolate-doom
music: Add loop point Ogg/Flac metadata support.

ZDoom has defined a format for Vorbis metadata comments named
LOOP_START and LOOP_END that allow the start and end points to be
defined in .ogg and .flac files for looping music. Add support for
these (they are used in Brandon Blume's SC-55 recordings).
joystick: Add support for "button axes".

Some gamepads, notably the PS3 SIXAXIS controller, provide the D-pad
not as a pair of axes, but rather as four separate buttons. Define a
special axis numbering scheme that packs two button numbers into a
single number, and allow an axis to be defined this way.
setup: Add support for button axis calibration.

Detect when we need to configure a "button axis" by falling back to
buttons when none of the joystick axes are significantly outside of
the centered range. Add extra calibration stages to get the D-pad
buttons for right and down in these cases.
joystick: Increase 'dead zone' size.

The joystick dead zone is the range within which the joystick is
interpreted as being centered. Increase this range significantly, as
some controllers (eg. the PS2 controller + USB connector) can be very
sensitive, leading to the player spinning randomly even when the stick
is centered.
joystick: Add "hat axis" support.

Just as some controllers have D-pads that are presented as a set of
buttons, some other controllers actually present their D-pads as
joystick hats. Add "hat axis" support where the hat number and
axis can be packed into a single integer value.
setup: Detect and configure hat-based D-pads.

As a second fallback, if all joysticks are centered and no buttons
are pressed, look at the hats on the joystick to see if one of those
is uncentered. Bizarre as it seems, some gamepads actually present the
D-pad as a hat.
hexen: Fix joystick strafe left/right buttons.

Hexen was missing the code to handle the strafe left/right buttons.
setup: Allow backspace or del to clear controls.

Backspace or delete clears other input boxes; make it do the same for
keyboard, mouse and joystick inputs.
textscreen: Fix jump when clicking on scrollbars.

Clicking on a scrollbar should scroll the cursor to that location, but
the logic for it was buggy because of loss of precision when doing an
integer divide. When dividing by bar_max, seek up to the nearest value
so that the cursor always arrives where we clicked.

Thanks to Alexandre-Xavier for reporting this bug. This fixes #359.
Add native notification box for errors on linux.

Errors will now be shown as a message box, instead of
only a console message. This fixes the user not seeing
error messages, like if the IWAD is not provided.

- Add zenity notification box call on I_Error
setup: Detect and ignore bad joystick axes.

In some cases a joystick axis can be "stuck" and have a large
uncentered value. These must be detected and ignored, otherwise the
axis can be chosen during calibration instead of the user's actual
desired axis.
Merge pull request #388 from willybarro/355_show_error_messagebox_on_linux

Add native notification box for errors on linux.
Merge branch 'master' of github.com:chocolate-doom/chocolate-doom
system: Escape special characters for Zenity.

When invoking Zenity to display an error message, some characters can
have special meanings to the shell. Escape these properly so that the
error message is always shown correctly.

This fixes #355.
strife: Fix joystick jump button.

The code to handle the joystick jump button variable was not
implemented. Check the jump button on the joystick as well as the
keyboard and mouse button equivalents when deciding whether to set
the jump bit.
joystick: Mask out bits for button axis buttons.

When a "button" is actually used as part of a button axis, don't
include presses on the button as part of the buttons field posted
in joystick events. This avoids situations where button 1 or 2
are part of a D-pad, breaking menu navigation (related to #389).
system: Refactor error dialog box.

When showing error message via Zenity, show the expanded (sprintf'ed)
error, not the format string. Refactor the sprintf part to be part of
the common code to avoid duplication.
joystick: Add virtual-physical button mapping.

The solution to solving #386 is to add a layer of indirection: the
game code can only support up to ~20 joystick buttons, but this
doesn't matter as long as we never want to bind more than 20 buttons
to actions anyway. Redefine the game's notion of buttons to be based
on "virtual" joystick buttons, and map these buttons to physical
(SDL) buttons based on configuration file variables.