libobs: Add ability to set spinbox property suffix
This commit is contained in:
parent
b2e0d93990
commit
8789b3469b
@ -27,11 +27,13 @@ static inline void *get_property_data(struct obs_property *prop);
|
||||
struct float_data {
|
||||
double min, max, step;
|
||||
enum obs_number_type type;
|
||||
char *suffix;
|
||||
};
|
||||
|
||||
struct int_data {
|
||||
int min, max, step;
|
||||
enum obs_number_type type;
|
||||
char *suffix;
|
||||
};
|
||||
|
||||
struct list_item {
|
||||
@ -149,6 +151,16 @@ static inline void group_data_free(struct group_data *data) {
|
||||
obs_properties_destroy(data->content);
|
||||
}
|
||||
|
||||
static inline void int_data_free(struct int_data *data) {
|
||||
if (data->suffix)
|
||||
bfree(data->suffix);
|
||||
}
|
||||
|
||||
static inline void float_data_free(struct int_data *data) {
|
||||
if (data->suffix)
|
||||
bfree(data->suffix);
|
||||
}
|
||||
|
||||
struct obs_properties;
|
||||
|
||||
struct obs_property {
|
||||
@ -235,6 +247,10 @@ static void obs_property_destroy(struct obs_property *property)
|
||||
frame_rate_data_free(get_property_data(property));
|
||||
else if (property->type == OBS_PROPERTY_GROUP)
|
||||
group_data_free(get_property_data(property));
|
||||
else if (property->type == OBS_PROPERTY_INT)
|
||||
int_data_free(get_property_data(property));
|
||||
else if (property->type == OBS_PROPERTY_FLOAT)
|
||||
float_data_free(get_property_data(property));
|
||||
|
||||
bfree(property->name);
|
||||
bfree(property->desc);
|
||||
@ -855,6 +871,12 @@ enum obs_number_type obs_property_int_type(obs_property_t *p)
|
||||
return data ? data->type : OBS_NUMBER_SCROLLER;
|
||||
}
|
||||
|
||||
const char *obs_property_int_suffix(obs_property_t *p)
|
||||
{
|
||||
struct int_data *data = get_type_data(p, OBS_PROPERTY_INT);
|
||||
return data ? data->suffix : NULL;
|
||||
}
|
||||
|
||||
double obs_property_float_min(obs_property_t *p)
|
||||
{
|
||||
struct float_data *data = get_type_data(p, OBS_PROPERTY_FLOAT);
|
||||
@ -873,6 +895,12 @@ double obs_property_float_step(obs_property_t *p)
|
||||
return data ? data->step : 0;
|
||||
}
|
||||
|
||||
const char *obs_property_float_suffix(obs_property_t *p)
|
||||
{
|
||||
struct int_data *data = get_type_data(p, OBS_PROPERTY_FLOAT);
|
||||
return data ? data->suffix : NULL;
|
||||
}
|
||||
|
||||
enum obs_number_type obs_property_float_type(obs_property_t *p)
|
||||
{
|
||||
struct float_data *data = get_type_data(p, OBS_PROPERTY_FLOAT);
|
||||
@ -939,6 +967,26 @@ void obs_property_float_set_limits(obs_property_t *p,
|
||||
data->step = step;
|
||||
}
|
||||
|
||||
void obs_property_int_set_suffix(obs_property_t *p, const char *suffix)
|
||||
{
|
||||
struct int_data *data = get_type_data(p, OBS_PROPERTY_INT);
|
||||
if (!data)
|
||||
return;
|
||||
|
||||
bfree(data->suffix);
|
||||
data->suffix = bstrdup(suffix);
|
||||
}
|
||||
|
||||
void obs_property_float_set_suffix(obs_property_t *p, const char *suffix)
|
||||
{
|
||||
struct float_data *data = get_type_data(p, OBS_PROPERTY_FLOAT);
|
||||
if (!data)
|
||||
return;
|
||||
|
||||
bfree(data->suffix);
|
||||
data->suffix = bstrdup(suffix);
|
||||
}
|
||||
|
||||
void obs_property_list_clear(obs_property_t *p)
|
||||
{
|
||||
struct list_data *data = get_list_data(p);
|
||||
|
@ -286,10 +286,12 @@ EXPORT int obs_property_int_min(obs_property_t *p);
|
||||
EXPORT int obs_property_int_max(obs_property_t *p);
|
||||
EXPORT int obs_property_int_step(obs_property_t *p);
|
||||
EXPORT enum obs_number_type obs_property_int_type(obs_property_t *p);
|
||||
EXPORT const char * obs_property_int_suffix(obs_property_t *p);
|
||||
EXPORT double obs_property_float_min(obs_property_t *p);
|
||||
EXPORT double obs_property_float_max(obs_property_t *p);
|
||||
EXPORT double obs_property_float_step(obs_property_t *p);
|
||||
EXPORT enum obs_number_type obs_property_float_type(obs_property_t *p);
|
||||
EXPORT const char * obs_property_float_suffix(obs_property_t *p);
|
||||
EXPORT enum obs_text_type obs_property_text_type(obs_property_t *p);
|
||||
EXPORT enum obs_path_type obs_property_path_type(obs_property_t *p);
|
||||
EXPORT const char * obs_property_path_filter(obs_property_t *p);
|
||||
@ -301,6 +303,8 @@ EXPORT void obs_property_int_set_limits(obs_property_t *p,
|
||||
int min, int max, int step);
|
||||
EXPORT void obs_property_float_set_limits(obs_property_t *p,
|
||||
double min, double max, double step);
|
||||
EXPORT void obs_property_int_set_suffix(obs_property_t *p, const char *suffix);
|
||||
EXPORT void obs_property_float_set_suffix(obs_property_t *p, const char *suffix);
|
||||
|
||||
EXPORT void obs_property_list_clear(obs_property_t *p);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user