Wiki Page Content

Differences between revisions 10 and 11
Revision 10 as of 2010-04-27 23:32:05
Size: 8273
Editor: SheenaSmith
Comment: add content (basic format ver 2)
Revision 11 as of 2010-04-28 06:40:14
Size: 10343
Editor: SheenaSmith
Comment: add content (basic format ver 2)
Deletions are marked like this. Additions are marked like this.
Line 127: Line 127:
The SDL Haptic subsystem allows you to control haptic (force feedback) devices.

The basic usage is as follows:
 1. Initialize the Subsystem (SDL_INIT_HAPTIC)
 1. Open a Haptic Device
  a. [[SDL_HapticOpen]]() to open from index
  a. [[SDL_HapticOpenFromJoystick]]() to open from an existing joystick
 1. Create an effect ([[SDL_HapticEffect]]) <<Color2(green,= typedef union - page? no link?)>>
 1. Upload the effect with [[SDL_HapticNewEffect]]()
 1. Run the effect with [[SDL_HapticRunEffect]]()
 1. (optional) Free the effect with [[SDL_HapticDestroyEffect]]()
 1. Close the haptic device with [[SDL_HapticClose]]()

Code Example:
{{{#!highlight cpp
int test_haptic( SDL_Joystick * joystick ) {
 SDL_Haptic *haptic;
 SDL_HapticEffect effect;
 int effect_id;

 // Open the device
 haptic = SDL_HapticOpenFromJoystick( joystick );
 if (haptic == NULL) return -1; // Most likely joystick isn't haptic

 // See if it can do sine waves
 if ((SDL_HapticQuery(haptic) & SDL_HAPTIC_SINE)==0) {
  SDL_HapticClose(haptic); // No sine effect
  return -1;
 }

 // Create the effect
 memset( &effect, 0, sizeof(SDL_HapticEffect) ); // 0 is safe default
 effect.type = SDL_HAPTIC_SINE;
 effect.periodic.direction.type = SDL_HAPTIC_POLAR; // Polar coordinates
 effect.periodic.direction.dir[0] = 18000; // Force comes from south
 effect.periodic.period = 1000; // 1000 ms
 effect.periodic.magnitude = 20000; // 20000/32767 strength
 effect.periodic.length = 5000; // 5 seconds long
 effect.periodic.attack_length = 1000; // Takes 1 second to get max strength
 effect.periodic.fade_length = 1000; // Takes 1 second to fade away

 // Upload the effect
 effect_id = SDL_HapticNewEffect( haptic, &effect );

 // Test the effect
 SDL_HapticRunEffect( haptic, effect_id, 1 );
 SDL_Delay( 5000); // Wait for the effect to finish

 // We destroy the effect, although closing the device also does this
 SDL_HapticDestroyEffect( haptic, effect_id );

 // Close the device
 SDL_HapticClose(haptic);

 return 0; // Success
}
}}}


DRAFT

SDL 1.3 API by Category

Functions by Type

Initialization

Introduction to Initialization

View a List of Functions Related to...

View the Header

Initialization & Shutdown

SDL.h

Atomic Operations for 32 and 64 Bit Values

SDL_atomic.h

Querying SDL Version

SDL_version.h

green

Error Handling

SDL_error.h

Video

Introduction to Video

View a List of Functions Related to...

View the Header

Display Management, Window Management and Rendering

SDL_video.h

Pixel Formats and Conversion Routines

SDL_pixels.h

Rectangle Functions

SDL_rect.h

Surface Creation and Simple Drawing

SDL_surface.h

Platform-specific Window Management

SDL_syswm.h

Input

Introduction to Input

View a List of Functions Related to...

View the Header

Joystick Support

SDL_joystick.h

Keyboard Support

SDL_keyboard.h

Mouse Support

SDL_mouse.h

Force Feedback

Introduction to Force Feedback

View a List of Functions Related to...

View the Header

Force Feedback Support

SDL_haptic.h

Audio

Introduction to Audio

View a List of Functions Related to...

View the Header

Audio Device Management, Playing and Recording

SDL_audio.h

File I/O Abstraction

Introduction to File I/O Abstraction

View a List of Functions Related to...

View the Header

File I/O Abstraction

SDL_rwops.h

Shared Object Support

Introduction to Shared Object Support

View a List of Functions Related to...

View the Header

Shared Object Loading and Function Lookup

SDL_loadso.h

Threads

Introduction to Threads

View a List of Functions Related to...

View the Header

Thread Management

SDL_thread.h

Thread Synchronization Primitives

SDL_mutex.h

Timers

Introduction to Timers

View a List of Functions Related to...

View the Header

Timer Support

SDL_timer.h

Event Handling

SDL_events.h

