UI: Add frontend API to defer saving

Allows the ability to perform multiple actions that would normally save,
and defer the save until all of those actions are complete.

Closes obsproject/obs-studio#1231
This commit is contained in:
Ilya M
2018-02-04 23:36:56 +02:00
committed by jp9000
parent 0dc9151dbd
commit 439b9e4d15
6 changed files with 43 additions and 1 deletions

View File

@@ -297,6 +297,18 @@ void obs_frontend_save(void)
c->obs_frontend_save();
}
void obs_frontend_defer_save_begin(void)
{
if (callbacks_valid())
c->obs_frontend_defer_save_begin();
}
void obs_frontend_defer_save_end(void)
{
if (callbacks_valid())
c->obs_frontend_defer_save_end();
}
void obs_frontend_add_save_callback(obs_frontend_save_cb callback,
void *private_data)
{

View File

@@ -150,6 +150,8 @@ EXPORT void obs_frontend_replay_buffer_stop(void);
EXPORT bool obs_frontend_replay_buffer_active(void);
EXPORT void obs_frontend_save(void);
EXPORT void obs_frontend_defer_save_begin(void);
EXPORT void obs_frontend_defer_save_end(void);
EXPORT obs_output_t *obs_frontend_get_streaming_output(void);
EXPORT obs_output_t *obs_frontend_get_recording_output(void);

View File

@@ -61,7 +61,9 @@ struct obs_frontend_callbacks {
virtual config_t *obs_frontend_get_profile_config(void)=0;
virtual config_t *obs_frontend_get_global_config(void)=0;
virtual void obs_frontend_save(void)=0;
virtual void obs_frontend_save(void) = 0;
virtual void obs_frontend_defer_save_begin(void) = 0;
virtual void obs_frontend_defer_save_end(void) = 0;
virtual void obs_frontend_add_save_callback(
obs_frontend_save_cb callback, void *private_data)=0;
virtual void obs_frontend_remove_save_callback(