]> code.delx.au - pulseaudio/commitdiff
maintain a pa_core state variable
authorLennart Poettering <lennart@poettering.net>
Fri, 23 Jan 2009 21:29:02 +0000 (22:29 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 23 Jan 2009 21:29:02 +0000 (22:29 +0100)
src/pulsecore/core.c
src/pulsecore/core.h

index 0b78bc40482757225b43cfa8a8910d76575e9be1..c6e96c1e0848fc0b0869514249c59b274636efa6 100644 (file)
@@ -90,6 +90,7 @@ pa_core* pa_core_new(pa_mainloop_api *m, pa_bool_t shared, size_t shm_size) {
     c->parent.parent.free = core_free;
     c->parent.process_msg = core_process_msg;
 
+    c->state = PA_CORE_STARTUP;
     c->mainloop = m;
     c->clients = pa_idxset_new(NULL, NULL);
     c->sinks = pa_idxset_new(NULL, NULL);
@@ -149,6 +150,8 @@ pa_core* pa_core_new(pa_mainloop_api *m, pa_bool_t shared, size_t shm_size) {
 
     pa_core_check_idle(c);
 
+    c->state = PA_CORE_RUNNING;
+
     return c;
 }
 
@@ -157,6 +160,8 @@ static void core_free(pa_object *o) {
     int j;
     pa_assert(c);
 
+    c->state = PA_CORE_SHUTDOWN;
+
     pa_module_unload_all(c);
     pa_assert(!c->modules);
 
index 9f463d670f1799cf0aa66c4933e29b34e66b6d83..a91d7526297276d00b42feba2686e9e9d9822b45 100644 (file)
@@ -41,6 +41,12 @@ typedef struct pa_core pa_core;
 #include <pulsecore/sink-input.h>
 #include <pulsecore/msgobject.h>
 
+typedef enum pa_core_state {
+    PA_CORE_STARTUP,
+    PA_CORE_RUNNING,
+    PA_CORE_SHUTDOWN
+} pa_core_state_t;
+
 typedef enum pa_core_hook {
     PA_CORE_HOOK_SINK_NEW,
     PA_CORE_HOOK_SINK_FIXATE,
@@ -92,6 +98,8 @@ typedef enum pa_core_hook {
 struct pa_core {
     pa_msgobject parent;
 
+    pa_core_state_t state;
+
     /* A random value which may be used to identify this instance of
      * PulseAudio. Not cryptographically secure in any way. */
     uint32_t cookie;