Mercurial > sdl-ios-xcode
view test/automated/SDL_at.h @ 3496:78fc8ea578b2
Joe 2009-11-23 21:31:10 PST
If type is ::SDL_HAPTIC_CARTESIAN, direction is encoded by three positions
367 * (X axis, Y axis and Z axis (with 3 axes)). ::SDL_HAPTIC_CARTESIAN
uses
368 * the first three \c dir parameters. The cardinal directions would
be:
369 * - North: 0,-1, 0
370 * - East: -1, 0, 0
371 * - South: 0, 1, 0
372 * - West: 1, 0, 0
typedef struct SDL_HapticDirection
{
Uint8 type; /**< The type of encoding. */
Uint16 dir[3]; /**< The encoded direction. */
} SDL_HapticDirection;
An unsigned int can't store negative values and I don't see an alternate way to
encode them in the docs or source. The best I have been able to come up with is
using a negative magnitude for the effect but this will only get me 2 of the 4
quadrants in the plane for 2d effects. I looked at the win32 and linux
implementations and I believe is is safe to use signed ints in the direction
struct. I am unfamiliar with the darwin haptics API so I don't know if it is
safe.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Fri, 27 Nov 2009 19:29:27 +0000 |
parents | 78db4f7ae2f3 |
children |
line wrap: on
line source
/* * Common code for automated test suite. * * Written by Edgar Simo "bobbens" * * Released under Public Domain. */ /** * @file SDL_at.h * * @brief Handles automatic testing functionality. * * The basic approach with SDL_AT is to divide the tests into what are called * test suites and test cases. Each test suite should have multiple test * cases, each test case can have multiple asserts. * * To actually test for conditions within the testcase you check asserts, if * the asserts fail the failures will be logged in the testsuite and * displayed. * * Syntax is similar to OpenGL. An example would be: * * @code * int f; // Number failed * SDL_ATinit( "My testsuite" ); * * SDL_ATbegin( "My first testcase" ); * if (!SDL_ATassert( (1+1)==2, "Trying '1+1=2'.")) * return; // Implicitly calls SDL_ATend if assert fails * SDL_ATend(); // Finish testcase * * SDL_ATbegin( "My second testcase" ); * if (!SDL_ATassert( (4/2)==2, "Trying '4/2=2'.")) * return; // Implicitly calls SDL_ATend if assert fails * SDL_ATend(); // Finish testcase * * f = SDL_ATfinish(); * @endcode * * @author Edgar Simo "bobbens" */ #ifndef _SDL_AT_H # define _SDL_AT_H enum { SDL_AT_VERBOSE, /**< Sets the verbose level. */ SDL_AT_QUIET /**< Sets quietness. */ }; /* * Suite level actions. */ /** * @brief Starts the testsuite. * * @param suite Name of the suite to start testing. */ void SDL_ATinit( const char *suite ); /** * @brief Finishes the testsuite printing out global results if verbose. * * @return 0 if no errors occurred, otherwise number of failures. */ int SDL_ATfinish (void); /** * @brief Sets a global property value. * * @param property Property to set. * @param value Value to set property to. */ void SDL_ATseti( int property, int value ); /** * @brief Gets a global property value. * * @param property Property to get. * @param[out] value Value of the property. */ void SDL_ATgeti( int property, int *value ); /* * Testcase level actions. */ /** * @brief Begins a testcase. * * @param testcase Name of the testcase to begin. */ void SDL_ATbegin( const char *testcase ); /** * @brief Checks a condition in the testcase. * * Will automatically call SDL_ATend if the condition isn't met. * * @param condition Condition to make sure is true. * @param msg Message to display for failure. * @return Returns 1 if the condition isn't met. */ int SDL_ATassert( const char *msg, int condition ); /** * @brief Checks a condition in the testcase. * * Will automatically call SDL_ATend if the condition isn't met. * * @param condition Condition to make sure is true. * @param msg Message to display for failure with printf style formatting. * @return Returns 1 if the condition isn't met. */ int SDL_ATvassert( int condition, const char *msg, ... ); /** * @brief Ends a testcase. */ void SDL_ATend (void); /* * Misc functions. */ /** * @brief Prints an error. * * @param msg printf formatted string to display. * @return Number of character printed. */ int SDL_ATprintErr( const char *msg, ... ); /** * @brief Prints some text. * * @param msg printf formatted string to display. * @return Number of character printed. */ int SDL_ATprint( const char *msg, ... ); /** * @brief Prints some verbose text. * * Verbosity levels are as follows: * * - 0 standard stdout, enabled by default * - 1 additional information * - 2 detailed information (spammy) * * @param level Level of verbosity to print at. * @param msg printf formatted string to display. * @return Number of character printed. */ int SDL_ATprintVerbose( int level, const char *msg, ... ); #endif /* _SDL_AT_H */