Add volume context changes; accidentally fix whitespace.
[profile/ivi/pulseaudio-module-murphy-ivi.git] / murphy / volume.h
index 4d3f119..25ef215 100644 (file)
 #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  */
     size_t         nclass;      /**< number of classes (0 - maxentry) */
     int           *classes;     /**< class table  */
+    uint32_t       clmask;      /**< bits of the classes */
     uint32_t       stamp;
 };
 
 struct mir_volume_suppress_arg {
-    double attenuation;
+    double *attenuation;
     struct {
         size_t nclass;
         int *classes;
-    } exception;
+        uint32_t clmask;
+    } trigger;
 };
 
 
@@ -49,6 +52,9 @@ void pa_mir_volume_done(struct userdata *);
 
 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);
@@ -56,6 +62,8 @@ 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 */