libobs: Add obs_property_set_modified_callback2
Allows the ability to pass private data to a callback (useful specifically for scripting purposes).
This commit is contained in:
parent
6d628c1ceb
commit
fd9e5d45a3
@ -154,6 +154,7 @@ struct obs_property {
|
||||
struct obs_properties *parent;
|
||||
|
||||
obs_property_modified_t modified;
|
||||
obs_property_modified2_t modified2;
|
||||
|
||||
struct obs_property *next;
|
||||
};
|
||||
@ -281,6 +282,8 @@ void obs_properties_apply_settings(obs_properties_t *props, obs_data_t *settings
|
||||
while (p) {
|
||||
if (p->modified)
|
||||
p->modified(props, p, settings);
|
||||
else if (p->modified2)
|
||||
p->modified2(p->priv, props, p, settings);
|
||||
p = p->next;
|
||||
}
|
||||
}
|
||||
@ -589,10 +592,24 @@ void obs_property_set_modified_callback(obs_property_t *p,
|
||||
if (p) p->modified = modified;
|
||||
}
|
||||
|
||||
void obs_property_set_modified_callback2(obs_property_t *p,
|
||||
obs_property_modified2_t modified2, void *priv)
|
||||
{
|
||||
if (p) {
|
||||
p->modified2 = modified2;
|
||||
p->priv = priv;
|
||||
}
|
||||
}
|
||||
|
||||
bool obs_property_modified(obs_property_t *p, obs_data_t *settings)
|
||||
{
|
||||
if (p && p->modified)
|
||||
return p->modified(p->parent, p, settings);
|
||||
if (p) {
|
||||
if (p->modified) {
|
||||
return p->modified(p->parent, p, settings);
|
||||
} else if (p->modified2) {
|
||||
return p->modified2(p->priv, p->parent, p, settings);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -227,9 +227,13 @@ EXPORT obs_property_t *obs_properties_add_frame_rate(obs_properties_t *props,
|
||||
*/
|
||||
typedef bool (*obs_property_modified_t)(obs_properties_t *props,
|
||||
obs_property_t *property, obs_data_t *settings);
|
||||
typedef bool (*obs_property_modified2_t)(void *priv, obs_properties_t *props,
|
||||
obs_property_t *property, obs_data_t *settings);
|
||||
|
||||
EXPORT void obs_property_set_modified_callback(obs_property_t *p,
|
||||
obs_property_modified_t modified);
|
||||
EXPORT void obs_property_set_modified_callback2(obs_property_t *p,
|
||||
obs_property_modified2_t modified, void *priv);
|
||||
|
||||
EXPORT bool obs_property_modified(obs_property_t *p, obs_data_t *settings);
|
||||
EXPORT bool obs_property_button_clicked(obs_property_t *p, void *obj);
|
||||
|
Loading…
x
Reference in New Issue
Block a user