summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/diimage.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/diimage.h')
-rw-r--r--src/emu/diimage.h23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/emu/diimage.h b/src/emu/diimage.h
index b1a8a16ad70..f15e0e555a9 100644
--- a/src/emu/diimage.h
+++ b/src/emu/diimage.h
@@ -178,21 +178,22 @@ public:
const char *basename() { if (m_basename.empty()) return nullptr; else return m_basename.c_str(); }
const char *basename_noext() { if (m_basename_noext.empty()) return nullptr; else return m_basename_noext.c_str(); }
const char *filetype() { if (m_filetype.empty()) return nullptr; else return m_filetype.c_str(); }
- core_file *image_core_file() { return m_file; }
- UINT64 length() { check_for_file(); return core_fsize(m_file); }
+ bool is_open() const { return bool(m_file); }
+ util::core_file &image_core_file() { return *m_file; }
+ UINT64 length() { check_for_file(); return m_file->size(); }
bool is_readonly() { return m_readonly; }
bool has_been_created() { return m_created; }
void make_readonly() { m_readonly = true; }
- UINT32 fread(void *buffer, UINT32 length) { check_for_file(); return core_fread(m_file, buffer, length); }
+ UINT32 fread(void *buffer, UINT32 length) { check_for_file(); return m_file->read(buffer, length); }
UINT32 fread(optional_shared_ptr<UINT8> &ptr, UINT32 length) { ptr.allocate(length); return fread(ptr.target(), length); }
UINT32 fread(optional_shared_ptr<UINT8> &ptr, UINT32 length, offs_t offset) { ptr.allocate(length); return fread(ptr + offset, length - offset); }
- UINT32 fwrite(const void *buffer, UINT32 length) { check_for_file(); return core_fwrite(m_file, buffer, length); }
- int fseek(INT64 offset, int whence) { check_for_file(); return core_fseek(m_file, offset, whence); }
- UINT64 ftell() { check_for_file(); return core_ftell(m_file); }
+ UINT32 fwrite(const void *buffer, UINT32 length) { check_for_file(); return m_file->write(buffer, length); }
+ int fseek(INT64 offset, int whence) { check_for_file(); return m_file->seek(offset, whence); }
+ UINT64 ftell() { check_for_file(); return m_file->tell(); }
int fgetc() { char ch; if (fread(&ch, 1) != 1) ch = '\0'; return ch; }
- char *fgets(char *buffer, UINT32 length) { check_for_file(); return core_fgets(buffer, length, m_file); }
- int image_feof() { check_for_file(); return core_feof(m_file); }
- void *ptr() {check_for_file(); return (void *) core_fbuffer(m_file); }
+ char *fgets(char *buffer, UINT32 length) { check_for_file(); return m_file->gets(buffer, length); }
+ int image_feof() { check_for_file(); return m_file->eof(); }
+ void *ptr() {check_for_file(); return const_cast<void *>(m_file->buffer()); }
// configuration access
void set_init_phase() { m_init_phase = TRUE; }
@@ -250,7 +251,7 @@ protected:
void clear_error();
- void check_for_file() { assert_always(m_file != nullptr, "Illegal operation on unmounted image"); }
+ void check_for_file() { assert_always(m_file, "Illegal operation on unmounted image"); }
void setup_working_directory();
bool try_change_working_directory(const char *subdir);
@@ -274,7 +275,7 @@ protected:
std::string m_err_message;
/* variables that are only non-zero when an image is mounted */
- core_file *m_file;
+ util::core_file::ptr m_file;
std::unique_ptr<emu_file> m_mame_file;
std::string m_image_name;
std::string m_basename;