File:  [RetroPC.NET] / np2 / x11 / dosio.h
Revision 1.2: download - view: text, annotated - select for diffs
Mon Nov 17 01:43:45 2003 JST (21 years, 11 months ago) by monaka
Branches: MAIN
CVS tags: HEAD
Neko Project II for X11 (only support GTK+ GUI Toolkit)

#ifndef	NP2_X11_DOSIO_H__
#define	NP2_X11_DOSIO_H__

enum {
	FTYPE_NONE = 0,		// 自動判別 or PC
	FTYPE_SMIL,		// システム予約
	FTYPE_TEXT,		// テキストファイル
	FTYPE_BMP,		// Bitmap
	FTYPE_PICT,		// Picture (予約)
	FTYPE_PNG,		// Png (予約)
	FTYPE_WAV,		// Wave
	FTYPE_D88,		// D88
	FTYPE_BETA,		// ベタイメージ
	FTYPE_THD,		// .thd ハードディスクイメージ
	FTYPE_HDI,		// .hdi ハードディスクイメージ
	FTYPE_HDD,		// .hdd ハードディスクイメージ (予約)
	FTYPE_S98,		// .s98 ハードディスクイメージ
	FTYPE_MIMPI		// mimpi defaultファイル
};

typedef FILE*		FILEH;
#define	FILEH_INVALID	NULL

#define	FSEEK_SET	SEEK_SET
#define	FSEEK_CUR	SEEK_CUR
#define	FSEEK_END	SEEK_END

enum {
	FILEATTR_READONLY	= 0x01,
	FILEATTR_HIDDEN		= 0x02,
	FILEATTR_SYSTEM		= 0x04,
	FILEATTR_VOLUME		= 0x08,
	FILEATTR_DIRECTORY	= 0x10,
	FILEATTR_ARCHIVE	= 0x20
};

typedef struct {
	UINT16	year;		/* cx */
	BYTE	month;		/* dh */
	BYTE	day;		/* dl */
} DOSDATE;

typedef struct {
	BYTE	hour;		/* ch */
	BYTE	minute;		/* cl */
	BYTE	second;		/* dh */
} DOSTIME;


#ifdef	__cplusplus
extern "C" {
#endif

/* DOSIO:関数の準備 */
void dosio_init(void);
void dosio_term(void);

/* ファイル操作 */
FILEH file_open(const char *path);
FILEH file_open_rb(const char *path);
FILEH file_create(const char *path);
long file_seek(FILEH handle, long pointer, int method);
UINT file_read(FILEH handle, void *data, UINT length);
UINT file_write(FILEH handle, const void *data, UINT length);
short file_close(FILEH handle);
UINT file_getsize(FILEH handle);
short file_getdatetime(FILEH handle, DOSDATE *dosdate, DOSTIME *dostime);
short file_delete(const char *path);
short file_attr(const char *path);
short file_dircreate(const char *path);

/* カレントファイル操作 */
void file_setcd(const char *exepath);
char *file_getcd(const char *sjis);
FILEH file_open_c(const char *sjis);
FILEH file_open_rb_c(const char *sjis);
FILEH file_create_c(const char *sjis);
short file_delete_c(const char *sjis);
short file_attr_c(const char *sjis);

#define	file_cpyname(a, b, c)	milstr_ncpy(a, b, c)
#define	file_cmpname(a, b)	milstr_cmp(a, b)
void file_catname(char *path, const char *sjis, int maxlen);
char *file_getname(char *path);
void file_cutname(char *path);
char *file_getext(char *path);
void file_cutext(char *path);
void file_cutseparator(char *path);
void file_setseparator(char *path, int maxlen);

#ifdef	__cplusplus
};
#endif

#endif	/* NP2_X11_DOSIO_H__ */

RetroPC.NET-CVS <cvs@retropc.net>