Merge branch 'master' of https://github.com/jp9000/obs-studio
commit
1b555c1c17
|
@ -75,6 +75,10 @@ if(WIN32)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
set(obs_platform_src
|
set(obs_platform_src
|
||||||
platform-osx.mm)
|
platform-osx.mm)
|
||||||
|
add_definitions(-fobjc-arc)
|
||||||
|
if(BUILD_APP_BUNDLE)
|
||||||
|
add_definitions(-DOBS_OSX_BUNDLE=1)
|
||||||
|
endif()
|
||||||
elseif(UNIX)
|
elseif(UNIX)
|
||||||
set(obs_platform_src
|
set(obs_platform_src
|
||||||
platform-x11.cpp)
|
platform-x11.cpp)
|
||||||
|
|
|
@ -183,6 +183,9 @@ bool OBSApp::OnInit()
|
||||||
{
|
{
|
||||||
base_set_log_handler(do_log);
|
base_set_log_handler(do_log);
|
||||||
|
|
||||||
|
if (!InitApplicationBundle())
|
||||||
|
return false;
|
||||||
|
|
||||||
if (!wxApp::OnInit())
|
if (!wxApp::OnInit())
|
||||||
return false;
|
return false;
|
||||||
wxInitAllImageHandlers();
|
wxInitAllImageHandlers();
|
||||||
|
|
|
@ -16,13 +16,15 @@
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
#include <util/base.h>
|
||||||
#include "platform.hpp"
|
#include "platform.hpp"
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#import <AppKit/AppKit.h>
|
#import <AppKit/AppKit.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
bool GetDataFilePath(const char *data, string &output)
|
bool GetDataFilePath(const char *data, string &output)
|
||||||
{
|
{
|
||||||
stringstream str;
|
stringstream str;
|
||||||
|
@ -41,3 +43,37 @@ void GetMonitors(vector<MonitorInfo> &monitors)
|
||||||
frame.size.width, frame.size.height);
|
frame.size.width, frame.size.height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool InitApplicationBundle()
|
||||||
|
{
|
||||||
|
#ifdef OBS_OSX_BUNDLE
|
||||||
|
static bool initialized = false;
|
||||||
|
if (initialized)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
try {
|
||||||
|
NSBundle *bundle = [NSBundle mainBundle];
|
||||||
|
if (!bundle)
|
||||||
|
throw "Could not find main bundle";
|
||||||
|
|
||||||
|
NSString *exe_path = [bundle executablePath];
|
||||||
|
if (!exe_path)
|
||||||
|
throw "Could not find executable path";
|
||||||
|
|
||||||
|
NSString *path = [exe_path stringByDeletingLastPathComponent];
|
||||||
|
|
||||||
|
if (chdir([path fileSystemRepresentation]))
|
||||||
|
throw "Could not change working directory to "
|
||||||
|
"bundle path";
|
||||||
|
|
||||||
|
} catch (const char* error) {
|
||||||
|
blog(LOG_ERROR, "InitBundle: %s", error);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return initialized = true;
|
||||||
|
#else
|
||||||
|
return true;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,3 +50,9 @@ void GetMonitors(vector<MonitorInfo> &monitors)
|
||||||
monitors.clear();
|
monitors.clear();
|
||||||
EnumDisplayMonitors(NULL, NULL, OBSMonitorEnumProc, (LPARAM)&monitors);
|
EnumDisplayMonitors(NULL, NULL, OBSMonitorEnumProc, (LPARAM)&monitors);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool InitApplicationBundle()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -89,3 +89,9 @@ void GetMonitors(vector<MonitorInfo> &monitors)
|
||||||
|
|
||||||
XCloseDisplay(display);
|
XCloseDisplay(display);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool InitApplicationBundle()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,3 +33,7 @@ struct MonitorInfo {
|
||||||
/* Gets the path of obs-studio specific data files (such as locale) */
|
/* Gets the path of obs-studio specific data files (such as locale) */
|
||||||
bool GetDataFilePath(const char *data, std::string &path);
|
bool GetDataFilePath(const char *data, std::string &path);
|
||||||
void GetMonitors(std::vector<MonitorInfo> &monitors);
|
void GetMonitors(std::vector<MonitorInfo> &monitors);
|
||||||
|
|
||||||
|
/* Updates the working directory for OSX application bundles */
|
||||||
|
bool InitApplicationBundle();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue