1
0
Эх сурвалжийг харах

UI: Add function to find default video save path

On windows this will return the documents\video directory, but on
linux/mac it'll just return $HOME for the time being because I don't
know if there really are any other appropriate adequate paths to use.
Perhaps someone else can be willing to fill this in if they wish.
jp9000 11 жил өмнө
parent
commit
765ac2a76b

+ 4 - 0
obs/platform-osx.mm

@@ -77,3 +77,7 @@ bool InitApplicationBundle()
 #endif
 #endif
 }
 }
 
 
+string GetDefaultVideoSavePath()
+{
+	return string(getenv("HOME"));
+}

+ 14 - 0
obs/platform-windows.cpp

@@ -23,6 +23,8 @@ using namespace std;
 
 
 #define WIN32_LEAN_AND_MEAN
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 #include <windows.h>
+#include <shellapi.h>
+#include <shlobj.h>
 
 
 static inline bool check_path(const char* data, const char *path,
 static inline bool check_path(const char* data, const char *path,
 		string &output)
 		string &output)
@@ -67,3 +69,15 @@ bool InitApplicationBundle()
 {
 {
 	return true;
 	return true;
 }
 }
+
+string GetDefaultVideoSavePath()
+{
+	wchar_t path_utf16[MAX_PATH];
+	char    path_utf8[MAX_PATH];
+
+	SHGetFolderPathW(NULL, CSIDL_MYVIDEO, NULL, SHGFP_TYPE_CURRENT,
+			path_utf16);
+
+	os_wcs_to_utf8(path_utf16, MAX_PATH, path_utf8);
+	return string(path_utf8);
+}

+ 5 - 0
obs/platform-x11.cpp

@@ -101,3 +101,8 @@ bool InitApplicationBundle()
 {
 {
 	return true;
 	return true;
 }
 }
+
+string GetDefaultVideoSavePath()
+{
+	return string(getenv("HOME"));
+}

+ 1 - 0
obs/platform.hpp

@@ -39,3 +39,4 @@ void GetMonitors(std::vector<MonitorInfo> &monitors);
 /* Updates the working directory for OSX application bundles */
 /* Updates the working directory for OSX application bundles */
 bool InitApplicationBundle();
 bool InitApplicationBundle();
 
 
+std::string GetDefaultVideoSavePath();