[vala-extra-vapis/wip/openal: 37/40] refactoring of physfs.vapi
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala-extra-vapis/wip/openal: 37/40] refactoring of physfs.vapi
- Date: Wed, 14 Apr 2021 07:42:53 +0000 (UTC)
commit 8ac2d5d4332b102625cbc5b29ecdf4dcc01b9d13
Author: Anton 'Vuvk' Shcherbatykh <vuvk69 gmail com>
Date: Sat Apr 10 23:17:32 2021 +0500
refactoring of physfs.vapi
physfs.vapi | 2151 +++++++++++++++++++++++++++++------------------------------
1 file changed, 1072 insertions(+), 1079 deletions(-)
---
diff --git a/physfs.vapi b/physfs.vapi
index 4c38b11..e915be4 100644
--- a/physfs.vapi
+++ b/physfs.vapi
@@ -1,7 +1,7 @@
/*
* PhysicsFS binding for Vala
*
- * Copyright 2020 Anton "Vuvk" Shcherbatykh <vuvk69 gmail com>
+ * Copyright 2020-2021 Anton "Vuvk" Shcherbatykh <vuvk69 gmail com>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
@@ -21,1084 +21,1077 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-[CCode (cprefix = "", lower_case_cprefix = "", cheader_filename="physfs.h")]
+[CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "physfs.h")]
namespace PHYSFS
{
- /**
- * PHYSFS_ArchiveInfo
- * Information on various PhysicsFS-supported archives.
- */
- [CCode (cname = "PHYSFS_ArchiveInfo", has_type_id = false)]
- public struct ArchiveInfo {
- public string extension; /**< Archive file extension: "ZIP", for example. */
- public string description; /**< Human-readable archive description. */
- public string author; /**< Person who did support for this archive. */
- public string url; /**< URL related to this archive */
- [CCode (cname = "supportsSymlinks")]
- public bool supports_symlinks; /**< non-zero if archive offers symbolic links. */
- }
-
- /**
- * PHYSFS_Version
- * Information the version of PhysicsFS in use.
- */
- [CCode (cname = "PHYSFS_Version", has_type_id = false)]
- public struct Version {
- public uint8 major; /**< major revision */
- public uint8 minor; /**< minor revision */
- public uint8 patch; /**< patchlevel */
- }
- /**
- * void PHYSFS_getLinkedVersion(PHYSFS_Version *ver)
- * Get the version of PhysicsFS that is linked against your program.
- */
- [CCode (cname = "PHYSFS_getLinkedVersion")]
- public void get_linked_version(Version* ver);
-
- /**
- * int PHYSFS_init(const char *argv0)
- * Initialize the PhysicsFS library.
- */
- [CCode (cname = "PHYSFS_init")]
- public bool init(string argv0);
-
- /**
- * int PHYSFS_deinit()
- * Deinitialize the PhysicsFS library.
- */
- [CCode (cname = "PHYSFS_deinit")]
- public bool deinit();
-
- /**
- * const PHYSFS_ArchiveInfo **PHYSFS_supportedArchiveTypes()
- * Get a list of supported archive types.
- */
- [CCode (cname = "PHYSFS_supportedArchiveTypes", array_length = false)]
- public unowned ArchiveInfo*[] supported_archive_types();
-
- /**
- * void PHYSFS_freeList(void* listVar)
- * Deallocate resources of lists returned by PhysicsFS.
- */
- [CCode (cname = "PHYSFS_freeList")]
- public void free_list(void* list_var);
-
- /**
- * const char *PHYSFS_getLastError()
- * Get human-readable error information.
- */
- [CCode (cname = "PHYSFS_getLastError")]
- public unowned string? get_last_error();
-
- /**
- * const char *PHYSFS_getDirSeparator()
- * Get platform-dependent dir separator string.
- */
- [CCode (cname = "PHYSFS_getDirSeparator")]
- public unowned string? get_dir_separator();
-
- /**
- * void PHYSFS_permitSymbolicLinks(int allow)
- * Enable or disable following of symbolic links.
- */
- [CCode (cname = "PHYSFS_permitSymbolicLinks")]
- public void permit_symbolic_links(int allow);
-
- /**
- * char **PHYSFS_getCdRomDirs()
- * Get an array of paths to available CD-ROM drives.
- */
- [CCode (cname = "PHYSFS_getCdRomDirs", array_length = false)]
- public string?[] get_cdrom_dirs();
-
- /**
- * const char *PHYSFS_getBaseDir()
- * Get the path where the application resides.
- */
- [CCode (cname = "PHYSFS_getBaseDir")]
- public unowned string? get_base_dir();
-
-
- /**
- * const char *PHYSFS_getUserDir()
- * Get the path where user's home directory resides.
- */
- [CCode (cname = "PHYSFS_getUserDir")]
- public unowned string? get_user_dir();
-
- /**
- * const char *PHYSFS_getWriteDir()
- * Get path where PhysicsFS will allow file writing.
- */
- [CCode (cname = "PHYSFS_getWriteDir")]
- public unowned string? get_write_dir();
-
- /**
- * int PHYSFS_setWriteDir(const char *new_dir)
- * Tell PhysicsFS where it may write files.
- */
- [CCode (cname = "PHYSFS_setWriteDir")]
- public bool set_write_dir(string new_dir);
-
-
- /**
- * int PHYSFS_addToSearchPath(const char *new_dir, int appendToPath)
- * Add an archive or directory to the search path.
- */
- [CCode (cname = "PHYSFS_addToSearchPath")]
- public bool add_to_search_path(string new_dir, bool append_to_path);
-
- /**
- * int PHYSFS_removeFromSearchPath(const char *old_dir)
- * Remove a directory or archive from the search path.
- */
- [CCode (cname = "PHYSFS_removeFromSearchPath")]
- public bool remove_from_search_path(string old_dir);
-
- /**
- * char **PHYSFS_getSearchPath()
- * Get the current search path.
- */
- [CCode (cname = "PHYSFS_getSearchPath", array_length = false)]
- public unowned string?[] PHYSFS_getSearchPath();
-
- /**
- * int PHYSFS_setSaneConfig(const char *organization, const char *appName, const char *archiveExt, int
includeCdRoms, int archivesFirst)
- * Set up sane, default paths.
- */
- [CCode (cname = "PHYSFS_setSaneConfig")]
- public bool set_sane_config(string organization,
- string app_name,
- string archive_ext,
- bool include_cdroms,
- bool archives_first);
-
- /* Directory management stuff ... */
-
- /**
- * int PHYSFS_mkdir(const char *dirName)
- * Create a directory.
- */
- [CCode (cname = "PHYSFS_mkdir")]
- public bool mkdir(string dir_name);
-
- /**
- * int PHYSFS_delete(const char *filename)
- * Delete a file or directory.
- */
- [CCode (cname = "PHYSFS_delete")]
- public bool delete(string filename);
-
- /**
- * const char *PHYSFS_getRealDir(const char *filename)
- * Figure out where in the search path a file resides.
- */
- [CCode (cname = "PHYSFS_getRealDir")]
- public unowned string? get_real_dir(string filename);
-
- /**
- * char **PHYSFS_enumerateFiles(const char *dir)
- * Get a file listing of a search path's directory.
- */
- [CCode (cname = "PHYSFS_enumerateFiles", array_length = false)]
- public unowned string?[] enumerate_files(string dir);
-
- /**
- * int PHYSFS_exists(const char *fname)
- * Determine if a file exists in the search path.
- */
- [CCode (cname = "PHYSFS_exists")]
- public bool exists(string fname);
-
- /**
- * int PHYSFS_isDirectory(const char *fname)
- * Determine if a file in the search path is really a directory.
- */
- [CCode (cname = "PHYSFS_isDirectory")]
- public bool is_directory(string fname);
-
- /**
- * int PHYSFS_isSymbolicLink(const char *fname)
- * Determine if a file in the search path is really a symbolic link.
- */
- [CCode (cname = "PHYSFS_isSymbolicLink")]
- public bool is_symbolic_link(string fname) ;
-
- /**
- * int64 PHYSFS_getLastModTime(const char *filename)
- * Get the last modification time of a file.
- */
- [CCode (cname = "PHYSFS_getLastModTime")]
- public int64 get_last_mod_time(string filename);
-
- /* i/o stuff... */
-
- [Compact]
- [CCode (cname = "PHYSFS_File", has_type_id = false, free_function = "PHYSFS_close")]
- //public struct File {
- // private void* opaque; /**< That's all you get. Don't touch. */
- //}
- public class File {
- /**
- * File* PHYSFS_openWrite(const char *filename)
- * Open a file for writing.
- */
- [CCode (cname = "PHYSFS_openWrite")]
- public File.open_write(string filename);
-
- /**
- * File* PHYSFS_openAppend(const char *filename)
- * Open a file for appending.
- */
- [CCode (cname = "PHYSFS_openAppend")]
- public File.open_append(string filename);
-
- /**
- * File* PHYSFS_openRead(const char *filename)
- * Open a file for reading.
- */
- [CCode (cname = "PHYSFS_openRead")]
- public File.open_read(string filename);
-
- /**
- * int PHYSFS_close(File* handle)
- * Close a PhysicsFS filehandle.
- */
- [CCode (cname = "PHYSFS_close")]
- public bool close();
-
- /**
- * int64 PHYSFS_read(File* handle, void* buffer, uint32 objSize, uint32 objCount)
- * Read data from a PhysicsFS filehandle
- */
- [CCode (cname = "PHYSFS_read")]
- public int64 read([CCode (array_length = false)] uint8[] buffer, uint32 obj_size, uint32 obj_count);
-
- /**
- * int64 PHYSFS_write(File* handle, const void* buffer, uint32 objSize, uint32 objCount)
- * Write data to a PhysicsFS filehandle
- */
- [CCode (cname = "PHYSFS_write")]
- public int64 write([CCode (array_length = false)] uint8[] buffer, uint32 obj_size, uint32 obj_count);
-
- /* File position stuff... */
-
- /**
- * int PHYSFS_eof(File* handle)
- * Check for end-of-file state on a PhysicsFS filehandle.
- */
- [CCode (cname = "PHYSFS_eof")]
- public bool eof();
-
- /**
- * int64 PHYSFS_tell(File* handle)
- * Determine current position within a PhysicsFS filehandle.
- */
- [CCode (cname = "PHYSFS_tell")]
- public int64 tell();
-
- /**
- * int PHYSFS_seek(File* handle, uint64 pos)
- * Seek to a new position within a PhysicsFS filehandle.
- */
- [CCode (cname = "PHYSFS_seek")]
- public int seek(uint64 pos);
-
- /**
- * int64 FileLength(File* handle)
- * Get total length of a file in bytes.
- */
- [CCode (cname = "PHYSFS_fileLength")]
- public int64 length();
-
- /* Buffering stuff... */
-
- /**
- * int PHYSFS_setBuffer(File* handle, uint64 bufsize)
- * Set up buffering for a PhysicsFS file handle.
- */
- [CCode (cname = "PHYSFS_setBuffer")]
- public bool set_buffering(uint64 buf_size);
-
- /**
- * int PHYSFS_flush(File* handle)
- * Flush a buffered PhysicsFS file handle.
- */
- [CCode (cname = "PHYSFS_flush")]
- public bool flush();
-
- /**
- * int64 PHYSFS_readBytes(File* handle, void* buffer, uint64 len)
- * Read bytes from a PhysicsFS filehandle
- */
- [CCode (cname = "PHYSFS_readBytes")]
- public int64 read_bytes([CCode (array_length = false)] uint8[] buffer, uint64 len);
-
- /**
- * int64 PHYSFS_writeBytes(File* handle, const void* buffer, uint64 len)
- * Write data to a PhysicsFS filehandle
- */
- [CCode (cname = "PHYSFS_writeBytes")]
- public int64 write_bytes(uint8[] buffer);
-
- /**
- * int PHYSFS_readSLE16(File* file, int16 *val)
- * Read and convert a signed 16-bit littleendian value.
- */
- [CCode (cname = "PHYSFS_readSLE16")]
- public bool readSLE16(out int16 val);
-
- /**
- * int PHYSFS_readULE16(File* file, uint16 *val)
- * Read and convert an unsigned 16-bit littleendian value.
- */
- [CCode (cname = "PHYSFS_readULE16")]
- public bool readULE16(out uint16 val);
-
- /**
- * int PHYSFS_readSBE16(File* file, int16 *val)
- * Read and convert a signed 16-bit bigendian value.
- */
- [CCode (cname = "PHYSFS_readSBE16")]
- public bool readSBE16(out int16 val);
-
- /**
- * int PHYSFS_readUBE16(File* file, uint16 *val)
- * Read and convert an unsigned 16-bit bigendian value.
- */
- [CCode (cname = "PHYSFS_readUBE16")]
- public bool readUBE16(out uint16 val);
-
- /**
- * int PHYSFS_readSLE32(File* file, int32 *val)
- * Read and convert a signed 32-bit littleendian value.
- */
- [CCode (cname = "PHYSFS_readSLE32")]
- public bool readSLE32(out int32 val);
-
- /**
- * int PHYSFS_readULE32(File* file, uint32 *val)
- * Read and convert an unsigned 32-bit littleendian value.
- */
- [CCode (cname = "PHYSFS_readULE32")]
- public bool readULE32(out uint32 val);
-
- /**
- * int PHYSFS_readSBE32(File* file, int32 *val)
- * Read and convert a signed 32-bit bigendian value.
- */
- [CCode (cname = "PHYSFS_readSBE32")]
- public bool readSBE32(out int32 val);
-
- /**
- * int PHYSFS_readUBE32(File* file, uint32 *val)
- * Read and convert an unsigned 32-bit bigendian value.
- */
- [CCode (cname = "PHYSFS_readUBE32")]
- public bool readUBE32(out uint32 val);
-
- /**
- * int PHYSFS_readSLE64(File* file, int64 *val)
- * Read and convert a signed 64-bit littleendian value.
- */
- [CCode (cname = "PHYSFS_readSLE64")]
- public bool readSLE64(out int64 val);
-
- /**
- * int PHYSFS_readULE64(File* file, uint64 *val)
- * Read and convert an unsigned 64-bit littleendian value.
- */
- [CCode (cname = "PHYSFS_readULE64")]
- public bool readULE64(out uint64 val);
-
- /**
- * int PHYSFS_readSBE64(File* file, int64 *val)
- * Read and convert a signed 64-bit bigendian value.
- */
- [CCode (cname = "PHYSFS_readSBE64")]
- public bool readSBE64(out int64 val);
-
- /**
- * int PHYSFS_readUBE64(File* file, uint64 *val)
- * Read and convert an unsigned 64-bit bigendian value.
- */
- [CCode (cname = "PHYSFS_readUBE64")]
- public bool readUBE64(out uint64 val);
-
- /**
- * int PHYSFS_writeSLE16(File* file, int16 val)
- * Convert and write a signed 16-bit littleendian value.
- */
- [CCode (cname = "PHYSFS_writeSLE16")]
- public bool writeSLE16(int16 val);
-
- /**
- * int PHYSFS_writeULE16(File* file, uint16 val)
- * Convert and write an unsigned 16-bit littleendian value.
- */
- [CCode (cname = "PHYSFS_writeULE16")]
- public bool writeULE16(uint16 val);
-
- /**
- * int PHYSFS_writeSBE16(File* file, int16 val)
- * Convert and write a signed 16-bit bigendian value.
- */
- [CCode (cname = "PHYSFS_writeSBE16")]
- public bool writeSBE16(int16 val);
-
- /**
- * int PHYSFS_writeUBE16(File* file, uint16 val)
- * Convert and write an unsigned 16-bit bigendian value.
- */
- [CCode (cname = "PHYSFS_writeUBE16")]
- public bool writeUBE16(uint16 val);
-
- /**
- * int PHYSFS_writeSLE32(File* file, int32 val)
- * Convert and write a signed 32-bit littleendian value.
- */
- [CCode (cname = "PHYSFS_writeSLE32")]
- public bool writeSLE32(int32 val);
-
- /**
- * int PHYSFS_writeULE32(File* file, uint32 val)
- * Convert and write an unsigned 32-bit littleendian value.
- */
- [CCode (cname = "PHYSFS_writeULE32")]
- public bool writeULE32(uint32 val);
-
- /**
- * int PHYSFS_writeSBE32(File* file, int32 val)
- * Convert and write a signed 32-bit bigendian value.
- */
- [CCode (cname = "PHYSFS_writeSBE32")]
- public bool writeSBE32(int32 val);
-
- /**
- * int PHYSFS_writeUBE32(File* file, uint32 val)
- * Convert and write an unsigned 32-bit bigendian value.
- */
- [CCode (cname = "PHYSFS_writeUBE32")]
- public bool writeUBE32(uint32 val);
-
- /**
- * int PHYSFS_writeSLE64(File* file, int64 val)
- * Convert and write a signed 64-bit littleendian value.
- */
- [CCode (cname = "PHYSFS_writeSLE64")]
- public bool writeSLE64(int64 val);
-
- /**
- * int PHYSFS_writeULE64(File* file, uint64 val)
- * Convert and write an unsigned 64-bit littleendian value.
- */
- [CCode (cname = "PHYSFS_writeULE64")]
- public bool writeULE64(uint64 val);
-
- /**
- * int PHYSFS_writeSBE64(File* file, int64 val)
- * Convert and write a signed 64-bit bigending value.
- */
- [CCode (cname = "PHYSFS_writeSBE64")]
- public bool writeSBE64(int64 val);
-
- /**
- * int PHYSFS_writeUBE64(File* file, uint64 val)
- * Convert and write an unsigned 64-bit bigendian value.
- */
- [CCode (cname = "PHYSFS_writeUBE64")]
- public bool writeUBE64(uint64 val);
-
- /**
- * int PHYSFS_mountHandle(File* file, const char *new_dir, const char *mountPoint, int appendToPath)
- * Add an archive, contained in a File handle, to the search path.
- */
- [CCode (cname = "PHYSFS_mountHandle")]
- public bool mount_handle(string new_dir, string mountPoint, bool append_to_path);
- }
-
- /* Byteorder stuff... */
-
- /**
- * int16 PHYSFS_swapSLE16(int16 val)
- * Swap littleendian signed 16 to platform's native byte order.
- */
- [CCode (cname = "PHYSFS_swapSLE16")]
- public int16 swapSLE16(int16 val);
-
-
- /**
- * uint16 PHYSFS_swapULE16(uint16 val)
- * Swap littleendian unsigned 16 to platform's native byte order.
- */
- [CCode (cname = "PHYSFS_swapULE16")]
- public uint16 swapULE16(uint16 val);
-
- /**
- * int32 PHYSFS_swapSLE32(int32 val)
- * Swap littleendian signed 32 to platform's native byte order.
- */
- [CCode (cname = "PHYSFS_swapSLE32")]
- public int32 swapSLE32(int32 val);
-
-
- /**
- * uint32 PHYSFS_swapULE32(uint32 val)
- * Swap littleendian unsigned 32 to platform's native byte order.
- */
- [CCode (cname = "PHYSFS_swapULE32")]
- public uint32 swapULE32(uint32 val);
-
- /**
- * int64 PHYSFS_swapSLE64(int64 val)
- * Swap littleendian signed 64 to platform's native byte order.
- */
- [CCode (cname = "PHYSFS_swapSLE64")]
- public int64 swapSLE64(int64 val);
-
- /**
- * uint64 PHYSFS_swapULE64(uint64 val)
- * Swap littleendian unsigned 64 to platform's native byte order.
- */
- [CCode (cname = "PHYSFS_swapULE64")]
- public uint64 swapULE64(uint64 val);
-
- /**
- * int16 PHYSFS_swapSBE16(int16 val)
- * Swap bigendian signed 16 to platform's native byte order.
- */
- [CCode (cname = "PHYSFS_swapSBE16")]
- public int16 swapSBE16(int16 val);
-
- /**
- * uint16 PHYSFS_swapUBE16(uint16 val)
- * Swap bigendian unsigned 16 to platform's native byte order.
- */
- [CCode (cname = "PHYSFS_swapUBE16")]
- public uint16 swapUBE16(uint16 val);
-
- /**
- * int32 PHYSFS_swapSBE32(int32 val)
- * Swap bigendian signed 32 to platform's native byte order.
- */
- [CCode (cname = "PHYSFS_swapSBE32")]
- public int32 swapSBE32(int32 val);
-
- /**
- * uint32 PHYSFS_swapUBE32(uint32 val)
- * Swap bigendian unsigned 32 to platform's native byte order.
- */
- [CCode (cname = "PHYSFS_swapUBE32")]
- public uint32 swapUBE32(uint32 val);
-
- /**
- * int64 PHYSFS_swapSBE64(int64 val)
- * Swap bigendian signed 64 to platform's native byte order.
- */
- [CCode (cname = "PHYSFS_swapSBE64")]
- public int64 swapSBE64(int64 val);
-
- /**
- * uint64 PHYSFS_swapUBE64(uint64 val)
- * Swap bigendian unsigned 64 to platform's native byte order.
- */
- [CCode (cname = "PHYSFS_swapUBE64")]
- public uint64 swapUBE64(uint64 val);
-
- /* Everything above this line is part of the PhysicsFS 1.0 API. */
-
- /**
- * int PHYSFS_isInit()
- * Determine if the PhysicsFS library is initialized.
- */
- [CCode (cname = "PHYSFS_isInit")]
- public bool is_init();
-
- /**
- * int PHYSFS_symbolicLinksPermitted()
- * Determine if the symbolic links are permitted.
- */
- [CCode (cname = "PHYSFS_symbolicLinksPermitted")]
- public bool symbolic_links_permitted();
-
- [CCode (has_target = false)]
- public delegate int Init(); /**< Initialize. Can be NULL. Zero on failure. */
- [CCode (has_target = false)]
- public delegate void Deinit(); /**< Deinitialize your allocator. Can be NULL. */
- [CCode (has_target = false)]
- public delegate void* Malloc(uint64 size); /**< Allocate like malloc(). */
- public delegate void* Realloc(void* dst, uint64 size); /**< Reallocate like realloc(). */
- public delegate void Free(void* pointer); /**< Free memory from Malloc or Realloc. */
- /**
- * PHYSFS_Allocator
- * PhysicsFS allocation function pointers.
- */
- [CCode (cname = "PHYSFS_Allocator", has_type_id = false)]
- public struct Allocator {
- [CCode (cname = "init")]
- public Init init_func; /**< Initialize. Can be NULL. Zero on failure. */
- [CCode (cname = "deinit")]
- public Deinit deinit_func; /**< Deinitialize your allocator. Can be NULL. */
- [CCode (cname = "malloc")]
- public Malloc malloc_func; /**< Allocate like malloc(). */
- [CCode (cname = "realloc")]
- public Realloc realloc_func; /**< Reallocate like realloc(). */
- [CCode (cname = "free")]
- public Free free_func; /**< Free memory from Malloc or Realloc. */
- }
-
- /**
- * int PHYSFS_setAllocator(const PHYSFS_Allocator *allocator)
- * Hook your own allocation routines into PhysicsFS.
- */
- public bool set_allocator(Allocator* allocator);
-
- /**
- * int PHYSFS_mount(const char *new_dir, const char *mountPoint, int appendToPath)
- * Add an archive or directory to the search path.
- */
- [CCode (cname = "PHYSFS_mount")]
- public bool mount(string new_dir, string mountPoint, bool append_to_path);
-
- /**
- * int PHYSFS_getMountPoint(const char *dir)
- * Determine a mounted archive's mountpoint.
- */
- [CCode (cname = "PHYSFS_getMountPoint")]
- public unowned string? get_mount_point(string dir);
-
- /**
- * PHYSFS_StringCallback
- * Function signature for callbacks that report strings.
- */
- [CCode (cname = "PHYSFS_StringCallback", has_target = false)]
- public delegate void StringCallback (void* data, string str);
-
- /**
- * PHYSFS_EnumFilesCallback
- * Function signature for callbacks that enumerate files.
- */
- [CCode (cname = "PHYSFS_EnumFilesCallback", has_target = false)]
- public delegate void EnumFilesCallback (void* data, string origdir, string fname);
-
- /**
- * void PHYSFS_getCdRomDirsCallback(PHYSFS_StringCallback c, void* d)
- * Enumerate CD-ROM directories, using an application-defined callback.
- */
- [CCode (cname = "PHYSFS_getCdRomDirsCallback")]
- public void get_cdrom_dirs_callback(StringCallback c, void* d);
-
- /**
- * void PHYSFS_getSearchPathCallback(PHYSFS_StringCallback c, void* d)
- * Enumerate the search path, using an application-defined callback.
- */
- [CCode (cname = "PHYSFS_getSearchPathCallback")]
- public void get_search_path_callback(StringCallback c, void* d);
-
- /**
- * void PHYSFS_enumerateFilesCallback(const char *dir, PHYSFS_EnumFilesCallback c, void* d)
- * Get a file listing of a search path's directory, using an application-defined callback.
- */
- [CCode (cname = "PHYSFS_enumerateFilesCallback")]
- public void enumerate_files_callback(string dir, EnumFilesCallback c, void* d) ;
-
- /**
- * void PHYSFS_utf8FromUcs4(const uint32 *src, char *dst, uint64 len)
- * Convert a UCS-4 string to a UTF-8 string.
- */
- [CCode (cname = "PHYSFS_utf8FromUcs4")]
- public void utf8_from_ucs4([CCode (array_length = false)] uint32[] src, out string dst, uint64 len);
-
- /**
- * void PHYSFS_utf8ToUcs4(const char *src, uint32 *dst, uint64 len)
- * Convert a UTF-8 string to a UCS-4 string.
- */
- [CCode (cname = "PHYSFS_utf8ToUcs4")]
- public void utf8_to_ucs4(string src, [CCode (array_length = false)] uint32[] dst, uint64 len);
-
- /**
- * void PHYSFS_utf8FromUcs2(const uint16 *src, char *dst, uint64 len)
- * Convert a UCS-2 string to a UTF-8 string.
- */
- [CCode (cname = "PHYSFS_utf8FromUcs2")]
- public void utf8_from_ucs2([CCode (array_length = false)] uint16[] src, out string dst, uint64 len);
-
- /**
- * PHYSFS_utf8ToUcs2(const char *src, uint16 *dst, uint64 len)
- * Convert a UTF-8 string to a UCS-2 string.
- */
- [CCode (cname = "PHYSFS_utf8ToUcs2")]
- public void utf8_to_ucs2(string src, [CCode (array_length = false)] uint16[] dst, uint64 len);
-
- /**
- * void PHYSFS_utf8FromLatin1(const char *src, char *dst, uint64 len)
- * Convert a UTF-8 string to a Latin1 string.
- */
- [CCode (cname = "PHYSFS_utf8FromLatin1")]
- public void utf8_from_latin1(string src, [CCode (array_length = false)] uint8[] dst, uint64 len);
-
- /* Everything above this line is part of the PhysicsFS 2.0 API. */
-
- /**
- * int PHYSFS_caseFold(const uint32 from, uint32 *to)
- * "Fold" a Unicode codepoint to a lowercase equivalent.
- */
- [CCode (cname = "PHYSFS_caseFold")]
- public int case_fold(uint32 from, out uint32 to);
-
- /**
- * int PHYSFS_utf8stricmp(const char *str1, const char *str2)
- * Case-insensitive compare of two UTF-8 strings.
- */
- [CCode (cname = "PHYSFS_utf8stricmp")]
- public int utf8_stricmp(string str1, string str2);
-
- /**
- * int PHYSFS_utf16stricmp(const uint16 *str1, const uint16 *str2)
- * Case-insensitive compare of two UTF-16 strings.
- */
- [CCode (cname = "PHYSFS_utf16stricmp")]
- public int utf16_stricmp([CCode (array_length = false)] uint16[] str1, [CCode (array_length = false)]
uint16[] str2);
-
- /**
- * int PHYSFS_ucs4stricmp(const uint32 *str1, const uint32 *str2)
- * Case-insensitive compare of two UCS-4 strings.
- */
- [CCode (cname = "PHYSFS_ucs4stricmp")]
- public int ucs4_stricmp([CCode (array_length = false)] uint32[] str1, [CCode (array_length = false)]
uint32[] str2);
-
- /**
- * PHYSFS_EnumerateCallback
- * Possible return values from PHYSFS_EnumerateCallback.
- */
- [CCode (cprefix = "PHYSFS_ENUM_", cname="int", has_type_id = false)]
- public enum EnumerateCallbackResult {
- ERROR = -1, /**< Stop enumerating, report error to app. */
- STOP = 0, /**< Stop enumerating, report success to app. */
- OK = 1 /**< Keep enumerating, no problems */
- }
-
- /**
- * PHYSFS_EnumerateCallback
- * Function signature for callbacks that enumerate and return results.
- */
- public delegate EnumerateCallbackResult EnumerateCallback(void* data, string origdir, string fname);
-
- /**
- * int PHYSFS_enumerate(const char *dir, PHYSFS_EnumerateCallback c, void* d)
- * Get a file listing of a search path's directory, using an application-defined callback, with errors
reported.
- */
- [CCode (cname = "PHYSFS_enumerate")]
- public bool enumerate(string dir, EnumerateCallback c);
-
- /**
- * int PHYSFS_unmount(const char *old_dir)
- * Remove a directory or archive from the search path.
- */
- [CCode (cname = "PHYSFS_unmount")]
- public bool unmount(string old_dir);
-
- /**
- * const PHYSFS_Allocator *PHYSFS_getAllocator()
- * Discover the current allocator.
- */
- [CCode (cname = "PHYSFS_getAllocator")]
- public unowned Allocator* get_allocator();
-
- /**
- * FileType
- * Possible types of a file.
- */
- [CCode (cprefix = "PHYSFS_FILETYPE_", cname="int", has_type_id = false)]
- public enum FileType {
- REGULAR, /**< a normal File */
- DIRECTORY, /**< a directory */
- SYMLINK, /**< a symlink */
- OTHER /**< something completely different like a device */
- }
-
- /**
- * PHYSFS_Stat
- * Meta data for a file or directory
- */
- [CCode (cname = "PHYSFS_Stat", has_type_id = false)]
- public struct Stat {
- public int64 filesize; /**< size in bytes, -1 for non-files and unknown */
- public int64 modtime; /**< last modification time */
- public int64 createtime; /**< like modtime, but for file creation time */
- public int64 accesstime; /**< like modtime, but for file access time */
- public FileType filetype; /**< File? Directory? Symlink? */
- public bool readonly; /**< non-zero if read only, zero if writable. */
- }
-
- /**
- * int PHYSFS_stat(const char *fname, PHYSFS_Stat *stat)
- * Get various information about a directory or a file.
- */
- [CCode (cname = "PHYSFS_stat")]
- public bool stat(string fname, out Stat stat);
-
- /**
- * void PHYSFS_utf8FromUtf16(const uint16 *src, char *dst, uint64 len)
- * Convert a UTF-16 string to a UTF-8 string.
- */
- [CCode (cname = "PHYSFS_utf8FromUtf16")]
- public void utf8_from_utf16([CCode (array_length = false)] uint16[] src, out string dst, uint64 len);
-
- /**
- * PHYSFS_utf8ToUtf16(const char *src, uint16 *dst, uint64 len)
- * Convert a UTF-8 string to a UTF-16 string.
- */
- [CCode (cname = "PHYSFS_utf8ToUtf16")]
- public void utf8ToUtf16(string src, [CCode (array_length = false)] uint16[] dst, uint64 len);
-
- public delegate int64 IoRead(Io* io, void* buf, uint64 len);
- public delegate int64 IoWrite(Io *io, void* buffer, uint64 len);
- public delegate bool IoSeek(Io *io, uint64 offset);
- public delegate int64 IoTell(Io *io);
- public delegate int64 IoLength(Io *io);
- public delegate Io* IoDuplicate(Io *io);
- public delegate bool IoFlush(Io *io);
- public delegate void IoDestroy(Io *io);
-
- /**
- * PHYSFS_Io
- * An abstract i/o interface.
- */
- [CCode (cname = "PHYSFS_Io", has_type_id = false)]
- public struct Io {
- /**
- * Binary compatibility information.
- */
- public uint32 version;
-
- /**
- * Instance data for this struct.
- */
- public void* opaque;
-
- /**
- * Read more data.
- */
- [CCode (cname = "read")]
- public IoRead read_func;
-
- /**
- * Write more data.
- */
- [CCode (cname = "write")]
- public IoWrite write_func;
-
- /**
- * Move i/o position to a given byte offset from start.
- */
- [CCode (cname = "seek")]
- public IoSeek seek_func;
-
- /**
- * Report current i/o position.
- */
- [CCode (cname = "tell")]
- public IoTell tell_func;
-
- /**
- * Determine size of the i/o instance's dataset.
- */
- [CCode (cname = "length")]
- public IoLength length_func;
-
- /**
- * Duplicate this i/o instance.
- */
- [CCode (cname = "duplicate")]
- public IoDuplicate duplicate_func;
-
- /**
- * Flush resources to media, or wherever.
- */
- [CCode (cname = "flush")]
- public IoFlush flush_func;
-
- /**
- * Cleanup and deallocate i/o instance.
- */
- [CCode (cname = "destroy")]
- public IoDestroy destroy_func;
- }
-
- /**
- * int PHYSFS_mountIo(Io* io, const char *new_dir, const char *mountPoint, int appendToPath)
- * Add an archive, built on a PHYSFS_Io, to the search path.
- */
- [CCode (cname = "PHYSFS_mountIo")]
- public bool mount_io(Io* io, string new_dir, string mount_point, bool append_to_path);
-
- [CCode (cname = "compute_func")]
- public delegate void MemoryDel(void* memory);
- /**
- * int PHYSFS_mountMemory(const void* buf, uint64 len, void (*del)(void* ), const char *new_dir, const
char *mountPoint, int appendToPath)
- * Add an archive, contained in a memory buffer, to the search path.
- */
- [CCode (cname = "PHYSFS_mountMemory")]
- public bool mount_memory([CCode (array_length = false)] uint8[] buf, MemoryDel? del, string new_dir,
string mount_point, bool append_to_path);
-
- /**
- * PHYSFS_ErrorCode
- * Values that represent specific causes of failure.
- */
- [CCode (cprefix = "PHYSFS_ERR_", cname="int", has_type_id = false)]
- public enum ErrorCode {
- OK, /**< Success; no error. */
- OTHER_ERROR, /**< Error not otherwise covered here. */
- OUT_OF_MEMORY, /**< Memory allocation failed. */
- NOT_INITIALIZED, /**< PhysicsFS is not initialized. */
- IS_INITIALIZED, /**< PhysicsFS is already initialized. */
- ARGV0_IS_NULL, /**< Needed argv[0], but it is NULL. */
- UNSUPPORTED, /**< Operation or feature unsupported. */
- PAST_EOF, /**< Attempted to access past end of file. */
- FILES_STILL_OPEN, /**< Files still open. */
- INVALID_ARGUMENT, /**< Bad parameter passed to an function. */
- NOT_MOUNTED, /**< Requested archive/dir not mounted. */
- NOT_FOUND, /**< File (or whatever) not found. */
- SYMLINK_FORBIDDEN,/**< Symlink seen when not permitted. */
- NO_WRITE_DIR, /**< No write dir has been specified. */
- OPEN_FOR_READING, /**< Wrote to a file opened for reading. */
- OPEN_FOR_WRITING, /**< Read from a file opened for writing. */
- NOT_A_FILE, /**< Needed a file, got a directory (etc). */
- READ_ONLY, /**< Wrote to a read-only filesystem. */
- CORRUPT, /**< Corrupted data encountered. */
- SYMLINK_LOOP, /**< Infinite symbolic link loop. */
- IO, /**< i/o error (hardware failure, etc). */
- PERMISSION, /**< Permission denied. */
- NO_SPACE, /**< No space (disk full, over quota, etc) */
- BAD_FILENAME, /**< Filename is bogus/insecure. */
- BUSY, /**< Tried to modify a file the OS needs. */
- DIR_NOT_EMPTY, /**< Tried to delete dir with files in it. */
- OS_ERROR, /**< Unspecified OS-level error. */
- DUPLICATE, /**< Duplicate entry. */
- BAD_PASSWORD, /**< Bad password. */
- APP_CALLBACK /**< Application callback reported error. */
- }
-
- /**
- * PHYSFS_ErrorCode PHYSFS_getLastErrorCode()
- * Get machine-readable error information.
- */
- [CCode (cname = "PHYSFS_getLastErrorCode")]
- public ErrorCode get_last_error_code();
-
- /**
- * const char *PHYSFS_getErrorByCode(PHYSFS_ErrorCode code)
- * Get human-readable description string for a given error code.
- */
- [CCode (cname = "PHYSFS_getErrorByCode")]
- public unowned string? get_error_by_code(ErrorCode code);
-
- /**
- * void PHYSFS_setErrorCode(PHYSFS_ErrorCode code)
- * Set the current thread's error code.
- */
- [CCode (cname = "PHYSFS_setErrorCode")]
- public void set_error_code(ErrorCode code);
-
- /**
- * const char *PHYSFS_getPrefDir(const char *org, const char *app)
- * Get the user-and-app-specific path where files can be written.
- */
- [CCode (cname = "PHYSFS_getPrefDir")]
- public unowned string? get_pref_dir(string org, string app);
-
- public delegate void* ArchiverOpenArchive(Io* io, string name, bool for_write, int* claimed);
- public delegate EnumerateCallbackResult ArchiverEnumerate(void* opaque, string dirname,
EnumerateCallback cb, string origdir, void* callbackdata);
- public delegate Io* ArchiverOpenRead(void* opaque, string fnm);
- public delegate Io* ArchiverOpenWrite(void* opaque, string filename);
- public delegate Io* ArchiverOpenAppend(void* opaque, string filename);
- public delegate bool ArchiverRemove(void* opaque, string filename);
- public delegate bool ArchiverMkdir(void* opaque, string filename);
- public delegate bool ArchiverStat(void* opaque, string fn, out Stat stat);
- public delegate void ArchiverCloseArchive(void* opaque);
- /**
- * PHYSFS_Archiver
- * Abstract interface to provide support for user-defined archives.
- */
- [CCode (cname = "PHYSFS_Archiver", has_type_id = false)]
- public struct Archiver {
- /**
- * Binary compatibility information.
- */
- public uint32 version;
-
- /**
- * Basic info about this archiver.
- */
- public ArchiveInfo info;
-
- /**
- * Open an archive provided by (io).
- */
- [CCode (cname = "openArchive")]
- public ArchiverOpenArchive open_archive_func;
-
- /**
- * List all files in (dirname).
- */
- [CCode (cname = "enumerate")]
- public ArchiverEnumerate enumerate_func;
-
- /**
- * Open a file in this archive for reading.
- */
- [CCode (cname = "openRead")]
- public ArchiverOpenRead open_read_func;
-
- /**
- * Open a file in this archive for writing.
- */
- [CCode (cname = "openWrite")]
- public ArchiverOpenWrite open_write_func;
-
- /**
- * Open a file in this archive for appending.
- */
- [CCode (cname = "openAppend")]
- public ArchiverOpenAppend open_append_func;
-
- /**
- * Delete a file or directory in the archive.
- */
- [CCode (cname = "remove")]
- public ArchiverRemove remove_func;
-
- /**
- * Create a directory in the archive.
- */
- [CCode (cname = "mkdir")]
- public ArchiverMkdir mkdir_func;
-
- /**
- * Obtain basic file metadata.
- */
- [CCode (cname = "stat")]
- public ArchiverStat stat_func;
-
- /**
- * Destruct a previously-opened archive.
- */
- [CCode (cname = "closeArchive")]
- public ArchiverCloseArchive close_archive_func;
- }
-
- /**
- * int PHYSFS_registerArchiver(const PHYSFS_Archiver *archiver)
- * Add a new archiver to the system.
- */
- [CCode (cname = "PHYSFS_registerArchiver")]
- public bool register_archiver(Archiver* archiver);
-
- /**
- * int PHYSFS_deregisterArchiver(const char *ext)
- * Remove an archiver from the system.
- */
- [CCode (cname = "PHYSFS_deregisterArchiver")]
- public bool deregister_archiver(string ext);
+ /**
+ * PHYSFS_ArchiveInfo
+ * Information on various PhysicsFS-supported archives.
+ */
+ [CCode (cname = "PHYSFS_ArchiveInfo", has_type_id = false)]
+ public struct ArchiveInfo {
+ public string extension; /**< Archive file extension: "ZIP", for example. */
+ public string description; /**< Human-readable archive description. */
+ public string author; /**< Person who did support for this archive. */
+ public string url; /**< URL related to this archive */
+ [CCode (cname = "supportsSymlinks")]
+ public bool supports_symlinks; /**< non-zero if archive offers symbolic links. */
+ }
+
+ /**
+ * PHYSFS_Version
+ * Information the version of PhysicsFS in use.
+ */
+ [CCode (cname = "PHYSFS_Version", has_type_id = false)]
+ public struct Version {
+ public uint8 major; /**< major revision */
+ public uint8 minor; /**< minor revision */
+ public uint8 patch; /**< patchlevel */
+ }
+ /**
+ * void PHYSFS_getLinkedVersion (PHYSFS_Version *ver)
+ * Get the version of PhysicsFS that is linked against your program.
+ */
+ [CCode (cname = "PHYSFS_getLinkedVersion")]
+ public void get_linked_version (Version* ver);
+
+ /**
+ * int PHYSFS_init (const char *argv0)
+ * Initialize the PhysicsFS library.
+ */
+ [CCode (cname = "PHYSFS_init")]
+ public bool init (string? argv0);
+
+ /**
+ * int PHYSFS_deinit ()
+ * Deinitialize the PhysicsFS library.
+ */
+ [CCode (cname = "PHYSFS_deinit")]
+ public bool deinit ();
+
+ /**
+ * const PHYSFS_ArchiveInfo **PHYSFS_supportedArchiveTypes ()
+ * Get a list of supported archive types.
+ */
+ [CCode (cname = "PHYSFS_supportedArchiveTypes", array_length = false)]
+ public unowned ArchiveInfo*[] supported_archive_types ();
+
+ /**
+ * void PHYSFS_freeList (void* listVar)
+ * Deallocate resources of lists returned by PhysicsFS.
+ */
+ [CCode (cname = "PHYSFS_freeList")]
+ public void free_list (void* list_var);
+
+ /**
+ * const char *PHYSFS_getLastError ()
+ * Get human-readable error information.
+ */
+ [CCode (cname = "PHYSFS_getLastError")]
+ public unowned string? get_last_error ();
+
+ /**
+ * const char *PHYSFS_getDirSeparator ()
+ * Get platform-dependent dir separator string.
+ */
+ [CCode (cname = "PHYSFS_getDirSeparator")]
+ public unowned string? get_dir_separator ();
+
+ /**
+ * void PHYSFS_permitSymbolicLinks (int allow)
+ * Enable or disable following of symbolic links.
+ */
+ [CCode (cname = "PHYSFS_permitSymbolicLinks")]
+ public void permit_symbolic_links (bool allow);
+
+ /**
+ * char **PHYSFS_getCdRomDirs ()
+ * Get an array of paths to available CD-ROM drives.
+ */
+ [CCode (cname = "PHYSFS_getCdRomDirs", array_length = false)]
+ public string?[] get_cdrom_dirs ();
+
+ /**
+ * const char *PHYSFS_getBaseDir ()
+ * Get the path where the application resides.
+ */
+ [CCode (cname = "PHYSFS_getBaseDir")]
+ public unowned string? get_base_dir ();
+
+
+ /**
+ * const char *PHYSFS_getUserDir ()
+ * Get the path where user's home directory resides.
+ */
+ [CCode (cname = "PHYSFS_getUserDir")]
+ public unowned string? get_user_dir ();
+
+ /**
+ * const char *PHYSFS_getWriteDir ()
+ * Get path where PhysicsFS will allow file writing.
+ */
+ [CCode (cname = "PHYSFS_getWriteDir")]
+ public unowned string? get_write_dir ();
+
+ /**
+ * int PHYSFS_setWriteDir (const char *new_dir)
+ * Tell PhysicsFS where it may write files.
+ */
+ [CCode (cname = "PHYSFS_setWriteDir")]
+ public bool set_write_dir (string new_dir);
+
+
+ /**
+ * int PHYSFS_addToSearchPath (const char *new_dir, int appendToPath)
+ * Add an archive or directory to the search path.
+ */
+ [CCode (cname = "PHYSFS_addToSearchPath")]
+ public bool add_to_search_path (string new_dir, bool append_to_path);
+
+ /**
+ * int PHYSFS_removeFromSearchPath (const char *old_dir)
+ * Remove a directory or archive from the search path.
+ */
+ [CCode (cname = "PHYSFS_removeFromSearchPath")]
+ public bool remove_from_search_path (string old_dir);
+
+ /**
+ * char **PHYSFS_getSearchPath ()
+ * Get the current search path.
+ */
+ [CCode (cname = "PHYSFS_getSearchPath", array_length = false)]
+ public unowned string?[] PHYSFS_getSearchPath ();
+
+ /**
+ * int PHYSFS_setSaneConfig (const char *organization, const char *appName, const char *archiveExt,
int includeCdRoms, int archivesFirst)
+ * Set up sane, default paths.
+ */
+ [CCode (cname = "PHYSFS_setSaneConfig")]
+ public bool set_sane_config (string organization, string app_name, string archive_ext, bool
include_cdroms, bool archives_first);
+
+ /* Directory management stuff ... */
+
+ /**
+ * int PHYSFS_mkdir (const char *dirName)
+ * Create a directory.
+ */
+ [CCode (cname = "PHYSFS_mkdir")]
+ public bool mkdir (string dir_name);
+
+ /**
+ * int PHYSFS_delete (const char *filename)
+ * Delete a file or directory.
+ */
+ [CCode (cname = "PHYSFS_delete")]
+ public bool delete (string filename);
+
+ /**
+ * const char *PHYSFS_getRealDir (const char *filename)
+ * Figure out where in the search path a file resides.
+ */
+ [CCode (cname = "PHYSFS_getRealDir")]
+ public unowned string? get_real_dir (string filename);
+
+ /**
+ * char **PHYSFS_enumerateFiles (const char *dir)
+ * Get a file listing of a search path's directory.
+ */
+ [CCode (cname = "PHYSFS_enumerateFiles", array_length = false)]
+ public unowned string?[] enumerate_files (string dir);
+
+ /**
+ * int PHYSFS_exists (const char *fname)
+ * Determine if a file exists in the search path.
+ */
+ [CCode (cname = "PHYSFS_exists")]
+ public bool exists (string fname);
+
+ /**
+ * int PHYSFS_isDirectory (const char *fname)
+ * Determine if a file in the search path is really a directory.
+ */
+ [CCode (cname = "PHYSFS_isDirectory")]
+ public bool is_directory (string fname);
+
+ /**
+ * int PHYSFS_isSymbolicLink (const char *fname)
+ * Determine if a file in the search path is really a symbolic link.
+ */
+ [CCode (cname = "PHYSFS_isSymbolicLink")]
+ public bool is_symbolic_link (string fname);
+
+ /**
+ * int64 PHYSFS_getLastModTime (const char *filename)
+ * Get the last modification time of a file.
+ */
+ [CCode (cname = "PHYSFS_getLastModTime")]
+ public int64 get_last_mod_time (string filename);
+
+ /* i/o stuff... */
+
+ [Compact]
+ [CCode (cname = "PHYSFS_File", has_type_id = false, free_function = "PHYSFS_close")]
+ public class File {
+ /**
+ * File* PHYSFS_openWrite (const char *filename)
+ * Open a file for writing.
+ */
+ [CCode (cname = "PHYSFS_openWrite")]
+ public File.open_write (string filename);
+
+ /**
+ * File* PHYSFS_openAppend (const char *filename)
+ * Open a file for appending.
+ */
+ [CCode (cname = "PHYSFS_openAppend")]
+ public File.open_append (string filename);
+
+ /**
+ * File* PHYSFS_openRead (const char *filename)
+ * Open a file for reading.
+ */
+ [CCode (cname = "PHYSFS_openRead")]
+ public File.open_read (string filename);
+
+ /**
+ * int PHYSFS_close (File* handle)
+ * Close a PhysicsFS filehandle.
+ */
+ [CCode (cname = "PHYSFS_close")]
+ public bool close ();
+
+ /**
+ * int64 PHYSFS_read (File* handle, void* buffer, uint32 objSize, uint32 objCount)
+ * Read data from a PhysicsFS filehandle
+ */
+ [CCode (cname = "PHYSFS_read")]
+ public int64 read ([CCode (array_length = false)] uint8[] buffer, uint32 obj_size, uint32
obj_count);
+
+ /**
+ * int64 PHYSFS_write (File* handle, const void* buffer, uint32 objSize, uint32 objCount)
+ * Write data to a PhysicsFS filehandle
+ */
+ [CCode (cname = "PHYSFS_write")]
+ public int64 write ([CCode (array_length = false)] uint8[] buffer, uint32 obj_size, uint32
obj_count);
+
+ /* File position stuff... */
+
+ /**
+ * int PHYSFS_eof (File* handle)
+ * Check for end-of-file state on a PhysicsFS filehandle.
+ */
+ [CCode (cname = "PHYSFS_eof")]
+ public bool eof ();
+
+ /**
+ * int64 PHYSFS_tell (File* handle)
+ * Determine current position within a PhysicsFS filehandle.
+ */
+ [CCode (cname = "PHYSFS_tell")]
+ public int64 tell ();
+
+ /**
+ * int PHYSFS_seek (File* handle, uint64 pos)
+ * Seek to a new position within a PhysicsFS filehandle.
+ */
+ [CCode (cname = "PHYSFS_seek")]
+ public int seek (uint64 pos);
+
+ /**
+ * int64 FileLength (File* handle)
+ * Get total length of a file in bytes.
+ */
+ [CCode (cname = "PHYSFS_fileLength")]
+ public int64 length ();
+
+ /* Buffering stuff... */
+
+ /**
+ * int PHYSFS_setBuffer (File* handle, uint64 bufsize)
+ * Set up buffering for a PhysicsFS file handle.
+ */
+ [CCode (cname = "PHYSFS_setBuffer")]
+ public bool set_buffering (uint64 buf_size);
+
+ /**
+ * int PHYSFS_flush (File* handle)
+ * Flush a buffered PhysicsFS file handle.
+ */
+ [CCode (cname = "PHYSFS_flush")]
+ public bool flush ();
+
+ /**
+ * int64 PHYSFS_readBytes (File* handle, void* buffer, uint64 len)
+ * Read bytes from a PhysicsFS filehandle
+ */
+ [CCode (cname = "PHYSFS_readBytes")]
+ public int64 read_bytes ([CCode (array_length = false)] uint8[] buffer, uint64 len);
+
+ /**
+ * int64 PHYSFS_writeBytes (File* handle, const void* buffer, uint64 len)
+ * Write data to a PhysicsFS filehandle
+ */
+ [CCode (cname = "PHYSFS_writeBytes")]
+ public int64 write_bytes (uint8[] buffer);
+
+ /**
+ * int PHYSFS_readSLE16 (File* file, int16 *val)
+ * Read and convert a signed 16-bit littleendian value.
+ */
+ [CCode (cname = "PHYSFS_readSLE16")]
+ public bool readSLE16 (out int16 val);
+
+ /**
+ * int PHYSFS_readULE16 (File* file, uint16 *val)
+ * Read and convert an unsigned 16-bit littleendian value.
+ */
+ [CCode (cname = "PHYSFS_readULE16")]
+ public bool readULE16 (out uint16 val);
+
+ /**
+ * int PHYSFS_readSBE16 (File* file, int16 *val)
+ * Read and convert a signed 16-bit bigendian value.
+ */
+ [CCode (cname = "PHYSFS_readSBE16")]
+ public bool readSBE16 (out int16 val);
+
+ /**
+ * int PHYSFS_readUBE16 (File* file, uint16 *val)
+ * Read and convert an unsigned 16-bit bigendian value.
+ */
+ [CCode (cname = "PHYSFS_readUBE16")]
+ public bool readUBE16 (out uint16 val);
+
+ /**
+ * int PHYSFS_readSLE32 (File* file, int32 *val)
+ * Read and convert a signed 32-bit littleendian value.
+ */
+ [CCode (cname = "PHYSFS_readSLE32")]
+ public bool readSLE32 (out int32 val);
+
+ /**
+ * int PHYSFS_readULE32 (File* file, uint32 *val)
+ * Read and convert an unsigned 32-bit littleendian value.
+ */
+ [CCode (cname = "PHYSFS_readULE32")]
+ public bool readULE32 (out uint32 val);
+
+ /**
+ * int PHYSFS_readSBE32 (File* file, int32 *val)
+ * Read and convert a signed 32-bit bigendian value.
+ */
+ [CCode (cname = "PHYSFS_readSBE32")]
+ public bool readSBE32 (out int32 val);
+
+ /**
+ * int PHYSFS_readUBE32 (File* file, uint32 *val)
+ * Read and convert an unsigned 32-bit bigendian value.
+ */
+ [CCode (cname = "PHYSFS_readUBE32")]
+ public bool readUBE32 (out uint32 val);
+
+ /**
+ * int PHYSFS_readSLE64 (File* file, int64 *val)
+ * Read and convert a signed 64-bit littleendian value.
+ */
+ [CCode (cname = "PHYSFS_readSLE64")]
+ public bool readSLE64 (out int64 val);
+
+ /**
+ * int PHYSFS_readULE64 (File* file, uint64 *val)
+ * Read and convert an unsigned 64-bit littleendian value.
+ */
+ [CCode (cname = "PHYSFS_readULE64")]
+ public bool readULE64 (out uint64 val);
+
+ /**
+ * int PHYSFS_readSBE64 (File* file, int64 *val)
+ * Read and convert a signed 64-bit bigendian value.
+ */
+ [CCode (cname = "PHYSFS_readSBE64")]
+ public bool readSBE64 (out int64 val);
+
+ /**
+ * int PHYSFS_readUBE64 (File* file, uint64 *val)
+ * Read and convert an unsigned 64-bit bigendian value.
+ */
+ [CCode (cname = "PHYSFS_readUBE64")]
+ public bool readUBE64 (out uint64 val);
+
+ /**
+ * int PHYSFS_writeSLE16 (File* file, int16 val)
+ * Convert and write a signed 16-bit littleendian value.
+ */
+ [CCode (cname = "PHYSFS_writeSLE16")]
+ public bool writeSLE16 (int16 val);
+
+ /**
+ * int PHYSFS_writeULE16 (File* file, uint16 val)
+ * Convert and write an unsigned 16-bit littleendian value.
+ */
+ [CCode (cname = "PHYSFS_writeULE16")]
+ public bool writeULE16 (uint16 val);
+
+ /**
+ * int PHYSFS_writeSBE16 (File* file, int16 val)
+ * Convert and write a signed 16-bit bigendian value.
+ */
+ [CCode (cname = "PHYSFS_writeSBE16")]
+ public bool writeSBE16 (int16 val);
+
+ /**
+ * int PHYSFS_writeUBE16 (File* file, uint16 val)
+ * Convert and write an unsigned 16-bit bigendian value.
+ */
+ [CCode (cname = "PHYSFS_writeUBE16")]
+ public bool writeUBE16 (uint16 val);
+
+ /**
+ * int PHYSFS_writeSLE32 (File* file, int32 val)
+ * Convert and write a signed 32-bit littleendian value.
+ */
+ [CCode (cname = "PHYSFS_writeSLE32")]
+ public bool writeSLE32 (int32 val);
+
+ /**
+ * int PHYSFS_writeULE32 (File* file, uint32 val)
+ * Convert and write an unsigned 32-bit littleendian value.
+ */
+ [CCode (cname = "PHYSFS_writeULE32")]
+ public bool writeULE32 (uint32 val);
+
+ /**
+ * int PHYSFS_writeSBE32 (File* file, int32 val)
+ * Convert and write a signed 32-bit bigendian value.
+ */
+ [CCode (cname = "PHYSFS_writeSBE32")]
+ public bool writeSBE32 (int32 val);
+
+ /**
+ * int PHYSFS_writeUBE32 (File* file, uint32 val)
+ * Convert and write an unsigned 32-bit bigendian value.
+ */
+ [CCode (cname = "PHYSFS_writeUBE32")]
+ public bool writeUBE32 (uint32 val);
+
+ /**
+ * int PHYSFS_writeSLE64 (File* file, int64 val)
+ * Convert and write a signed 64-bit littleendian value.
+ */
+ [CCode (cname = "PHYSFS_writeSLE64")]
+ public bool writeSLE64 (int64 val);
+
+ /**
+ * int PHYSFS_writeULE64 (File* file, uint64 val)
+ * Convert and write an unsigned 64-bit littleendian value.
+ */
+ [CCode (cname = "PHYSFS_writeULE64")]
+ public bool writeULE64 (uint64 val);
+
+ /**
+ * int PHYSFS_writeSBE64 (File* file, int64 val)
+ * Convert and write a signed 64-bit bigending value.
+ */
+ [CCode (cname = "PHYSFS_writeSBE64")]
+ public bool writeSBE64 (int64 val);
+
+ /**
+ * int PHYSFS_writeUBE64 (File* file, uint64 val)
+ * Convert and write an unsigned 64-bit bigendian value.
+ */
+ [CCode (cname = "PHYSFS_writeUBE64")]
+ public bool writeUBE64 (uint64 val);
+
+ /**
+ * int PHYSFS_mountHandle (File* file, const char *new_dir, const char *mountPoint, int
appendToPath)
+ * Add an archive, contained in a File handle, to the search path.
+ */
+ [CCode (cname = "PHYSFS_mountHandle")]
+ public bool mount_handle (string new_dir, string mountPoint, bool append_to_path);
+ }
+
+ /* Byteorder stuff... */
+
+ /**
+ * int16 PHYSFS_swapSLE16 (int16 val)
+ * Swap littleendian signed 16 to platform's native byte order.
+ */
+ [CCode (cname = "PHYSFS_swapSLE16")]
+ public int16 swapSLE16 (int16 val);
+
+
+ /**
+ * uint16 PHYSFS_swapULE16 (uint16 val)
+ * Swap littleendian unsigned 16 to platform's native byte order.
+ */
+ [CCode (cname = "PHYSFS_swapULE16")]
+ public uint16 swapULE16 (uint16 val);
+
+ /**
+ * int32 PHYSFS_swapSLE32 (int32 val)
+ * Swap littleendian signed 32 to platform's native byte order.
+ */
+ [CCode (cname = "PHYSFS_swapSLE32")]
+ public int32 swapSLE32 (int32 val);
+
+
+ /**
+ * uint32 PHYSFS_swapULE32 (uint32 val)
+ * Swap littleendian unsigned 32 to platform's native byte order.
+ */
+ [CCode (cname = "PHYSFS_swapULE32")]
+ public uint32 swapULE32 (uint32 val);
+
+ /**
+ * int64 PHYSFS_swapSLE64 (int64 val)
+ * Swap littleendian signed 64 to platform's native byte order.
+ */
+ [CCode (cname = "PHYSFS_swapSLE64")]
+ public int64 swapSLE64 (int64 val);
+
+ /**
+ * uint64 PHYSFS_swapULE64 (uint64 val)
+ * Swap littleendian unsigned 64 to platform's native byte order.
+ */
+ [CCode (cname = "PHYSFS_swapULE64")]
+ public uint64 swapULE64 (uint64 val);
+
+ /**
+ * int16 PHYSFS_swapSBE16 (int16 val)
+ * Swap bigendian signed 16 to platform's native byte order.
+ */
+ [CCode (cname = "PHYSFS_swapSBE16")]
+ public int16 swapSBE16 (int16 val);
+
+ /**
+ * uint16 PHYSFS_swapUBE16 (uint16 val)
+ * Swap bigendian unsigned 16 to platform's native byte order.
+ */
+ [CCode (cname = "PHYSFS_swapUBE16")]
+ public uint16 swapUBE16 (uint16 val);
+
+ /**
+ * int32 PHYSFS_swapSBE32 (int32 val)
+ * Swap bigendian signed 32 to platform's native byte order.
+ */
+ [CCode (cname = "PHYSFS_swapSBE32")]
+ public int32 swapSBE32 (int32 val);
+
+ /**
+ * uint32 PHYSFS_swapUBE32 (uint32 val)
+ * Swap bigendian unsigned 32 to platform's native byte order.
+ */
+ [CCode (cname = "PHYSFS_swapUBE32")]
+ public uint32 swapUBE32 (uint32 val);
+
+ /**
+ * int64 PHYSFS_swapSBE64 (int64 val)
+ * Swap bigendian signed 64 to platform's native byte order.
+ */
+ [CCode (cname = "PHYSFS_swapSBE64")]
+ public int64 swapSBE64 (int64 val);
+
+ /**
+ * uint64 PHYSFS_swapUBE64 (uint64 val)
+ * Swap bigendian unsigned 64 to platform's native byte order.
+ */
+ [CCode (cname = "PHYSFS_swapUBE64")]
+ public uint64 swapUBE64 (uint64 val);
+
+ /* Everything above this line is part of the PhysicsFS 1.0 API. */
+
+ /**
+ * int PHYSFS_isInit ()
+ * Determine if the PhysicsFS library is initialized.
+ */
+ [CCode (cname = "PHYSFS_isInit")]
+ public bool is_init ();
+
+ /**
+ * int PHYSFS_symbolicLinksPermitted ()
+ * Determine if the symbolic links are permitted.
+ */
+ [CCode (cname = "PHYSFS_symbolicLinksPermitted")]
+ public bool symbolic_links_permitted ();
+
+ [CCode (has_target = false)]
+ public delegate int InitFunc (); /**< Initialize. Can be NULL. Zero on failure. */
+ [CCode (has_target = false)]
+ public delegate void DeinitFunc (); /**< Deinitialize your allocator. Can be NULL. */
+ [CCode (has_target = false)]
+ public delegate void* MallocFunc (uint64 size); /**< Allocate like malloc (). */
+ public delegate void* ReallocFunc (void* dst, uint64 size); /**< Reallocate like realloc (). */
+ public delegate void FreeFunc (void* pointer); /**< Free memory from Malloc or Realloc. */
+ /**
+ * PHYSFS_Allocator
+ * PhysicsFS allocation function pointers.
+ */
+ [CCode (cname = "PHYSFS_Allocator", has_type_id = false)]
+ public struct Allocator {
+ [CCode (cname = "init")]
+ public InitFunc init_func; /**< Initialize. Can be NULL. Zero on failure. */
+ [CCode (cname = "deinit")]
+ public DeinitFunc deinit_func; /**< Deinitialize your allocator. Can be NULL. */
+ [CCode (cname = "malloc")]
+ public MallocFunc malloc_func; /**< Allocate like malloc (). */
+ [CCode (cname = "realloc")]
+ public ReallocFunc realloc_func; /**< Reallocate like realloc (). */
+ [CCode (cname = "free")]
+ public FreeFunc free_func; /**< Free memory from Malloc or Realloc. */
+ }
+
+ /**
+ * int PHYSFS_setAllocator (const PHYSFS_Allocator *allocator)
+ * Hook your own allocation routines into PhysicsFS.
+ */
+ public bool set_allocator (Allocator* allocator);
+
+ /**
+ * int PHYSFS_mount (const char *new_dir, const char *mountPoint, int appendToPath)
+ * Add an archive or directory to the search path.
+ */
+ [CCode (cname = "PHYSFS_mount")]
+ public bool mount (string new_dir, string mountPoint, bool append_to_path);
+
+ /**
+ * int PHYSFS_getMountPoint (const char *dir)
+ * Determine a mounted archive's mountpoint.
+ */
+ [CCode (cname = "PHYSFS_getMountPoint")]
+ public unowned string? get_mount_point (string dir);
+
+ /**
+ * PHYSFS_StringCallback
+ * Function signature for callbacks that report strings.
+ */
+ [CCode (cname = "PHYSFS_StringCallback", has_target = false)]
+ public delegate void StringCallback (void* data, string str);
+
+ /**
+ * PHYSFS_EnumFilesCallback
+ * Function signature for callbacks that enumerate files.
+ */
+ [CCode (cname = "PHYSFS_EnumFilesCallback", has_target = false)]
+ public delegate void EnumFilesCallback (void* data, string origdir, string fname);
+
+ /**
+ * void PHYSFS_getCdRomDirsCallback (PHYSFS_StringCallback c, void* d)
+ * Enumerate CD-ROM directories, using an application-defined callback.
+ */
+ [CCode (cname = "PHYSFS_getCdRomDirsCallback")]
+ public void get_cdrom_dirs_callback (StringCallback c, void* d);
+
+ /**
+ * void PHYSFS_getSearchPathCallback (PHYSFS_StringCallback c, void* d)
+ * Enumerate the search path, using an application-defined callback.
+ */
+ [CCode (cname = "PHYSFS_getSearchPathCallback")]
+ public void get_search_path_callback (StringCallback c, void* d);
+
+ /**
+ * void PHYSFS_enumerateFilesCallback (const char *dir, PHYSFS_EnumFilesCallback c, void* d)
+ * Get a file listing of a search path's directory, using an application-defined callback.
+ */
+ [CCode (cname = "PHYSFS_enumerateFilesCallback")]
+ public void enumerate_files_callback (string dir, EnumFilesCallback c, void* d);
+
+ /**
+ * void PHYSFS_utf8FromUcs4 (const uint32 *src, char *dst, uint64 len)
+ * Convert a UCS-4 string to a UTF-8 string.
+ */
+ [CCode (cname = "PHYSFS_utf8FromUcs4")]
+ public void utf8_from_ucs4 ([CCode (array_length = false)] uint32[] src, out string dst, uint64 len);
+
+ /**
+ * void PHYSFS_utf8ToUcs4 (const char *src, uint32 *dst, uint64 len)
+ * Convert a UTF-8 string to a UCS-4 string.
+ */
+ [CCode (cname = "PHYSFS_utf8ToUcs4")]
+ public void utf8_to_ucs4 (string src, [CCode (array_length = false)] uint32[] dst, uint64 len);
+
+ /**
+ * void PHYSFS_utf8FromUcs2 (const uint16 *src, char *dst, uint64 len)
+ * Convert a UCS-2 string to a UTF-8 string.
+ */
+ [CCode (cname = "PHYSFS_utf8FromUcs2")]
+ public void utf8_from_ucs2 ([CCode (array_length = false)] uint16[] src, out string dst, uint64 len);
+
+ /**
+ * PHYSFS_utf8ToUcs2 (const char *src, uint16 *dst, uint64 len)
+ * Convert a UTF-8 string to a UCS-2 string.
+ */
+ [CCode (cname = "PHYSFS_utf8ToUcs2")]
+ public void utf8_to_ucs2 (string src, [CCode (array_length = false)] uint16[] dst, uint64 len);
+
+ /**
+ * void PHYSFS_utf8FromLatin1 (const char *src, char *dst, uint64 len)
+ * Convert a UTF-8 string to a Latin1 string.
+ */
+ [CCode (cname = "PHYSFS_utf8FromLatin1")]
+ public void utf8_from_latin1 (string src, [CCode (array_length = false)] uint8[] dst, uint64 len);
+
+ /* Everything above this line is part of the PhysicsFS 2.0 API. */
+
+ /**
+ * int PHYSFS_caseFold (const uint32 from, uint32 *to)
+ * "Fold" a Unicode codepoint to a lowercase equivalent.
+ */
+ [CCode (cname = "PHYSFS_caseFold")]
+ public int case_fold (uint32 from, out uint32 to);
+
+ /**
+ * int PHYSFS_utf8stricmp (const char *str1, const char *str2)
+ * Case-insensitive compare of two UTF-8 strings.
+ */
+ [CCode (cname = "PHYSFS_utf8stricmp")]
+ public int utf8_stricmp (string str1, string str2);
+
+ /**
+ * int PHYSFS_utf16stricmp (const uint16 *str1, const uint16 *str2)
+ * Case-insensitive compare of two UTF-16 strings.
+ */
+ [CCode (cname = "PHYSFS_utf16stricmp")]
+ public int utf16_stricmp ([CCode (array_length = false)] uint16[] str1, [CCode (array_length =
false)] uint16[] str2);
+
+ /**
+ * int PHYSFS_ucs4stricmp (const uint32 *str1, const uint32 *str2)
+ * Case-insensitive compare of two UCS-4 strings.
+ */
+ [CCode (cname = "PHYSFS_ucs4stricmp")]
+ public int ucs4_stricmp ([CCode (array_length = false)] uint32[] str1, [CCode (array_length = false)]
uint32[] str2);
+
+ /**
+ * PHYSFS_EnumerateCallback
+ * Possible return values from PHYSFS_EnumerateCallback.
+ */
+ [CCode (cprefix = "PHYSFS_ENUM_", cname = "int", has_type_id = false)]
+ public enum EnumerateCallbackResult {
+ ERROR = -1, /**< Stop enumerating, report error to app. */
+ STOP = 0, /**< Stop enumerating, report success to app. */
+ OK = 1 /**< Keep enumerating, no problems */
+ }
+
+ /**
+ * PHYSFS_EnumerateCallback
+ * Function signature for callbacks that enumerate and return results.
+ */
+ public delegate EnumerateCallbackResult EnumerateCallback (void* data, string origdir, string fname);
+
+ /**
+ * int PHYSFS_enumerate (const char *dir, PHYSFS_EnumerateCallback c, void* d)
+ * Get a file listing of a search path's directory, using an application-defined callback, with errors
reported.
+ */
+ [CCode (cname = "PHYSFS_enumerate")]
+ public bool enumerate (string dir, EnumerateCallback c);
+
+ /**
+ * int PHYSFS_unmount (const char *old_dir)
+ * Remove a directory or archive from the search path.
+ */
+ [CCode (cname = "PHYSFS_unmount")]
+ public bool unmount (string old_dir);
+
+ /**
+ * const PHYSFS_Allocator *PHYSFS_getAllocator ()
+ * Discover the current allocator.
+ */
+ [CCode (cname = "PHYSFS_getAllocator")]
+ public unowned Allocator* get_allocator ();
+
+ /**
+ * FileType
+ * Possible types of a file.
+ */
+ [CCode (cprefix = "PHYSFS_FILETYPE_", cname = "int", has_type_id = false)]
+ public enum FileType {
+ REGULAR, /**< a normal File */
+ DIRECTORY, /**< a directory */
+ SYMLINK, /**< a symlink */
+ OTHER /**< something completely different like a device */
+ }
+
+ /**
+ * PHYSFS_Stat
+ * Meta data for a file or directory
+ */
+ [CCode (cname = "PHYSFS_Stat", has_type_id = false)]
+ public struct Stat {
+ public int64 filesize; /**< size in bytes, -1 for non-files and unknown */
+ public int64 modtime; /**< last modification time */
+ public int64 createtime; /**< like modtime, but for file creation time */
+ public int64 accesstime; /**< like modtime, but for file access time */
+ public FileType filetype; /**< File? Directory? Symlink? */
+ public bool readonly; /**< non-zero if read only, zero if writable. */
+ }
+
+ /**
+ * int PHYSFS_stat (const char *fname, PHYSFS_Stat *stat)
+ * Get various information about a directory or a file.
+ */
+ [CCode (cname = "PHYSFS_stat")]
+ public bool stat (string fname, out Stat stat);
+
+ /**
+ * void PHYSFS_utf8FromUtf16 (const uint16 *src, char *dst, uint64 len)
+ * Convert a UTF-16 string to a UTF-8 string.
+ */
+ [CCode (cname = "PHYSFS_utf8FromUtf16")]
+ public void utf8_from_utf16 ([CCode (array_length = false)] uint16[] src, out string dst, uint64 len);
+
+ /**
+ * PHYSFS_utf8ToUtf16 (const char *src, uint16 *dst, uint64 len)
+ * Convert a UTF-8 string to a UTF-16 string.
+ */
+ [CCode (cname = "PHYSFS_utf8ToUtf16")]
+ public void utf8ToUtf16 (string src, [CCode (array_length = false)] uint16[] dst, uint64 len);
+
+ public delegate int64 IoReadFunc (Io* io, void* buf, uint64 len);
+ public delegate int64 IoWriteFunc (Io *io, void* buffer, uint64 len);
+ public delegate bool IoSeekFunc (Io *io, uint64 offset);
+ public delegate int64 IoTellFunc (Io *io);
+ public delegate int64 IoLengthFunc (Io *io);
+ public delegate Io* IoDuplicateFunc (Io *io);
+ public delegate bool IoFlushFunc (Io *io);
+ public delegate void IoDestroyFunc (Io *io);
+
+ /**
+ * PHYSFS_Io
+ * An abstract i/o interface.
+ */
+ [CCode (cname = "PHYSFS_Io", has_type_id = false)]
+ public struct Io {
+ /**
+ * Binary compatibility information.
+ */
+ public uint32 version;
+
+ /**
+ * Instance data for this struct.
+ */
+ public void* opaque;
+
+ /**
+ * Read more data.
+ */
+ [CCode (cname = "read")]
+ public IoReadFunc read_func;
+
+ /**
+ * Write more data.
+ */
+ [CCode (cname = "write")]
+ public IoWriteFunc write_func;
+
+ /**
+ * Move i/o position to a given byte offset from start.
+ */
+ [CCode (cname = "seek")]
+ public IoSeekFunc seek_func;
+
+ /**
+ * Report current i/o position.
+ */
+ [CCode (cname = "tell")]
+ public IoTellFunc tell_func;
+
+ /**
+ * Determine size of the i/o instance's dataset.
+ */
+ [CCode (cname = "length")]
+ public IoLengthFunc length_func;
+
+ /**
+ * Duplicate this i/o instance.
+ */
+ [CCode (cname = "duplicate")]
+ public IoDuplicateFunc duplicate_func;
+
+ /**
+ * Flush resources to media, or wherever.
+ */
+ [CCode (cname = "flush")]
+ public IoFlushFunc flush_func;
+
+ /**
+ * Cleanup and deallocate i/o instance.
+ */
+ [CCode (cname = "destroy")]
+ public IoDestroyFunc destroy_func;
+ }
+
+ /**
+ * int PHYSFS_mountIo (Io* io, const char *new_dir, const char *mountPoint, int appendToPath)
+ * Add an archive, built on a PHYSFS_Io, to the search path.
+ */
+ [CCode (cname = "PHYSFS_mountIo")]
+ public bool mount_io (Io* io, string new_dir, string mount_point, bool append_to_path);
+
+ [CCode (cname = "compute_func")]
+ public delegate void MemoryDel (void* memory);
+ /**
+ * int PHYSFS_mountMemory (const void* buf, uint64 len, void (*del) (void* ), const char *new_dir,
const char *mountPoint, int appendToPath)
+ * Add an archive, contained in a memory buffer, to the search path.
+ */
+ [CCode (cname = "PHYSFS_mountMemory")]
+ public bool mount_memory ([CCode (array_length = false)] uint8[] buf, MemoryDel? del, string new_dir,
string mount_point, bool append_to_path);
+
+ /**
+ * PHYSFS_ErrorCode
+ * Values that represent specific causes of failure.
+ */
+ [CCode (cprefix = "PHYSFS_ERR_", cname = "int", has_type_id = false)]
+ public enum ErrorCode {
+ OK, /**< Success; no error. */
+ OTHER_ERROR, /**< Error not otherwise covered here. */
+ OUT_OF_MEMORY, /**< Memory allocation failed. */
+ NOT_INITIALIZED, /**< PhysicsFS is not initialized. */
+ IS_INITIALIZED, /**< PhysicsFS is already initialized. */
+ ARGV0_IS_NULL, /**< Needed argv[0], but it is NULL. */
+ UNSUPPORTED, /**< Operation or feature unsupported. */
+ PAST_EOF, /**< Attempted to access past end of file. */
+ FILES_STILL_OPEN, /**< Files still open. */
+ INVALID_ARGUMENT, /**< Bad parameter passed to an function. */
+ NOT_MOUNTED, /**< Requested archive/dir not mounted. */
+ NOT_FOUND, /**< File (or whatever) not found. */
+ SYMLINK_FORBIDDEN,/**< Symlink seen when not permitted. */
+ NO_WRITE_DIR, /**< No write dir has been specified. */
+ OPEN_FOR_READING, /**< Wrote to a file opened for reading. */
+ OPEN_FOR_WRITING, /**< Read from a file opened for writing. */
+ NOT_A_FILE, /**< Needed a file, got a directory (etc). */
+ READ_ONLY, /**< Wrote to a read-only filesystem. */
+ CORRUPT, /**< Corrupted data encountered. */
+ SYMLINK_LOOP, /**< Infinite symbolic link loop. */
+ IO, /**< i/o error (hardware failure, etc). */
+ PERMISSION, /**< Permission denied. */
+ NO_SPACE, /**< No space (disk full, over quota, etc) */
+ BAD_FILENAME, /**< Filename is bogus/insecure. */
+ BUSY, /**< Tried to modify a file the OS needs. */
+ DIR_NOT_EMPTY, /**< Tried to delete dir with files in it. */
+ OS_ERROR, /**< Unspecified OS-level error.*/
+ DUPLICATE, /**< Duplicate entry. */
+ BAD_PASSWORD, /**< Bad password.*/
+ APP_CALLBACK /**< Application callback reported error. */
+ }
+
+ /**
+ * PHYSFS_ErrorCode PHYSFS_getLastErrorCode ()
+ * Get machine-readable error information.
+ */
+ [CCode (cname = "PHYSFS_getLastErrorCode")]
+ public ErrorCode get_last_error_code ();
+
+ /**
+ * const char *PHYSFS_getErrorByCode (PHYSFS_ErrorCode code)
+ * Get human-readable description string for a given error code.
+ */
+ [CCode (cname = "PHYSFS_getErrorByCode")]
+ public unowned string? get_error_by_code (ErrorCode code);
+
+ /**
+ * void PHYSFS_setErrorCode (PHYSFS_ErrorCode code)
+ * Set the current thread's error code.
+ */
+ [CCode (cname = "PHYSFS_setErrorCode")]
+ public void set_error_code (ErrorCode code);
+
+ /**
+ * const char *PHYSFS_getPrefDir (const char *org, const char *app)
+ * Get the user-and-app-specific path where files can be written.
+ */
+ [CCode (cname = "PHYSFS_getPrefDir")]
+ public unowned string? get_pref_dir (string org, string app);
+
+ public delegate void* ArchiverOpenArchiveFunc (Io* io, string name, bool for_write, int* claimed);
+ public delegate EnumerateCallbackResult ArchiverEnumerateFunc (void* opaque, string dirname,
EnumerateCallback cb, string origdir, void* callbackdata);
+ public delegate Io* ArchiverOpenReadFunc (void* opaque, string fnm);
+ public delegate Io* ArchiverOpenWriteFunc (void* opaque, string filename);
+ public delegate Io* ArchiverOpenAppendFunc (void* opaque, string filename);
+ public delegate bool ArchiverRemoveFunc (void* opaque, string filename);
+ public delegate bool ArchiverMkdirFunc (void* opaque, string filename);
+ public delegate bool ArchiverStatFunc (void* opaque, string fn, out Stat stat);
+ public delegate void ArchiverCloseArchiveFunc (void* opaque);
+ /**
+ * PHYSFS_Archiver
+ * Abstract interface to provide support for user-defined archives.
+ */
+ [CCode (cname = "PHYSFS_Archiver", has_type_id = false)]
+ public struct Archiver {
+ /**
+ * Binary compatibility information.
+ */
+ public uint32 version;
+
+ /**
+ * Basic info about this archiver.
+ */
+ public ArchiveInfo info;
+
+ /**
+ * Open an archive provided by (io).
+ */
+ [CCode (cname = "openArchive")]
+ public ArchiverOpenArchiveFunc open_archive_func;
+
+ /**
+ * List all files in (dirname).
+ */
+ [CCode (cname = "enumerate")]
+ public ArchiverEnumerateFunc enumerate_func;
+
+ /**
+ * Open a file in this archive for reading.
+ */
+ [CCode (cname = "openRead")]
+ public ArchiverOpenReadFunc open_read_func;
+
+ /**
+ * Open a file in this archive for writing.
+ */
+ [CCode (cname = "openWrite")]
+ public ArchiverOpenWriteFunc open_write_func;
+
+ /**
+ * Open a file in this archive for appending.
+ */
+ [CCode (cname = "openAppend")]
+ public ArchiverOpenAppendFunc open_append_func;
+
+ /**
+ * Delete a file or directory in the archive.
+ */
+ [CCode (cname = "remove")]
+ public ArchiverRemoveFunc remove_func;
+
+ /**
+ * Create a directory in the archive.
+ */
+ [CCode (cname = "mkdir")]
+ public ArchiverMkdirFunc mkdir_func;
+
+ /**
+ * Obtain basic file metadata.
+ */
+ [CCode (cname = "stat")]
+ public ArchiverStatFunc stat_func;
+
+ /**
+ * Destruct a previously-opened archive.
+ */
+ [CCode (cname = "closeArchive")]
+ public ArchiverCloseArchiveFunc close_archive_func;
+ }
+
+ /**
+ * int PHYSFS_registerArchiver (const PHYSFS_Archiver *archiver)
+ * Add a new archiver to the system.
+ */
+ [CCode (cname = "PHYSFS_registerArchiver")]
+ public bool register_archiver (Archiver* archiver);
+
+ /**
+ * int PHYSFS_deregisterArchiver (const char *ext)
+ * Remove an archiver from the system.
+ */
+ [CCode (cname = "PHYSFS_deregisterArchiver")]
+ public bool deregister_archiver (string ext);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]