summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/fileio.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/fileio.h')
-rw-r--r--src/emu/fileio.h170
1 files changed, 170 insertions, 0 deletions
diff --git a/src/emu/fileio.h b/src/emu/fileio.h
new file mode 100644
index 00000000000..7c0f4a23b92
--- /dev/null
+++ b/src/emu/fileio.h
@@ -0,0 +1,170 @@
+/***************************************************************************
+
+ fileio.h
+
+ Core file I/O interface functions and definitions.
+
+ Copyright (c) 1996-2007, Nicola Salmoria and the MAME Team.
+ Visit http://mamedev.org for licensing and usage restrictions.
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __FILEIO_H__
+#define __FILEIO_H__
+
+#include "mamecore.h"
+#include "osdcore.h"
+#include "corefile.h"
+#include "mame.h"
+#include "emuopts.h"
+
+
+
+/***************************************************************************
+ CONSTANTS
+***************************************************************************/
+
+/* search paths */
+#define SEARCHPATH_RAW NULL
+#define SEARCHPATH_CHEAT NULL
+#define SEARCHPATH_LANGUAGE NULL
+#define SEARCHPATH_DEBUGLOG NULL
+
+#define SEARCHPATH_ROM OPTION_ROMPATH
+#ifdef MESS
+#define SEARCHPATH_IMAGE NULL
+#define SEARCHPATH_HASH OPTION_HASHPATH
+#else
+#define SEARCHPATH_IMAGE OPTION_ROMPATH
+#define SEARCHPATH_HASH NULL
+#endif
+#define SEARCHPATH_SAMPLE OPTION_SAMPLEPATH
+#define SEARCHPATH_ARTWORK OPTION_ARTPATH
+#define SEARCHPATH_CTRLR OPTION_CTRLRPATH
+#define SEARCHPATH_INI OPTION_INIPATH
+#define SEARCHPATH_FONT OPTION_FONTPATH
+
+#define SEARCHPATH_IMAGE_DIFF OPTION_DIFF_DIRECTORY
+#define SEARCHPATH_NVRAM OPTION_NVRAM_DIRECTORY
+#define SEARCHPATH_CONFIG OPTION_CFG_DIRECTORY
+#define SEARCHPATH_INPUTLOG OPTION_INPUT_DIRECTORY
+#define SEARCHPATH_STATE OPTION_STATE_DIRECTORY
+#define SEARCHPATH_MEMCARD OPTION_MEMCARD_DIRECTORY
+#define SEARCHPATH_SCREENSHOT OPTION_SNAPSHOT_DIRECTORY
+#define SEARCHPATH_MOVIE OPTION_SNAPSHOT_DIRECTORY
+#define SEARCHPATH_COMMENT OPTION_COMMENT_DIRECTORY
+
+
+
+/***************************************************************************
+ TYPE DEFINITIONS
+***************************************************************************/
+
+typedef struct _mame_path mame_path;
+
+
+
+/***************************************************************************
+ FUNCTION PROTOTYPES
+***************************************************************************/
+
+
+/* ----- core initialization ----- */
+
+/* initialize the fileio system */
+void fileio_init(running_machine *machine);
+
+
+
+/* ----- file open/close ----- */
+
+/* open a file in the given search path with the specified filename */
+file_error mame_fopen(const char *searchpath, const char *filename, UINT32 openflags, mame_file **file);
+
+/* open a file in the given search path with the specified filename or a matching CRC */
+file_error mame_fopen_crc(const char *searchpath, const char *filename, UINT32 crc, UINT32 openflags, mame_file **file);
+
+/* open a file in the given search path with the specified filename, using the specified options */
+file_error mame_fopen_options(core_options *opts, const char *searchpath, const char *filename, UINT32 openflags, mame_file **file);
+
+/* open a file in the given search path with the specified filename or a matching CRC, using the specified options */
+file_error mame_fopen_crc_options(core_options *opts, const char *searchpath, const char *filename, UINT32 crc, UINT32 openflags, mame_file **file);
+
+/* open a "file" which is actually data in RAM */
+file_error mame_fopen_ram(const void *data, UINT32 length, UINT32 openflags, mame_file **file);
+
+/* close an open file */
+void mame_fclose(mame_file *file);
+
+
+
+/* ----- file positioning ----- */
+
+/* adjust the file pointer within the file */
+int mame_fseek(mame_file *file, INT64 offset, int whence);
+
+/* return the current file pointer */
+UINT64 mame_ftell(mame_file *file);
+
+/* return true if we are at the EOF */
+int mame_feof(mame_file *file);
+
+/* return the total size of the file */
+UINT64 mame_fsize(mame_file *file);
+
+
+
+/* ----- file read ----- */
+
+/* standard binary read from a file */
+UINT32 mame_fread(mame_file *file, void *buffer, UINT32 length);
+
+/* read one character from the file */
+int mame_fgetc(mame_file *file);
+
+/* put back one character from the file */
+int mame_ungetc(int c, mame_file *file);
+
+/* read a full line of text from the file */
+char *mame_fgets(char *s, int n, mame_file *file);
+
+
+
+/* ----- file write ----- */
+
+/* standard binary write to a file */
+UINT32 mame_fwrite(mame_file *file, const void *buffer, UINT32 length);
+
+/* write a line of text to the file */
+int mame_fputs(mame_file *f, const char *s);
+
+/* printf-style text write to a file */
+int CLIB_DECL mame_fprintf(mame_file *f, const char *fmt, ...);
+
+
+
+/* ----- file enumeration ----- */
+
+/* open a search path (multiple directories) for iteration */
+mame_path *mame_openpath(core_options *opts, const char *searchpath);
+
+/* return information about the next file in the search path */
+const osd_directory_entry *mame_readpath(mame_path *path);
+
+/* close an open seach path */
+void mame_closepath(mame_path *path);
+
+
+
+/* ----- file misc ----- */
+
+/* return the core_file underneath the mame_file */
+core_file *mame_core_file(mame_file *file);
+
+/* return a hash string for the file with the given functions */
+const char *mame_fhash(mame_file *file, UINT32 functions);
+
+
+#endif /* __FILEIO_H__ */