]> code.delx.au - pulseaudio/blobdiff - src/pulsecore/core.h
sink, source: Add hooks for volume changes
[pulseaudio] / src / pulsecore / core.h
index aec7f8063a0c409a6365d27e0c973f691e8fb6e0..d764ac48e6ba46b9931ea1a06547069d3ca308f2 100644 (file)
@@ -36,6 +36,7 @@ typedef enum pa_suspend_cause {
     PA_SUSPEND_IDLE = 4,         /* Used by module-suspend-on-idle */
     PA_SUSPEND_SESSION = 8,      /* Used by module-hal for mark inactive sessions */
     PA_SUSPEND_PASSTHROUGH = 16, /* Used to suspend monitor sources when the sink is in passthrough mode */
+    PA_SUSPEND_INTERNAL = 32,    /* This is used for short period server-internal suspends, such as for sample rate updates */
     PA_SUSPEND_ALL = 0xFFFF      /* Magic cause that can be used to resume forcibly */
 } pa_suspend_cause_t;
 
@@ -74,6 +75,8 @@ typedef enum pa_core_hook {
     PA_CORE_HOOK_SINK_STATE_CHANGED,
     PA_CORE_HOOK_SINK_PROPLIST_CHANGED,
     PA_CORE_HOOK_SINK_PORT_CHANGED,
+    PA_CORE_HOOK_SINK_FLAGS_CHANGED,
+    PA_CORE_HOOK_SINK_VOLUME_CHANGED,
     PA_CORE_HOOK_SOURCE_NEW,
     PA_CORE_HOOK_SOURCE_FIXATE,
     PA_CORE_HOOK_SOURCE_PUT,
@@ -82,6 +85,8 @@ typedef enum pa_core_hook {
     PA_CORE_HOOK_SOURCE_STATE_CHANGED,
     PA_CORE_HOOK_SOURCE_PROPLIST_CHANGED,
     PA_CORE_HOOK_SOURCE_PORT_CHANGED,
+    PA_CORE_HOOK_SOURCE_FLAGS_CHANGED,
+    PA_CORE_HOOK_SOURCE_VOLUME_CHANGED,
     PA_CORE_HOOK_SINK_INPUT_NEW,
     PA_CORE_HOOK_SINK_INPUT_FIXATE,
     PA_CORE_HOOK_SINK_INPUT_PUT,
@@ -114,7 +119,9 @@ typedef enum pa_core_hook {
     PA_CORE_HOOK_CARD_UNLINK,
     PA_CORE_HOOK_CARD_PROFILE_CHANGED,
     PA_CORE_HOOK_CARD_PROFILE_ADDED,
+    PA_CORE_HOOK_CARD_PROFILE_AVAILABLE_CHANGED,
     PA_CORE_HOOK_PORT_AVAILABLE_CHANGED,
+    PA_CORE_HOOK_PORT_LATENCY_OFFSET_CHANGED,
     PA_CORE_HOOK_MAX
 } pa_core_hook_t;
 
@@ -165,14 +172,14 @@ struct pa_core {
 
     int exit_idle_time, scache_idle_time;
 
-    pa_bool_t flat_volumes:1;
-    pa_bool_t disallow_module_loading:1;
-    pa_bool_t disallow_exit:1;
-    pa_bool_t running_as_daemon:1;
-    pa_bool_t realtime_scheduling:1;
-    pa_bool_t disable_remixing:1;
-    pa_bool_t disable_lfe_remixing:1;
-    pa_bool_t deferred_volume:1;
+    bool flat_volumes:1;
+    bool disallow_module_loading:1;
+    bool disallow_exit:1;
+    bool running_as_daemon:1;
+    bool realtime_scheduling:1;
+    bool disable_remixing:1;
+    bool disable_lfe_remixing:1;
+    bool deferred_volume:1;
 
     pa_resample_method_t resample_method;
     int realtime_priority;
@@ -192,12 +199,12 @@ enum {
     PA_CORE_MESSAGE_MAX
 };
 
-pa_core* pa_core_new(pa_mainloop_api *m, pa_bool_t shared, size_t shm_size);
+pa_core* pa_core_new(pa_mainloop_api *m, bool shared, size_t shm_size);
 
 /* Check whether no one is connected to this core */
 void pa_core_check_idle(pa_core *c);
 
-int pa_core_exit(pa_core *c, pa_bool_t force, int retval);
+int pa_core_exit(pa_core *c, bool force, int retval);
 
 void pa_core_maybe_vacuum(pa_core *c);