浏览代码

libobs: Add function to save hotkey pair data

jp9000 7 年之前
父节点
当前提交
ba4692622e
共有 2 个文件被更改,包括 28 次插入0 次删除
  1. 24 0
      libobs/obs-hotkey.c
  2. 4 0
      libobs/obs-hotkey.h

+ 24 - 0
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)
 {

+ 4 - 0
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);