diff --git a/libobs/obs-hotkey.c b/libobs/obs-hotkey.c index 711f974c8..b150d2975 100644 --- a/libobs/obs-hotkey.c +++ b/libobs/obs-hotkey.c @@ -860,6 +860,30 @@ obs_data_array_t *obs_hotkey_save(obs_hotkey_id id) return result; } +void obs_hotkey_pair_save(obs_hotkey_pair_id id, + obs_data_array_t **p_data0, + obs_data_array_t **p_data1) +{ + if ((!p_data0 && !p_data1) || !lock()) + return; + + size_t idx; + if (!find_pair_id(id, &idx)) + goto unlock; + + obs_hotkey_pair_t *pair = &obs->hotkeys.hotkey_pairs.array[idx]; + + if (p_data0 && find_id(pair->id[0], &idx)) { + *p_data0 = save_hotkey(&obs->hotkeys.hotkeys.array[idx]); + } + if (p_data1 && find_id(pair->id[1], &idx)) { + *p_data1 = save_hotkey(&obs->hotkeys.hotkeys.array[idx]); + } + +unlock: + unlock(); +} + static inline bool enum_save_hotkey(void *data, size_t idx, obs_hotkey_t *hotkey) { diff --git a/libobs/obs-hotkey.h b/libobs/obs-hotkey.h index efcbed890..4e4a86ab6 100644 --- a/libobs/obs-hotkey.h +++ b/libobs/obs-hotkey.h @@ -236,6 +236,10 @@ EXPORT void obs_hotkey_pair_load(obs_hotkey_pair_id id, obs_data_array_t *data0, EXPORT obs_data_array_t *obs_hotkey_save(obs_hotkey_id id); +EXPORT void obs_hotkey_pair_save(obs_hotkey_pair_id id, + obs_data_array_t **p_data0, + obs_data_array_t **p_data1); + EXPORT obs_data_t *obs_hotkeys_save_encoder(obs_encoder_t *encoder); EXPORT obs_data_t *obs_hotkeys_save_output(obs_output_t *output);