summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/windows/windir.cpp
diff options
context:
space:
mode:
author couriersud <couriersud@arcor.de>2016-06-24 23:28:42 +0200
committer couriersud <couriersud@arcor.de>2016-06-24 23:28:42 +0200
commit798bb7956756fcb8f356dcaeeaf7fe1e31dab8da (patch)
tree038713be6e2512f886d55a9ac9a9afc92a70d9c8 /src/osd/windows/windir.cpp
parentbc37304ef96e335810e7dc10367e7e7faa2d3c1d (diff)
parentb3491464e41b6afea81e188fe6a350d4f778854b (diff)
Merge remote-tracking branch 'origin/master' into netlist_dev
Diffstat (limited to 'src/osd/windows/windir.cpp')
-rw-r--r--src/osd/windows/windir.cpp136
1 files changed, 0 insertions, 136 deletions
diff --git a/src/osd/windows/windir.cpp b/src/osd/windows/windir.cpp
deleted file mode 100644
index f7b7fd44c6a..00000000000
--- a/src/osd/windows/windir.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Aaron Giles
-//============================================================
-//
-// windir.c - Win32 OSD core directory access functions
-//
-//============================================================
-
-// standard windows headers
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <shlwapi.h>
-#include <tchar.h>
-
-// standard C headers
-#include <stdio.h>
-#include <ctype.h>
-
-// MAME headers
-#include "osdcore.h"
-
-// MAMEOS headers
-#include "strconv.h"
-#include "winutil.h"
-
-
-//============================================================
-// TYPE DEFINITIONS
-//============================================================
-
-struct osd_directory
-{
- HANDLE find; // handle to the finder
- int is_first; // TRUE if this is the first entry
- osd_directory_entry entry; // current entry's data
- WIN32_FIND_DATA data; // current raw data
-};
-
-
-
-//============================================================
-// osd_opendir
-//============================================================
-
-osd_directory *osd_opendir(const char *dirname)
-{
- osd_directory *dir = nullptr;
- TCHAR *t_dirname = nullptr;
- TCHAR *dirfilter = nullptr;
- size_t dirfilter_size;
-
- // allocate memory to hold the osd_tool_directory structure
- dir = (osd_directory *)malloc(sizeof(*dir));
- if (dir == nullptr)
- goto error;
- memset(dir, 0, sizeof(*dir));
-
- // initialize the structure
- dir->find = INVALID_HANDLE_VALUE;
- dir->is_first = TRUE;
-
- // convert the path to TCHARs
- t_dirname = tstring_from_utf8(dirname);
- if (t_dirname == nullptr)
- goto error;
-
- // append \*.* to the directory name
- dirfilter_size = _tcslen(t_dirname) + 5;
- dirfilter = (TCHAR *)malloc(dirfilter_size * sizeof(*dirfilter));
- if (dirfilter == nullptr)
- goto error;
- _sntprintf(dirfilter, dirfilter_size, TEXT("%s\\*.*"), t_dirname);
-
- // attempt to find the first file
- dir->find = FindFirstFileEx(dirfilter, FindExInfoStandard, &dir->data, FindExSearchNameMatch, nullptr, 0);
-
-error:
- // cleanup
- if (t_dirname != nullptr)
- osd_free(t_dirname);
- if (dirfilter != nullptr)
- free(dirfilter);
- if (dir != nullptr && dir->find == INVALID_HANDLE_VALUE)
- {
- free(dir);
- dir = nullptr;
- }
- return dir;
-}
-
-
-//============================================================
-// osd_readdir
-//============================================================
-
-const osd_directory_entry *osd_readdir(osd_directory *dir)
-{
- // if we've previously allocated a name, free it now
- if (dir->entry.name != nullptr)
- {
- osd_free((void *)dir->entry.name);
- dir->entry.name = nullptr;
- }
-
- // if this isn't the first file, do a find next
- if (!dir->is_first)
- {
- if (!FindNextFile(dir->find, &dir->data))
- return nullptr;
- }
-
- // otherwise, just use the data we already had
- else
- dir->is_first = FALSE;
-
- // extract the data
- dir->entry.name = utf8_from_tstring(dir->data.cFileName);
- dir->entry.type = win_attributes_to_entry_type(dir->data.dwFileAttributes);
- dir->entry.size = dir->data.nFileSizeLow | ((UINT64) dir->data.nFileSizeHigh << 32);
- return (dir->entry.name != nullptr) ? &dir->entry : nullptr;
-}
-
-
-//============================================================
-// osd_closedir
-//============================================================
-
-void osd_closedir(osd_directory *dir)
-{
- // free any data associated
- if (dir->entry.name != nullptr)
- osd_free((void *)dir->entry.name);
- if (dir->find != INVALID_HANDLE_VALUE)
- FindClose(dir->find);
- free(dir);
-}