libobs/UI: Allow Access To argc/argv

This paves the way for plugins to have access to the argc/argv used
when spawning OBS. Notably, this will allow a patch to obs-browser that
passes through command line arguments on macOS to CEF.
This commit is contained in:
David Cooper
2018-07-03 14:31:27 -07:00
parent 8c910a9e3b
commit 16e879ca51
3 changed files with 63 additions and 0 deletions

View File

@@ -239,6 +239,12 @@ struct obs_source_frame {
bool prev_frame;
};
/** Access to the argc/argv used to start OBS. What you see is what you get. */
struct obs_cmdline_args {
int argc;
char **argv;
};
/* ------------------------------------------------------------------------- */
/* OBS context */
@@ -291,6 +297,24 @@ EXPORT uint32_t obs_get_version(void);
/** @return The current core version string */
EXPORT const char *obs_get_version_string(void);
/**
* Sets things up for calls to obs_get_cmdline_args. Called onl yonce at startup
* and safely copies argv/argc from main(). Subsequent calls do nothing.
*
* @param argc The count of command line arguments, from main()
* @param argv An array of command line arguments, copied from main() and ends
* with NULL.
*/
EXPORT void obs_set_cmdline_args(int argc, char **argv);
/**
* Get the argc/argv used to start OBS
*
* @return The command line arguments used for main(). Don't modify this or
* you'll mess things up for other callers.
*/
EXPORT struct obs_cmdline_args obs_get_cmdline_args(void);
/**
* Sets a new locale to use for modules. This will call obs_module_set_locale
* for each module with the new locale.