aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/compat.h
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2018-11-03 12:55:02 -0700
committerChris Robinson <[email protected]>2018-11-03 12:55:02 -0700
commite9d17c51912bbec566279290a435e504ace7aa0c (patch)
treee1950cd8a047158777acaa6b3f8b59f1c7d2d403 /Alc/compat.h
parent5482efc9214d180e1f67fc528f593098ad20a678 (diff)
Move wstr_to_utf8 to compat.h
Diffstat (limited to 'Alc/compat.h')
-rw-r--r--Alc/compat.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/Alc/compat.h b/Alc/compat.h
index e0f6cbd9..c478c01d 100644
--- a/Alc/compat.h
+++ b/Alc/compat.h
@@ -19,6 +19,29 @@ FILE *al_fopen(const char *fname, const char *mode);
#define HAVE_DYNLOAD 1
+#ifdef __cplusplus
+} // extern "C"
+
+#include <string>
+
+inline std::string wstr_to_utf8(const WCHAR *wstr)
+{
+ std::string ret;
+
+ int len = WideCharToMultiByte(CP_UTF8, 0, wstr, -1, nullptr, 0, nullptr, nullptr);
+ if(len > 0)
+ {
+ ret.resize(len);
+ WideCharToMultiByte(CP_UTF8, 0, wstr, -1, &ret[0], len, nullptr, nullptr);
+ ret.pop_back();
+ }
+
+ return ret;
+}
+
+extern "C" {
+#endif /* __cplusplus */
+
#else
#define al_fopen fopen