Browse Source

libobs: Implement flags for properties

OBS_PROPERTIES_DEFER_UPDATE: Makes it so the properties are not updated
until editing of the properties is complete.
jp9000 10 years ago
parent
commit
ef4ee1fd1a
2 changed files with 18 additions and 0 deletions
  1. 12 0
      libobs/obs-properties.c
  2. 6 0
      libobs/obs-properties.h

+ 12 - 0
libobs/obs-properties.c

@@ -105,6 +105,7 @@ struct obs_property {
 struct obs_properties {
 struct obs_properties {
 	void                    *param;
 	void                    *param;
 	void                    (*destroy)(void *param);
 	void                    (*destroy)(void *param);
+	uint32_t                flags;
 
 
 	struct obs_property     *first_property;
 	struct obs_property     *first_property;
 	struct obs_property     **last;
 	struct obs_property     **last;
@@ -131,6 +132,17 @@ void obs_properties_set_param(obs_properties_t *props,
 	props->destroy = destroy;
 	props->destroy = destroy;
 }
 }
 
 
+void obs_properties_set_flags(obs_properties_t *props, uint32_t flags)
+{
+	if (props)
+		props->flags = flags;
+}
+
+uint32_t obs_properties_get_flags(obs_properties_t *props)
+{
+	return props ? props->flags : 0;
+}
+
 void *obs_properties_get_param(obs_properties_t *props)
 void *obs_properties_get_param(obs_properties_t *props)
 {
 {
 	return props ? props->param : NULL;
 	return props ? props->param : NULL;

+ 6 - 0
libobs/obs-properties.h

@@ -38,6 +38,9 @@
 extern "C" {
 extern "C" {
 #endif
 #endif
 
 
+/** Only update when the user presses OK or Apply */
+#define OBS_PROPERTIES_DEFER_UPDATE            (1<<0)
+
 enum obs_property_type {
 enum obs_property_type {
 	OBS_PROPERTY_INVALID,
 	OBS_PROPERTY_INVALID,
 	OBS_PROPERTY_BOOL,
 	OBS_PROPERTY_BOOL,
@@ -92,6 +95,9 @@ EXPORT obs_properties_t *obs_properties_create_param(void *param,
 		void (*destroy)(void *param));
 		void (*destroy)(void *param));
 EXPORT void obs_properties_destroy(obs_properties_t *props);
 EXPORT void obs_properties_destroy(obs_properties_t *props);
 
 
+EXPORT void obs_properties_set_flags(obs_properties_t *props, uint32_t flags);
+EXPORT uint32_t obs_properties_get_flags(obs_properties_t *props);
+
 EXPORT void obs_properties_set_param(obs_properties_t *props,
 EXPORT void obs_properties_set_param(obs_properties_t *props,
 		void *param, void (*destroy)(void *param));
 		void *param, void (*destroy)(void *param));
 EXPORT void *obs_properties_get_param(obs_properties_t *props);
 EXPORT void *obs_properties_get_param(obs_properties_t *props);