SDL_JoyHatEvent(3) SDL API Reference SDL_JoyHatEvent(3)NAME
SDL_JoyHatEvent - Joystick hat position change event structure
STRUCTURE DEFINITION
typedef struct{
Uint8 type;
Uint8 which;
Uint8 hat;
Uint8 value;
} SDL_JoyHatEvent;
STRUCTURE DATA
type SDL_JOY
which Joystick device index
hat Joystick hat index
value Hat position
DESCRIPTION
SDL_JoyHatEvent is a member of the SDL_Event union and is used when an event of type SDL_JOYHATMOTION is reported.
A SDL_JOYHATMOTION event occurs when ever a user moves a hat on the joystick. The field which is the index of the joystick that reported
the event and hat is the index of the hat (for a more detailed exlaination see the Joystick section). value is the current position of the
hat. It is a logically OR'd combination of the following values (whose meanings should be pretty obvious:) :
SDL_HAT_CENTERED
SDL_HAT_UP
SDL_HAT_RIGHT
SDL_HAT_DOWN
SDL_HAT_LEFT
The following defines are also provided:
SDL_HAT_RIGHTUP
SDL_HAT_RIGHTDOWN
SDL_HAT_LEFTUP
SDL_HAT_LEFTDOWN
SEE ALSO
SDL_Event, Joystick Functions, SDL_JoystickEventState, SDL_JoystickGetHat
SDL Tue 11 Sep 2001, 22:59 SDL_JoyHatEvent(3)
Check Out this Related Man Page
pods::SDL::Joystick(3pm) User Contributed Perl Documentation pods::SDL::Joystick(3pm)NAME
SDL::Joystick -- SDL Bindings for the Joystick device
CATEGORY
Core, Joystick
SYNOPSIS
use SDL;
use SDL::Joystick;
SDL::init_sub_system(SDL_INIT_JOYSTICK);
die('no joystick found') unless(SDL::Joystick::num_joysticks());
my $joystick = SDL::Joystick->new(0);
METHODS
num_joysticks
int SDL::Joystick::num_joysticks( void );
Counts and returns available joysticks.
name
string SDL::Joystick::name( index );
Get the implementation dependent name of joystick. The "index" parameter refers to the N'th joystick on the system.
my $num_joysticks = SDL::Joystick::num_joysticks();
printf("%d joysticks found
", $num_joysticks);
for($i = 0; $i < $num_joysticks; $i++)
{
printf("%s
", SDL::Joystick::name($i));
}
new
object SDL::Joystick->new( index );
Opens a joystick for use within SDL. The "index" refers to the N'th joystick in the system. A joystick must be opened before it can be
used.
# Initialize the joystick subsystem
SDL::init_sub_system(SDL_INIT_JOYSTICK);
# Check for joystick
if(SDL::Joystick::num_joysticks() > 0)
{
# Open joystick
my $joystick = SDL::Joystick->new(0);
if($joystick)
{
printf("Opened Joystick 0
");
printf("Name: %s
", SDL::Joystick::name(0));
printf("Number of Axes: %d
", SDL::Joystick::num_axes($joystick));
printf("Number of Buttons: %d
", SDL::Joystick::num_buttons($joystick));
printf("Number of Balls: %d
", SDL::Joystick::num_balls($joystick));
}
else
{
printf("Couldn't open Joystick 0
");
}
# Close if opened
SDL::Joystick::close($joystick) if SDL::Joystick::opened(0);
}
opened
int SDL::Joystick::opened( index );
Determines whether a joystick has already been opened within the application. "index" refers to the N'th joystick on the system.
Returns 1 if the joystick has been opened, or 0 if it has not.
index
int SDL::Joystick::index( object );
Returns the "index" of a given "SDL_Joystick" structure. See SDL::Joystick::new
num_axes
int SDL::Joystick::num_axes( object );
Return the number of axes available from a previously opened joystick. See SDL::Joystick::new
num_balls
int SDL::Joystick::num_balls( object );
Return the number of trackballs available from a previously opened joystick. See SDL::Joystick::new
num_hats
int SDL::Joystick::num_hats( object );
Gets the number of joystick hats from a previously opened joystick. See SDL::Joystick::new
num_buttons
int SDL::Joystick::num_buttons( object );
Gets the number of joystick buttons from a previously opened joystick. See SDL::Joystick::new
update
void SDL::Joystick::update();
Updates the state(position, buttons, etc.) of all open joysticks. If joystick events have been enabled with "SDL::Joystick::event_state"
then this is called automatically in the event loop.
get_axis
"get_axis" returns the current state of the given axis on the given joystick.
On most modern joysticks the X axis is usually represented by axis 0 and the Y axis by axis 1. The value returned by "get_axis" is a
signed integer (-32768 to 32767) representing the current position of the axis, it may be necessary to impose certain tolerances on these
values to account for jitter.
Note: Some joysticks use axes 2 and 3 for extra buttons.
Returns a 16-bit signed integer representing the current position of the axis.
my $joystick = SDL::Joystick->new(0);
my $x_move = SDL::Joystick::get_axis($joystick, 0);
my $y_move = SDL::Joystick::get_axis($joystick, 1);
get_hat
int SDL::Joystick::get_hat( object, int );
"get_hat" returns the current state of the given "hat" on the given "joystick".
The current state is returned which is an OR'd combination of one or more of the following:
o "SDL_HAT_CENTERED"
o "SDL_HAT_UP"
o "SDL_HAT_RIGHT"
o "SDL_HAT_DOWN"
o "SDL_HAT_LEFT"
o "SDL_HAT_RIGHTUP"
o "SDL_HAT_RIGHTDOWN"
o "SDL_HAT_LEFTUP"
o "SDL_HAT_LEFTDOWN"
my $joystick = SDL::Joystick->new(0);
my $position = SDL::Joystick::get_hat($joystick, 0);
print("hat is in position UP
") if $position & SDL_HAT_UP;
get_button
int SDL::Joystick::get_button( object, int );
"get_button" returns the current state of the given button on the given joystick.
Returns 1 if the button is pressed. Otherwise, 0.
my $joystick = SDL::Joystick->new(0);
my $num_buttons = SDL::Joystick::num_buttons($joystick);
for(my $i = 0; $i < $num_buttons; $i++)
{
printf("button %d is %s
", $i, SDL::Joystick::get_button($joystick, $i) ? 'pressed' : 'not pressed');
}
SDL::Joystick::close($joystick) if SDL::Joystick::opened(0);
get_ball
int SDL::Joystick::get_ball(SDL_Joystick $joystick, int $ball, int $dx, int $dy);
Get the ball axis change.
Trackballs can only return relative motion since the last call to SDL::Joystick::get_ball, these motion deltas are placed into "dx" and
"dy".
Returns 0 on success or -1 on failure
my $delta_x = 0;
my $delta_y = 0;
my $joystick = SDL::Joystick->new(0);
SDL::Joystick::update();
printf("TrackBall Read Error!
") if(SDL::JoystickGetBall($joystick, 0, $delta_x, $delta_y) == -1);
printf("Trackball Delta- X:%d, Y:%d
", delta_x, delta_y);
close
void SDL::Joystick::close( object );
Closes a previously opened joystick. See SDL::Joystick::new
SDL::Joystick::close($joystick) if SDL::Joystick::opened(0);
AUTHORS
See "AUTHORS" in SDL.
perl v5.14.2 2012-05-28 pods::SDL::Joystick(3pm)