diff options
Diffstat (limited to 'mediaplugin/src/mediaplugins/include/core/util.h')
-rw-r--r-- | mediaplugin/src/mediaplugins/include/core/util.h | 46 |
1 files changed, 28 insertions, 18 deletions
diff --git a/mediaplugin/src/mediaplugins/include/core/util.h b/mediaplugin/src/mediaplugins/include/core/util.h index ba7ae2a4..6b402774 100644 --- a/mediaplugin/src/mediaplugins/include/core/util.h +++ b/mediaplugin/src/mediaplugins/include/core/util.h @@ -99,35 +99,45 @@ public: //AudioFormatInfo copy(); }; -class IPath { +class Path { private: std::string _filename; public: - IPath(const char *filename) : - _filename(filename) - { - // TODO - } + Path(const char *filename) : + _filename(filename) {} - IPath(std::string filename) : - _filename(filename) - { - // TODO - } + Path(std::string filename) : + _filename(filename) {} std::string toNative() const { - // TODO - return _filename; + const char* cstr = pluginCore->pathToNative(_filename.c_str()); + std::string result(cstr); + pluginCore->memFree((void*)cstr); + return result; + } + + std::string toUTF8(bool useNativeDelim = true) const { + const char* cstr = pluginCore->pathToUTF8(_filename.c_str(), + useNativeDelim ? TRUE : FALSE); + std::string result(cstr); + pluginCore->memFree((void*)cstr); + return result; } - std::string toUTF8() const { - // TODO - return _filename; +// TODO: wchar_t sizes differ on Windows (2 byte)/Linux (4 byte). +// USDX uses the Pascal WideChar type which is 2 bytes in size. +#ifdef _WIN32 + std::wstring toWide(bool useNativeDelim = true) const { + const wchar_t* cstr = pluginCore->pathToWide(_filename.c_str(), + useNativeDelim ? TRUE : FALSE); + std::wstring result(cstr); + pluginCore->memFree((void*)cstr); + return result; } +#endif bool isFile() const { - // TODO - return true; + return pluginCore->pathIsFile(_filename.c_str()); } }; |