| 
														
															@@ -551,79 +551,109 @@ void obs_data_erase(obs_data_t data, const char *name) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-void obs_data_setstring(obs_data_t data, const char *name, const char *val) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+typedef void (*set_item_t)(obs_data_t, const char*, const void*, size_t, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		enum obs_data_type); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+static inline void data_set_string(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		const char *val, set_item_t set_item_) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	if (!val) val = ""; 
														 | 
														
														 | 
														
															 	if (!val) val = ""; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	set_item(data, name, val, strlen(val)+1, OBS_DATA_STRING); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_item_(data, name, val, strlen(val)+1, OBS_DATA_STRING); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-void obs_data_setint(obs_data_t data, const char *name, long long val) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+static inline void data_set_int(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		long long val, set_item_t set_item_) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	struct obs_data_number num; 
														 | 
														
														 | 
														
															 	struct obs_data_number num; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	num.type    = OBS_DATA_NUM_INT; 
														 | 
														
														 | 
														
															 	num.type    = OBS_DATA_NUM_INT; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	num.int_val = val; 
														 | 
														
														 | 
														
															 	num.int_val = val; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	set_item(data, name, &num, sizeof(struct obs_data_number), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_item_(data, name, &num, sizeof(struct obs_data_number), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			OBS_DATA_NUMBER); 
														 | 
														
														 | 
														
															 			OBS_DATA_NUMBER); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-void obs_data_setdouble(obs_data_t data, const char *name, double val) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+static inline void data_set_double(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		double val, set_item_t set_item_) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	struct obs_data_number num; 
														 | 
														
														 | 
														
															 	struct obs_data_number num; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	num.type       = OBS_DATA_NUM_DOUBLE; 
														 | 
														
														 | 
														
															 	num.type       = OBS_DATA_NUM_DOUBLE; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	num.double_val = val; 
														 | 
														
														 | 
														
															 	num.double_val = val; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	set_item(data, name, &num, sizeof(struct obs_data_number), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_item_(data, name, &num, sizeof(struct obs_data_number), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			OBS_DATA_NUMBER); 
														 | 
														
														 | 
														
															 			OBS_DATA_NUMBER); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+static inline void data_set_bool(obs_data_t data, const char *name, bool val, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		set_item_t set_item_) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_item_(data, name, &val, sizeof(bool), OBS_DATA_BOOLEAN); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+static inline void data_set_obj(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		obs_data_t obj, set_item_t set_item_) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_item_(data, name, &obj, sizeof(obs_data_t), OBS_DATA_OBJECT); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+static inline void data_set_array(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		obs_data_array_t array, set_item_t set_item_) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_item_(data, name, &array, sizeof(obs_data_t), OBS_DATA_ARRAY); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+void obs_data_setstring(obs_data_t data, const char *name, const char *val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	data_set_string(data, name, val, set_item); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+void obs_data_setint(obs_data_t data, const char *name, long long val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	data_set_int(data, name, val, set_item); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+void obs_data_setdouble(obs_data_t data, const char *name, double val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	data_set_double(data, name, val, set_item); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void obs_data_setbool(obs_data_t data, const char *name, bool val) 
														 | 
														
														 | 
														
															 void obs_data_setbool(obs_data_t data, const char *name, bool val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	set_item(data, name, &val, sizeof(bool), OBS_DATA_BOOLEAN); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	data_set_bool(data, name, val, set_item); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void obs_data_setobj(obs_data_t data, const char *name, obs_data_t obj) 
														 | 
														
														 | 
														
															 void obs_data_setobj(obs_data_t data, const char *name, obs_data_t obj) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	set_item(data, name, &obj, sizeof(obs_data_t), OBS_DATA_OBJECT); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	data_set_obj(data, name, obj, set_item); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void obs_data_setarray(obs_data_t data, const char *name, 
														 | 
														
														 | 
														
															 void obs_data_setarray(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		obs_data_array_t array) 
														 | 
														
														 | 
														
															 		obs_data_array_t array) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	set_item(data, name, &array, sizeof(obs_data_t), OBS_DATA_ARRAY); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	data_set_array(data, name, array, set_item); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void obs_data_set_default_string(obs_data_t data, const char *name, 
														 | 
														
														 | 
														
															 void obs_data_set_default_string(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		const char *val) 
														 | 
														
														 | 
														
															 		const char *val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	if (!val) val = ""; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	set_item_def(data, name, val, strlen(val)+1, OBS_DATA_STRING); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	data_set_string(data, name, val, set_item_def); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void obs_data_set_default_int(obs_data_t data, const char *name, long long val) 
														 | 
														
														 | 
														
															 void obs_data_set_default_int(obs_data_t data, const char *name, long long val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	struct obs_data_number num; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	num.type    = OBS_DATA_NUM_INT; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	num.int_val = val; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	set_item_def(data, name, &num, sizeof(struct obs_data_number), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			OBS_DATA_NUMBER); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	data_set_int(data, name, val, set_item_def); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void obs_data_set_default_double(obs_data_t data, const char *name, double val) 
														 | 
														
														 | 
														
															 void obs_data_set_default_double(obs_data_t data, const char *name, double val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	struct obs_data_number num; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	num.type       = OBS_DATA_NUM_DOUBLE; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	num.double_val = val; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	set_item_def(data, name, &num, sizeof(struct obs_data_number), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			OBS_DATA_NUMBER); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	data_set_double(data, name, val, set_item_def); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void obs_data_set_default_bool(obs_data_t data, const char *name, bool val) 
														 | 
														
														 | 
														
															 void obs_data_set_default_bool(obs_data_t data, const char *name, bool val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	set_item_def(data, name, &val, sizeof(bool), OBS_DATA_BOOLEAN); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	data_set_bool(data, name, val, set_item_def); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void obs_data_set_default_obj(obs_data_t data, const char *name, obs_data_t obj) 
														 | 
														
														 | 
														
															 void obs_data_set_default_obj(obs_data_t data, const char *name, obs_data_t obj) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	set_item_def(data, name, &obj, sizeof(obs_data_t), OBS_DATA_OBJECT); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	data_set_obj(data, name, obj, set_item_def); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 const char *obs_data_getstring(obs_data_t data, const char *name) 
														 | 
														
														 | 
														
															 const char *obs_data_getstring(obs_data_t data, const char *name) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -923,94 +953,100 @@ obs_data_array_t obs_data_item_getarray(obs_data_item_t item) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 /* ------------------------------------------------------------------------- */ 
														 | 
														
														 | 
														
															 /* ------------------------------------------------------------------------- */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 /* Helper functions for certain structures */ 
														 | 
														
														 | 
														
															 /* Helper functions for certain structures */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-void obs_data_set_vec2(obs_data_t data, const char *name, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		const struct vec2 *val) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+typedef void (*set_obj_t)(obs_data_t, const char*, obs_data_t); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+static inline void set_vec2(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		const struct vec2 *val, set_obj_t set_obj) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_t obj = obs_data_create(); 
														 | 
														
														 | 
														
															 	obs_data_t obj = obs_data_create(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_setdouble(obj, "x", val->x); 
														 | 
														
														 | 
														
															 	obs_data_setdouble(obj, "x", val->x); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_setdouble(obj, "y", val->y); 
														 | 
														
														 | 
														
															 	obs_data_setdouble(obj, "y", val->y); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setobj(data, name, obj); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_obj(data, name, obj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_release(obj); 
														 | 
														
														 | 
														
															 	obs_data_release(obj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-void obs_data_set_vec3(obs_data_t data, const char *name, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		const struct vec3 *val) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+static inline void set_vec3(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		const struct vec3 *val, set_obj_t set_obj) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_t obj = obs_data_create(); 
														 | 
														
														 | 
														
															 	obs_data_t obj = obs_data_create(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_setdouble(obj, "x", val->x); 
														 | 
														
														 | 
														
															 	obs_data_setdouble(obj, "x", val->x); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_setdouble(obj, "y", val->y); 
														 | 
														
														 | 
														
															 	obs_data_setdouble(obj, "y", val->y); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_setdouble(obj, "z", val->z); 
														 | 
														
														 | 
														
															 	obs_data_setdouble(obj, "z", val->z); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setobj(data, name, obj); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_obj(data, name, obj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_release(obj); 
														 | 
														
														 | 
														
															 	obs_data_release(obj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-void obs_data_set_vec4(obs_data_t data, const char *name, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		const struct vec4 *val) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+static inline void set_vec4(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		const struct vec4 *val, set_obj_t set_obj) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_t obj = obs_data_create(); 
														 | 
														
														 | 
														
															 	obs_data_t obj = obs_data_create(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_setdouble(obj, "x", val->x); 
														 | 
														
														 | 
														
															 	obs_data_setdouble(obj, "x", val->x); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_setdouble(obj, "y", val->y); 
														 | 
														
														 | 
														
															 	obs_data_setdouble(obj, "y", val->y); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_setdouble(obj, "z", val->z); 
														 | 
														
														 | 
														
															 	obs_data_setdouble(obj, "z", val->z); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_setdouble(obj, "w", val->w); 
														 | 
														
														 | 
														
															 	obs_data_setdouble(obj, "w", val->w); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setobj(data, name, obj); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_obj(data, name, obj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_release(obj); 
														 | 
														
														 | 
														
															 	obs_data_release(obj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-void obs_data_set_quat(obs_data_t data, const char *name, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		const struct quat *val) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+static inline void set_quat(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		const struct quat *val, set_obj_t set_obj) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_t obj = obs_data_create(); 
														 | 
														
														 | 
														
															 	obs_data_t obj = obs_data_create(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_setdouble(obj, "x", val->x); 
														 | 
														
														 | 
														
															 	obs_data_setdouble(obj, "x", val->x); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_setdouble(obj, "y", val->y); 
														 | 
														
														 | 
														
															 	obs_data_setdouble(obj, "y", val->y); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_setdouble(obj, "z", val->z); 
														 | 
														
														 | 
														
															 	obs_data_setdouble(obj, "z", val->z); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_setdouble(obj, "w", val->w); 
														 | 
														
														 | 
														
															 	obs_data_setdouble(obj, "w", val->w); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setobj(data, name, obj); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_obj(data, name, obj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	obs_data_release(obj); 
														 | 
														
														 | 
														
															 	obs_data_release(obj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+void obs_data_set_vec2(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		const struct vec2 *val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_vec2(data, name, val, obs_data_setobj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+void obs_data_set_vec3(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		const struct vec3 *val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_vec3(data, name, val, obs_data_setobj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+void obs_data_set_vec4(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		const struct vec4 *val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_vec4(data, name, val, obs_data_setobj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+void obs_data_set_quat(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		const struct quat *val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_quat(data, name, val, obs_data_setobj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void obs_data_set_default_vec2(obs_data_t data, const char *name, 
														 | 
														
														 | 
														
															 void obs_data_set_default_vec2(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		const struct vec2 *val) 
														 | 
														
														 | 
														
															 		const struct vec2 *val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_t obj = obs_data_create(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setdouble(obj, "x", val->x); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setdouble(obj, "y", val->y); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_set_default_obj(data, name, obj); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_release(obj); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_vec2(data, name, val, obs_data_set_default_obj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void obs_data_set_default_vec3(obs_data_t data, const char *name, 
														 | 
														
														 | 
														
															 void obs_data_set_default_vec3(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		const struct vec3 *val) 
														 | 
														
														 | 
														
															 		const struct vec3 *val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_t obj = obs_data_create(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setdouble(obj, "x", val->x); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setdouble(obj, "y", val->y); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setdouble(obj, "z", val->z); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_set_default_obj(data, name, obj); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_release(obj); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_vec3(data, name, val, obs_data_set_default_obj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void obs_data_set_default_vec4(obs_data_t data, const char *name, 
														 | 
														
														 | 
														
															 void obs_data_set_default_vec4(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		const struct vec4 *val) 
														 | 
														
														 | 
														
															 		const struct vec4 *val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_t obj = obs_data_create(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setdouble(obj, "x", val->x); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setdouble(obj, "y", val->y); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setdouble(obj, "z", val->z); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setdouble(obj, "w", val->w); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_set_default_obj(data, name, obj); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_release(obj); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_vec4(data, name, val, obs_data_set_default_obj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void obs_data_set_default_quat(obs_data_t data, const char *name, 
														 | 
														
														 | 
														
															 void obs_data_set_default_quat(obs_data_t data, const char *name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		const struct quat *val) 
														 | 
														
														 | 
														
															 		const struct quat *val) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_t obj = obs_data_create(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setdouble(obj, "x", val->x); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setdouble(obj, "y", val->y); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setdouble(obj, "z", val->z); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_setdouble(obj, "w", val->w); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_set_default_obj(data, name, obj); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	obs_data_release(obj); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	set_quat(data, name, val, obs_data_set_default_obj); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void obs_data_get_vec2(obs_data_t data, const char *name, struct vec2 *val) 
														 | 
														
														 | 
														
															 void obs_data_get_vec2(obs_data_t data, const char *name, struct vec2 *val) 
														 |