#include "userdata.h"
#include "list.h"
-typedef double (*mir_volume_func_t)(struct userdata *, int, mir_node *, void*);
+typedef double (*mir_volume_func_t)(struct userdata *, int, mir_node *, void*);
+typedef void (*mir_change_value_t)(struct userdata *, const char *);
struct mir_vlim {
size_t maxentry; /**< length of the class table */
struct {
size_t nclass;
int *classes;
- } exception;
+ uint32_t clmask;
+ } trigger;
};
void mir_volume_add_class_limit(struct userdata *,int,mir_volume_func_t,void*);
void mir_volume_add_generic_limit(struct userdata *, mir_volume_func_t,void *);
+void mir_volume_add_maximum_limit(struct userdata *, double, size_t, int *);
+
+void mir_volume_make_limiting(struct userdata *);
void mir_volume_add_limiting_class(struct userdata *,mir_node *,int,uint32_t);
double mir_volume_apply_limits(struct userdata *, mir_node *, int, uint32_t);
double mir_volume_suppress(struct userdata *, int, mir_node *, void *);
double mir_volume_correction(struct userdata *, int, mir_node *, void *);
+void mir_volume_change_context(struct userdata *u, const char *volume_class);
+
#endif /* foomirvolumefoo */