CPU Feature Detection

Introduction to CPU Feature Detection

View a List of Functions Related to...

View the Header

CPU Feature Detection

SDL_cpuinfo.h

Platform Detection

SDL_platform.h

Power Management

Introduction to Power Management

View a List of Functions Related to...

View the Header

Power Management Status

SDL_power.h

Endian Independence

Introduction to Endian Independence (Byte Order and Byte Swapping)

View a List of Functions Related to...

View the Header

Byte Order and Byte Swapping

SDL_endian.h


Introductory Information by Category

Introduction to Initialization

General
Functions in this category are used to set up SDL 1.3 for use and generally have global effects in your program.

Version
These functions are used to collect or display information about the version of SDL that is currently being used by the program. There are four (4) macros green

that apply to this header.

  • SDL_VERSION

    • This macro gathers information from SDL_MAJOR_VERSION, SDL_MINOR_VERSION, AND SDL_PATCHLEVEL (#defines) and fills the structure SDL_version with that information.

  • SDL_VERSIONNUM

    • A minor macro that converts version numbers into a numeric value.
  • SDL_COMPILEDVERSION

    • A minor macro that produces the current SDL version number (major.minor.patchlevel)
  • SDL_VERSION_ATLEAST

    • A minor macro that confirms whether a program was compiled with a version no older than the specified version.

Introduction to Video

Introduction to Input

Introduction to Force Feedback

The SDL Haptic subsystem allows you to control haptic (force feedback) devices.

The basic usage is as follows:

  1. Initialize the Subsystem (SDL_INIT_HAPTIC)
  2. Open a Haptic Device
    1. SDL_HapticOpen() to open from index

    2. SDL_HapticOpenFromJoystick() to open from an existing joystick

  3. Create an effect (SDL_HapticEffect) <<Color2: execution failed [No argument named ""] (see also the log)>>

  4. Upload the effect with SDL_HapticNewEffect()

  5. Run the effect with SDL_HapticRunEffect()

  6. (optional) Free the effect with SDL_HapticDestroyEffect()

  7. Close the haptic device with SDL_HapticClose()

Code Example:

int test_haptic( SDL_Joystick * joystick ) {
 SDL_Haptic *haptic;
 SDL_HapticEffect effect;
 int effect_id;

 // Open the device
 haptic = SDL_HapticOpenFromJoystick( joystick );
 if (haptic == NULL) return -1; // Most likely joystick isn't haptic

 // See if it can do sine waves
 if ((SDL_HapticQuery(haptic) & SDL_HAPTIC_SINE)==0) {
  SDL_HapticClose(haptic); // No sine effect
  return -1;
 }

 // Create the effect
 memset( &effect, 0, sizeof(SDL_HapticEffect) ); // 0 is safe default
 effect.type = SDL_HAPTIC_SINE;
 effect.periodic.direction.type = SDL_HAPTIC_POLAR; // Polar coordinates
 effect.periodic.direction.dir[0] = 18000; // Force comes from south
 effect.periodic.period = 1000; // 1000 ms
 effect.periodic.magnitude = 20000; // 20000/32767 strength
 effect.periodic.length = 5000; // 5 seconds long
 effect.periodic.attack_length = 1000; // Takes 1 second to get max strength
 effect.periodic.fade_length = 1000; // Takes 1 second to fade away

 // Upload the effect
 effect_id = SDL_HapticNewEffect( haptic, &effect );

 // Test the effect
 SDL_HapticRunEffect( haptic, effect_id, 1 );
 SDL_Delay( 5000); // Wait for the effect to finish

 // We destroy the effect, although closing the device also does this
 SDL_HapticDestroyEffect( haptic, effect_id );

 // Close the device
 SDL_HapticClose(haptic);

 return 0; // Success
}

Introduction to Audio

Introduction to File I/O Abstraction

Introduction to Shared Object Support

Introduction to Threads

Introduction to Timers

Introduction to CPU Feature Detection

Introduction to Power Management

Introduction to Endian Independence (Byte Order and Byte Swapping)


green

-OR -

In each section:

  • For more detailed information on each Category, including how to get started, answers to common questions and errors, and more, click the Introduction to... link in each section

  • For a list of functions found in each header click the link under Related Functions

    • You will find links to detailed pages about each function on those pages
  • For the header file itself click the link under Header in each section

-OR-

Each section below includes

  • a link to introductory information about each function type including, where relevant:
    • green

  • a link to one or more pages containing a complete list of functions belonging to each header in that category
    • listed functions link to detailed information on each
  • a link to the header page

None: APIByCategory (last edited 2020-01-13 13:44:18 by markand)

(Page Info.)
Feedback
Please include your contact information if you'd like to receive a reply.
Submit