GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  PODS::SDL::JOYSTICK (3)

.ds Aq ’

NAME

SDL::Joystick -- SDL Bindings for the Joystick device

CONTENTS

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\n", $num_joysticks);

 for($i = 0; $i < $num_joysticks; $i++)
 {
     printf("%s\n", 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\n");
         printf("Name: %s\n",              SDL::Joystick::name(0));
         printf("Number of Axes: %d\n",    SDL::Joystick::num_axes($joystick));
         printf("Number of Buttons: %d\n", SDL::Joystick::num_buttons($joystick));
         printf("Number of Balls: %d\n",   SDL::Joystick::num_balls($joystick));
     }
     else
     {
         printf("Couldnt open Joystick 0\n");
     }

     # 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.

<B>NoteB>: 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\n") 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\n", $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!\n") if(SDL::JoystickGetBall($joystick, 0, $delta_x, $delta_y) == -1);
 printf("Trackball Delta- X:%d, Y:%d\n", 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.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 PODS::SDL::JOYSTICK (3) 2016-04-05

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.