misc/libphyslayer/physfsrwops.h
author koda
Sat, 09 Mar 2013 00:57:09 +0100
changeset 8702 a28966180a29
parent 8524 a65e9bcf0a03
child 9991 3858d99476f5
permissions -rw-r--r--
have fpc work in the right directory instead of passing the full path of the main module (avoids having full paths in debug build backtraces for the first module only)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
     1
/*
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
     2
 * This code provides a glue layer between PhysicsFS and Simple Directmedia
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
     3
 *  Layer's (SDL) RWops i/o abstraction.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
     4
 *
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
     5
 * License: this code is public domain. I make no warranty that it is useful,
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
     6
 *  correct, harmless, or environmentally safe.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
     7
 *
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
     8
 * This particular file may be used however you like, including copying it
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
     9
 *  verbatim into a closed-source project, exploiting it commercially, and
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    10
 *  removing any trace of my name from the source (although I hope you won't
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    11
 *  do that). I welcome enhancements and corrections to this file, but I do
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    12
 *  not require you to send me patches if you make changes. This code has
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    13
 *  NO WARRANTY.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    14
 *
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    15
 * Unless otherwise stated, the rest of PhysicsFS falls under the zlib license.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    16
 *  Please see LICENSE.txt in the root of the source tree.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    17
 *
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    18
 * SDL falls under the LGPL license. You can get SDL at http://www.libsdl.org/
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    19
 *
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    20
 *  This file was written by Ryan C. Gordon. (icculus@icculus.org).
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    21
 */
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    22
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    23
#ifndef _INCLUDE_PHYSFSRWOPS_H_
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    24
#define _INCLUDE_PHYSFSRWOPS_H_
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    25
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    26
#include "physfs.h"
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    27
#include "SDL.h"
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    28
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    29
#ifdef __cplusplus
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    30
extern "C" {
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    31
#endif
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    32
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    33
/**
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    34
 * Open a platform-independent filename for reading, and make it accessible
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    35
 *  via an SDL_RWops structure. The file will be closed in PhysicsFS when the
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    36
 *  RWops is closed. PhysicsFS should be configured to your liking before
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    37
 *  opening files through this method.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    38
 *
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    39
 *   @param filename File to open in platform-independent notation.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    40
 *  @return A valid SDL_RWops structure on success, NULL on error. Specifics
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    41
 *           of the error can be gleaned from PHYSFS_getLastError().
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    42
 */
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    43
PHYSFS_DECL SDL_RWops *PHYSFSRWOPS_openRead(const char *fname);
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    44
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    45
/**
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    46
 * Open a platform-independent filename for writing, and make it accessible
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    47
 *  via an SDL_RWops structure. The file will be closed in PhysicsFS when the
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    48
 *  RWops is closed. PhysicsFS should be configured to your liking before
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    49
 *  opening files through this method.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    50
 *
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    51
 *   @param filename File to open in platform-independent notation.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    52
 *  @return A valid SDL_RWops structure on success, NULL on error. Specifics
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    53
 *           of the error can be gleaned from PHYSFS_getLastError().
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    54
 */
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    55
PHYSFS_DECL SDL_RWops *PHYSFSRWOPS_openWrite(const char *fname);
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    56
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    57
/**
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    58
 * Open a platform-independent filename for appending, and make it accessible
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    59
 *  via an SDL_RWops structure. The file will be closed in PhysicsFS when the
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    60
 *  RWops is closed. PhysicsFS should be configured to your liking before
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    61
 *  opening files through this method.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    62
 *
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    63
 *   @param filename File to open in platform-independent notation.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    64
 *  @return A valid SDL_RWops structure on success, NULL on error. Specifics
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    65
 *           of the error can be gleaned from PHYSFS_getLastError().
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    66
 */
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    67
PHYSFS_DECL SDL_RWops *PHYSFSRWOPS_openAppend(const char *fname);
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    68
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    69
/**
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    70
 * Make a SDL_RWops from an existing PhysicsFS file handle. You should
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    71
 *  dispose of any references to the handle after successful creation of
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    72
 *  the RWops. The actual PhysicsFS handle will be destroyed when the
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    73
 *  RWops is closed.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    74
 *
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    75
 *   @param handle a valid PhysicsFS file handle.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    76
 *  @return A valid SDL_RWops structure on success, NULL on error. Specifics
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    77
 *           of the error can be gleaned from PHYSFS_getLastError().
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    78
 */
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    79
PHYSFS_DECL SDL_RWops *PHYSFSRWOPS_makeRWops(PHYSFS_File *handle);
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    80
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    81
#ifdef __cplusplus
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    82
}
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    83
#endif
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    84
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    85
#endif /* include-once blocker */
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    86
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    87
/* end of physfsrwops.h ... */
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    88