summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Raghavan <arun@arunraghavan.net>2016-07-04 13:57:16 +0530
committerWim Taymans <wtaymans@redhat.com>2017-02-13 12:18:58 +0100
commit6347cd3e72347d8698af0b48fc626fa43f4e218f (patch)
treefc1aba815858d1b31098410ab1df7a286630276c
parent8fcf8065b8329ab9abe14ecddc1040e14adc6461 (diff)
pulsecore: Move pa_core structure into its own header
The idea is to allow some parts of the code to use pa_core as an opaque structure and access required members via API, over which we can then perform some form of access control Signed-off-by: Arun Raghavan <arun@arunraghavan.net>
-rw-r--r--src/Makefile.am1
-rw-r--r--src/daemon/main.c1
-rw-r--r--src/daemon/server-lookup.c1
-rw-r--r--src/modules/alsa/alsa-sink.c1
-rw-r--r--src/modules/alsa/alsa-source.c1
-rw-r--r--src/modules/alsa/alsa-ucm.c1
-rw-r--r--src/modules/alsa/module-alsa-card.c1
-rw-r--r--src/modules/bluetooth/backend-native.c1
-rw-r--r--src/modules/bluetooth/bluez4-util.c1
-rw-r--r--src/modules/bluetooth/bluez5-util.c1
-rw-r--r--src/modules/bluetooth/module-bluetooth-policy.c1
-rw-r--r--src/modules/bluetooth/module-bluez4-device.c1
-rw-r--r--src/modules/bluetooth/module-bluez5-device.c1
-rw-r--r--src/modules/bluetooth/module-bluez5-discover.c1
-rw-r--r--src/modules/dbus/iface-card.c1
-rw-r--r--src/modules/dbus/iface-client.c1
-rw-r--r--src/modules/dbus/iface-core.c1
-rw-r--r--src/modules/dbus/iface-device-port.c1
-rw-r--r--src/modules/dbus/iface-device.c1
-rw-r--r--src/modules/dbus/iface-memstats.c1
-rw-r--r--src/modules/dbus/iface-module.c1
-rw-r--r--src/modules/dbus/iface-sample.c1
-rw-r--r--src/modules/dbus/iface-stream.c1
-rw-r--r--src/modules/dbus/module-dbus-protocol.c1
-rw-r--r--src/modules/echo-cancel/adrian.c1
-rw-r--r--src/modules/echo-cancel/module-echo-cancel.c1
-rw-r--r--src/modules/gconf/module-gconf.c1
-rw-r--r--src/modules/jack/module-jack-sink.c1
-rw-r--r--src/modules/jack/module-jack-source.c1
-rw-r--r--src/modules/module-access.c1
-rw-r--r--src/modules/module-allow-passthrough.c1
-rw-r--r--src/modules/module-always-sink.c1
-rw-r--r--src/modules/module-augment-properties.c1
-rw-r--r--src/modules/module-card-restore.c1
-rw-r--r--src/modules/module-cli.c1
-rw-r--r--src/modules/module-combine-sink.c1
-rw-r--r--src/modules/module-default-device-restore.c1
-rw-r--r--src/modules/module-device-manager.c1
-rw-r--r--src/modules/module-device-restore.c1
-rw-r--r--src/modules/module-equalizer-sink.c1
-rw-r--r--src/modules/module-esound-sink.c1
-rw-r--r--src/modules/module-filter-apply.c1
-rw-r--r--src/modules/module-filter-heuristics.c1
-rw-r--r--src/modules/module-intended-roles.c1
-rw-r--r--src/modules/module-ladspa-sink.c1
-rw-r--r--src/modules/module-lirc.c1
-rw-r--r--src/modules/module-loopback.c1
-rw-r--r--src/modules/module-match.c1
-rw-r--r--src/modules/module-mmkbd-evdev.c1
-rw-r--r--src/modules/module-native-protocol-fd.c1
-rw-r--r--src/modules/module-null-sink.c1
-rw-r--r--src/modules/module-null-source.c1
-rw-r--r--src/modules/module-pipe-sink.c1
-rw-r--r--src/modules/module-pipe-source.c1
-rw-r--r--src/modules/module-position-event-sounds.c1
-rw-r--r--src/modules/module-protocol-stub.c1
-rw-r--r--src/modules/module-rescue-streams.c1
-rw-r--r--src/modules/module-role-cork.c1
-rw-r--r--src/modules/module-role-ducking.c1
-rw-r--r--src/modules/module-rygel-media-server.c1
-rw-r--r--src/modules/module-sine-source.c1
-rw-r--r--src/modules/module-sine.c1
-rw-r--r--src/modules/module-stream-restore.c1
-rw-r--r--src/modules/module-suspend-on-idle.c1
-rw-r--r--src/modules/module-switch-on-connect.c1
-rw-r--r--src/modules/module-switch-on-port-available.c1
-rw-r--r--src/modules/module-systemd-login.c1
-rw-r--r--src/modules/module-tunnel-sink-new.c1
-rw-r--r--src/modules/module-tunnel-source-new.c1
-rw-r--r--src/modules/module-tunnel.c1
-rw-r--r--src/modules/module-udev-detect.c1
-rw-r--r--src/modules/module-virtual-sink.c1
-rw-r--r--src/modules/module-virtual-source.c1
-rw-r--r--src/modules/module-virtual-surround-sink.c1
-rw-r--r--src/modules/module-zeroconf-discover.c1
-rw-r--r--src/modules/module-zeroconf-publish.c1
-rw-r--r--src/modules/oss/module-oss.c1
-rw-r--r--src/modules/raop/module-raop-discover.c1
-rw-r--r--src/modules/raop/module-raop-sink.c1
-rw-r--r--src/modules/raop/raop_client.c1
-rw-r--r--src/modules/rtp/module-rtp-recv.c1
-rw-r--r--src/modules/rtp/module-rtp-send.c1
-rw-r--r--src/modules/stream-interaction.c1
-rw-r--r--src/modules/x11/module-x11-cork-request.c1
-rw-r--r--src/modules/x11/module-x11-xsmp.c1
-rw-r--r--src/pulsecore/card.c1
-rw-r--r--src/pulsecore/cli-command.c1
-rw-r--r--src/pulsecore/cli-text.c1
-rw-r--r--src/pulsecore/client.c1
-rw-r--r--src/pulsecore/core-scache.c1
-rw-r--r--src/pulsecore/core-struct.h103
-rw-r--r--src/pulsecore/core-subscribe.c1
-rw-r--r--src/pulsecore/core.c1
-rw-r--r--src/pulsecore/core.h76
-rw-r--r--src/pulsecore/dbus-shared.c1
-rw-r--r--src/pulsecore/device-port.c1
-rw-r--r--src/pulsecore/module.c1
-rw-r--r--src/pulsecore/namereg.c1
-rw-r--r--src/pulsecore/play-memchunk.c1
-rw-r--r--src/pulsecore/protocol-esound.c1
-rw-r--r--src/pulsecore/protocol-http.c1
-rw-r--r--src/pulsecore/protocol-native.c1
-rw-r--r--src/pulsecore/protocol-simple.c1
-rw-r--r--src/pulsecore/shared.c1
-rw-r--r--src/pulsecore/sink-input.c1
-rw-r--r--src/pulsecore/sink.c1
-rw-r--r--src/pulsecore/sound-file-stream.c1
-rw-r--r--src/pulsecore/source-output.c1
-rw-r--r--src/pulsecore/source.c1
-rw-r--r--src/pulsecore/x11wrap.c1
110 files changed, 211 insertions, 76 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 7c66064c1..70bc84879 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -960,6 +960,7 @@ libpulsecore_@PA_MAJORMINOR@_la_SOURCES = \
pulsecore/core-scache.c pulsecore/core-scache.h \
pulsecore/core-subscribe.c pulsecore/core-subscribe.h \
pulsecore/core.c pulsecore/core.h \
+ pulsecore/core-struct.h \
pulsecore/hook-list.c pulsecore/hook-list.h \
pulsecore/ltdl-helper.c pulsecore/ltdl-helper.h \
pulsecore/modargs.c pulsecore/modargs.h \
diff --git a/src/daemon/main.c b/src/daemon/main.c
index dc5e5bc15..cb69f17c5 100644
--- a/src/daemon/main.c
+++ b/src/daemon/main.c
@@ -73,6 +73,7 @@
#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-scache.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/module.h>
#include <pulsecore/cli-command.h>
#include <pulsecore/log.h>
diff --git a/src/daemon/server-lookup.c b/src/daemon/server-lookup.c
index ca390c742..b5c53e4ba 100644
--- a/src/daemon/server-lookup.c
+++ b/src/daemon/server-lookup.c
@@ -27,6 +27,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/dbus-shared.h>
#include <pulsecore/macro.h>
diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index 886c735f9..41ef1aebf 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -38,6 +38,7 @@
#include <pulse/internal.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/i18n.h>
#include <pulsecore/module.h>
#include <pulsecore/memchunk.h>
diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c
index b788df2b3..4a3f40739 100644
--- a/src/modules/alsa/alsa-source.c
+++ b/src/modules/alsa/alsa-source.c
@@ -33,6 +33,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/i18n.h>
#include <pulsecore/module.h>
#include <pulsecore/memchunk.h>
diff --git a/src/modules/alsa/alsa-ucm.c b/src/modules/alsa/alsa-ucm.c
index b42c04079..227ed7d71 100644
--- a/src/modules/alsa/alsa-ucm.c
+++ b/src/modules/alsa/alsa-ucm.c
@@ -40,6 +40,7 @@
#include <pulsecore/log.h>
#include <pulsecore/macro.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/atomic.h>
#include <pulsecore/core-error.h>
diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c
index 4f1236ecd..b6ac86512 100644
--- a/src/modules/alsa/module-alsa-card.c
+++ b/src/modules/alsa/module-alsa-card.c
@@ -23,6 +23,7 @@
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/i18n.h>
#include <pulsecore/modargs.h>
diff --git a/src/modules/bluetooth/backend-native.c b/src/modules/bluetooth/backend-native.c
index cf8812612..f78cebc18 100644
--- a/src/modules/bluetooth/backend-native.c
+++ b/src/modules/bluetooth/backend-native.c
@@ -22,6 +22,7 @@
#endif
#include <pulsecore/shared.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/core-util.h>
#include <pulsecore/dbus-shared.h>
diff --git a/src/modules/bluetooth/bluez4-util.c b/src/modules/bluetooth/bluez4-util.c
index 542ce35e9..c582b9537 100644
--- a/src/modules/bluetooth/bluez4-util.c
+++ b/src/modules/bluetooth/bluez4-util.c
@@ -23,6 +23,7 @@
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/shared.h>
#include <pulsecore/dbus-shared.h>
diff --git a/src/modules/bluetooth/bluez5-util.c b/src/modules/bluetooth/bluez5-util.c
index 7d63f35a0..dac176b4f 100644
--- a/src/modules/bluetooth/bluez5-util.c
+++ b/src/modules/bluetooth/bluez5-util.c
@@ -26,6 +26,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/dbus-shared.h>
#include <pulsecore/log.h>
diff --git a/src/modules/bluetooth/module-bluetooth-policy.c b/src/modules/bluetooth/module-bluetooth-policy.c
index df702cc32..aa9fa4aa7 100644
--- a/src/modules/bluetooth/module-bluetooth-policy.c
+++ b/src/modules/bluetooth/module-bluetooth-policy.c
@@ -26,6 +26,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/modargs.h>
#include <pulsecore/source-output.h>
#include <pulsecore/source.h>
diff --git a/src/modules/bluetooth/module-bluez4-device.c b/src/modules/bluetooth/module-bluez4-device.c
index ac4ed63f0..3f2e70fd0 100644
--- a/src/modules/bluetooth/module-bluez4-device.c
+++ b/src/modules/bluetooth/module-bluez4-device.c
@@ -36,6 +36,7 @@
#include <pulsecore/i18n.h>
#include <pulsecore/module.h>
#include <pulsecore/modargs.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/core-error.h>
diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c
index 065fcaa61..0dbe6f311 100644
--- a/src/modules/bluetooth/module-bluez5-device.c
+++ b/src/modules/bluetooth/module-bluez5-device.c
@@ -30,6 +30,7 @@
#include <pulse/rtclock.h>
#include <pulse/timeval.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
diff --git a/src/modules/bluetooth/module-bluez5-discover.c b/src/modules/bluetooth/module-bluez5-discover.c
index 080e5d0a6..a5a0b454e 100644
--- a/src/modules/bluetooth/module-bluez5-discover.c
+++ b/src/modules/bluetooth/module-bluez5-discover.c
@@ -22,6 +22,7 @@
#endif
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/macro.h>
#include <pulsecore/module.h>
diff --git a/src/modules/dbus/iface-card.c b/src/modules/dbus/iface-card.c
index 1b705ba7b..ffcbc7a83 100644
--- a/src/modules/dbus/iface-card.c
+++ b/src/modules/dbus/iface-card.c
@@ -23,6 +23,7 @@
#include <dbus/dbus.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/dbus-util.h>
#include <pulsecore/protocol-dbus.h>
diff --git a/src/modules/dbus/iface-client.c b/src/modules/dbus/iface-client.c
index 455ea4511..3f3003f86 100644
--- a/src/modules/dbus/iface-client.c
+++ b/src/modules/dbus/iface-client.c
@@ -24,6 +24,7 @@
#include <dbus/dbus.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/dbus-util.h>
#include <pulsecore/protocol-dbus.h>
diff --git a/src/modules/dbus/iface-core.c b/src/modules/dbus/iface-core.c
index 508913de1..bfabd6110 100644
--- a/src/modules/dbus/iface-core.c
+++ b/src/modules/dbus/iface-core.c
@@ -28,6 +28,7 @@
#include <pulse/utf8.h>
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/dbus-util.h>
#include <pulsecore/macro.h>
diff --git a/src/modules/dbus/iface-device-port.c b/src/modules/dbus/iface-device-port.c
index 4892443e2..96a2abddc 100644
--- a/src/modules/dbus/iface-device-port.c
+++ b/src/modules/dbus/iface-device-port.c
@@ -23,6 +23,7 @@
#include <dbus/dbus.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/dbus-util.h>
diff --git a/src/modules/dbus/iface-device.c b/src/modules/dbus/iface-device.c
index 2c370a822..abaa42b0f 100644
--- a/src/modules/dbus/iface-device.c
+++ b/src/modules/dbus/iface-device.c
@@ -21,6 +21,7 @@
#include <config.h>
#endif
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/dbus-util.h>
#include <pulsecore/protocol-dbus.h>
diff --git a/src/modules/dbus/iface-memstats.c b/src/modules/dbus/iface-memstats.c
index cd1d7ea89..6ed4b07b1 100644
--- a/src/modules/dbus/iface-memstats.c
+++ b/src/modules/dbus/iface-memstats.c
@@ -23,6 +23,7 @@
#include <dbus/dbus.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-scache.h>
#include <pulsecore/core-util.h>
#include <pulsecore/dbus-util.h>
diff --git a/src/modules/dbus/iface-module.c b/src/modules/dbus/iface-module.c
index 222cd7359..a6fdf50f2 100644
--- a/src/modules/dbus/iface-module.c
+++ b/src/modules/dbus/iface-module.c
@@ -21,6 +21,7 @@
#include <config.h>
#endif
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/dbus-util.h>
#include <pulsecore/modargs.h>
diff --git a/src/modules/dbus/iface-sample.c b/src/modules/dbus/iface-sample.c
index 61f2ba091..accdf4628 100644
--- a/src/modules/dbus/iface-sample.c
+++ b/src/modules/dbus/iface-sample.c
@@ -21,6 +21,7 @@
#include <config.h>
#endif
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/dbus-util.h>
#include <pulsecore/namereg.h>
diff --git a/src/modules/dbus/iface-stream.c b/src/modules/dbus/iface-stream.c
index ade62cabd..76bbeb08a 100644
--- a/src/modules/dbus/iface-stream.c
+++ b/src/modules/dbus/iface-stream.c
@@ -22,6 +22,7 @@
#include <config.h>
#endif
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/dbus-util.h>
#include <pulsecore/protocol-dbus.h>
diff --git a/src/modules/dbus/module-dbus-protocol.c b/src/modules/dbus/module-dbus-protocol.c
index 8079d6b41..abd340a37 100644
--- a/src/modules/dbus/module-dbus-protocol.c
+++ b/src/modules/dbus/module-dbus-protocol.c
@@ -30,6 +30,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/client.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/dbus-util.h>
#include <pulsecore/idxset.h>
diff --git a/src/modules/echo-cancel/adrian.c b/src/modules/echo-cancel/adrian.c
index 3c47faef7..870a1fe7a 100644
--- a/src/modules/echo-cancel/adrian.c
+++ b/src/modules/echo-cancel/adrian.c
@@ -29,6 +29,7 @@
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/modargs.h>
#include "echo-cancel.h"
diff --git a/src/modules/echo-cancel/module-echo-cancel.c b/src/modules/echo-cancel/module-echo-cancel.c
index dfd05b647..f3f24edf2 100644
--- a/src/modules/echo-cancel/module-echo-cancel.c
+++ b/src/modules/echo-cancel/module-echo-cancel.c
@@ -43,6 +43,7 @@
#include <pulsecore/namereg.h>
#include <pulsecore/sink.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
diff --git a/src/modules/gconf/module-gconf.c b/src/modules/gconf/module-gconf.c
index 1e1b8555e..5baa1ae62 100644
--- a/src/modules/gconf/module-gconf.c
+++ b/src/modules/gconf/module-gconf.c
@@ -32,6 +32,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/module.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/log.h>
#include <pulse/mainloop-api.h>
diff --git a/src/modules/jack/module-jack-sink.c b/src/modules/jack/module-jack-sink.c
index 4d314930b..22dbbad3f 100644
--- a/src/modules/jack/module-jack-sink.c
+++ b/src/modules/jack/module-jack-sink.c
@@ -33,6 +33,7 @@
#include <pulsecore/sink.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
diff --git a/src/modules/jack/module-jack-source.c b/src/modules/jack/module-jack-source.c
index e45f3048f..ce5a09699 100644
--- a/src/modules/jack/module-jack-source.c
+++ b/src/modules/jack/module-jack-source.c
@@ -33,6 +33,7 @@
#include <pulsecore/source.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
diff --git a/src/modules/module-access.c b/src/modules/module-access.c
index c00612a96..39e2f0e04 100644
--- a/src/modules/module-access.c
+++ b/src/modules/module-access.c
@@ -34,6 +34,7 @@
#include <pulse/timeval.h>
#include <pulsecore/core-error.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/module.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
diff --git a/src/modules/module-allow-passthrough.c b/src/modules/module-allow-passthrough.c
index 4b801e469..45e7a4186 100644
--- a/src/modules/module-allow-passthrough.c
+++ b/src/modules/module-allow-passthrough.c
@@ -26,6 +26,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/i18n.h>
#include <pulsecore/sink-input.h>
#include <pulsecore/source-output.h>
diff --git a/src/modules/module-always-sink.c b/src/modules/module-always-sink.c
index 12f63f758..a7f356836 100644
--- a/src/modules/module-always-sink.c
+++ b/src/modules/module-always-sink.c
@@ -24,6 +24,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/i18n.h>
#include <pulsecore/sink.h>
diff --git a/src/modules/module-augment-properties.c b/src/modules/module-augment-properties.c
index 541f0e795..4608d459f 100644
--- a/src/modules/module-augment-properties.c
+++ b/src/modules/module-augment-properties.c
@@ -28,6 +28,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
diff --git a/src/modules/module-card-restore.c b/src/modules/module-card-restore.c
index 3c0307bee..ff6066f6b 100644
--- a/src/modules/module-card-restore.c
+++ b/src/modules/module-card-restore.c
@@ -33,6 +33,7 @@
#include <pulse/timeval.h>
#include <pulse/rtclock.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/module.h>
#include <pulsecore/core-util.h>
diff --git a/src/modules/module-cli.c b/src/modules/module-cli.c
index a69ad4a67..b23519dfb 100644
--- a/src/modules/module-cli.c
+++ b/src/modules/module-cli.c
@@ -33,6 +33,7 @@
#include <pulsecore/log.h>
#include <pulsecore/modargs.h>
#include <pulsecore/macro.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include "module-cli-symdef.h"
diff --git a/src/modules/module-combine-sink.c b/src/modules/module-combine-sink.c
index 250240a7a..4fadbb907 100644
--- a/src/modules/module-combine-sink.c
+++ b/src/modules/module-combine-sink.c
@@ -35,6 +35,7 @@
#include <pulsecore/sink-input.h>
#include <pulsecore/memblockq.h>
#include <pulsecore/log.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
diff --git a/src/modules/module-default-device-restore.c b/src/modules/module-default-device-restore.c
index d76e28e68..4b169bb53 100644
--- a/src/modules/module-default-device-restore.c
+++ b/src/modules/module-default-device-restore.c
@@ -28,6 +28,7 @@
#include <pulse/timeval.h>
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/module.h>
#include <pulsecore/log.h>
diff --git a/src/modules/module-device-manager.c b/src/modules/module-device-manager.c
index 2a0a67f04..17406c3e2 100644
--- a/src/modules/module-device-manager.c
+++ b/src/modules/module-device-manager.c
@@ -34,6 +34,7 @@
#include <pulse/timeval.h>
#include <pulse/rtclock.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/module.h>
#include <pulsecore/core-util.h>
diff --git a/src/modules/module-device-restore.c b/src/modules/module-device-restore.c
index 8d7b34b43..f150dbd19 100644
--- a/src/modules/module-device-restore.c
+++ b/src/modules/module-device-restore.c
@@ -37,6 +37,7 @@
#include <pulse/format.h>
#include <pulse/internal.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/module.h>
#include <pulsecore/core-util.h>
diff --git a/src/modules/module-equalizer-sink.c b/src/modules/module-equalizer-sink.c
index 9c25f3f5e..8c50468bf 100644
--- a/src/modules/module-equalizer-sink.c
+++ b/src/modules/module-equalizer-sink.c
@@ -46,6 +46,7 @@
#include <pulse/xmalloc.h>
#include <pulse/timeval.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-rtclock.h>
#include <pulsecore/i18n.h>
#include <pulsecore/aupdate.h>
diff --git a/src/modules/module-esound-sink.c b/src/modules/module-esound-sink.c
index 2ce0c8549..f304c9732 100644
--- a/src/modules/module-esound-sink.c
+++ b/src/modules/module-esound-sink.c
@@ -48,6 +48,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/socket.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/iochannel.h>
#include <pulsecore/sink.h>
diff --git a/src/modules/module-filter-apply.c b/src/modules/module-filter-apply.c
index 364d68be7..ceeb5419c 100644
--- a/src/modules/module-filter-apply.c
+++ b/src/modules/module-filter-apply.c
@@ -26,6 +26,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/i18n.h>
#include <pulsecore/macro.h>
diff --git a/src/modules/module-filter-heuristics.c b/src/modules/module-filter-heuristics.c
index 423e87387..15baa1c68 100644
--- a/src/modules/module-filter-heuristics.c
+++ b/src/modules/module-filter-heuristics.c
@@ -26,6 +26,7 @@
#include <pulsecore/macro.h>
#include <pulsecore/hook-list.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/sink-input.h>
#include <pulsecore/modargs.h>
diff --git a/src/modules/module-intended-roles.c b/src/modules/module-intended-roles.c
index 60ec7e982..e083c11fa 100644
--- a/src/modules/module-intended-roles.c
+++ b/src/modules/module-intended-roles.c
@@ -24,6 +24,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
diff --git a/src/modules/module-ladspa-sink.c b/src/modules/module-ladspa-sink.c
index c11fa5e75..36028306c 100644
--- a/src/modules/module-ladspa-sink.c
+++ b/src/modules/module-ladspa-sink.c
@@ -32,6 +32,7 @@
#include <pulsecore/namereg.h>
#include <pulsecore/sink.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
diff --git a/src/modules/module-lirc.c b/src/modules/module-lirc.c
index d63fdbd66..7c325da0e 100644
--- a/src/modules/module-lirc.c
+++ b/src/modules/module-lirc.c
@@ -30,6 +30,7 @@
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/module.h>
#include <pulsecore/log.h>
#include <pulsecore/namereg.h>
diff --git a/src/modules/module-loopback.c b/src/modules/module-loopback.c
index 9410c98a0..75da911e0 100644
--- a/src/modules/module-loopback.c
+++ b/src/modules/module-loopback.c
@@ -31,6 +31,7 @@
#include <pulsecore/modargs.h>
#include <pulsecore/namereg.h>
#include <pulsecore/log.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulse/rtclock.h>
diff --git a/src/modules/module-match.c b/src/modules/module-match.c
index 559687c17..f37113987 100644
--- a/src/modules/module-match.c
+++ b/src/modules/module-match.c
@@ -36,6 +36,7 @@
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/module.h>
#include <pulsecore/core-util.h>
diff --git a/src/modules/module-mmkbd-evdev.c b/src/modules/module-mmkbd-evdev.c
index 6c9cf342b..818a5022e 100644
--- a/src/modules/module-mmkbd-evdev.c
+++ b/src/modules/module-mmkbd-evdev.c
@@ -32,6 +32,7 @@
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/module.h>
#include <pulsecore/log.h>
diff --git a/src/modules/module-native-protocol-fd.c b/src/modules/module-native-protocol-fd.c
index 5fd7f6a70..c951bc65a 100644
--- a/src/modules/module-native-protocol-fd.c
+++ b/src/modules/module-native-protocol-fd.c
@@ -24,6 +24,7 @@
#include <stdio.h>
#include <unistd.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/module.h>
#include <pulsecore/macro.h>
#include <pulsecore/iochannel.h>
diff --git a/src/modules/module-null-sink.c b/src/modules/module-null-sink.c
index b8157e8ff..be3c98f23 100644
--- a/src/modules/module-null-sink.c
+++ b/src/modules/module-null-sink.c
@@ -34,6 +34,7 @@
#include <pulsecore/macro.h>
#include <pulsecore/sink.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
diff --git a/src/modules/module-null-source.c b/src/modules/module-null-source.c
index a75a04f5a..a79188330 100644
--- a/src/modules/module-null-source.c
+++ b/src/modules/module-null-source.c
@@ -31,6 +31,7 @@
#include <pulse/timeval.h>
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/log.h>
#include <pulsecore/macro.h>
diff --git a/src/modules/module-pipe-sink.c b/src/modules/module-pipe-sink.c
index da6502115..0b32f0dd3 100644
--- a/src/modules/module-pipe-sink.c
+++ b/src/modules/module-pipe-sink.c
@@ -35,6 +35,7 @@
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/sink.h>
#include <pulsecore/module.h>
diff --git a/src/modules/module-pipe-source.c b/src/modules/module-pipe-source.c
index f39fc557a..4b651cc45 100644
--- a/src/modules/module-pipe-source.c
+++ b/src/modules/module-pipe-source.c
@@ -35,6 +35,7 @@
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/source.h>
#include <pulsecore/module.h>
diff --git a/src/modules/module-position-event-sounds.c b/src/modules/module-position-event-sounds.c
index fb9f5b3b6..ef0378610 100644
--- a/src/modules/module-position-event-sounds.c
+++ b/src/modules/module-position-event-sounds.c
@@ -32,6 +32,7 @@
#include <pulse/channelmap.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
diff --git a/src/modules/module-protocol-stub.c b/src/modules/module-protocol-stub.c
index 5a183c89f..8fd43925c 100644
--- a/src/modules/module-protocol-stub.c
+++ b/src/modules/module-protocol-stub.c
@@ -32,6 +32,7 @@
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/module.h>
#include <pulsecore/socket.h>
diff --git a/src/modules/module-rescue-streams.c b/src/modules/module-rescue-streams.c
index 60ac1c4cf..e844e1605 100644
--- a/src/modules/module-rescue-streams.c
+++ b/src/modules/module-rescue-streams.c
@@ -24,6 +24,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/sink-input.h>
#include <pulsecore/source-output.h>
#include <pulsecore/modargs.h>
diff --git a/src/modules/module-role-cork.c b/src/modules/module-role-cork.c
index d71cc383c..d11be8cc4 100644
--- a/src/modules/module-role-cork.c
+++ b/src/modules/module-role-cork.c
@@ -23,6 +23,7 @@
#include <pulsecore/macro.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <stream-interaction.h>
#include "module-role-cork-symdef.h"
diff --git a/src/modules/module-role-ducking.c b/src/modules/module-role-ducking.c
index add2d36ac..af3e98ce5 100644
--- a/src/modules/module-role-ducking.c
+++ b/src/modules/module-role-ducking.c
@@ -23,6 +23,7 @@
#include <pulsecore/macro.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <stream-interaction.h>
#include "module-role-ducking-symdef.h"
diff --git a/src/modules/module-rygel-media-server.c b/src/modules/module-rygel-media-server.c
index e2c2e6fd0..0737fa9bb 100644
--- a/src/modules/module-rygel-media-server.c
+++ b/src/modules/module-rygel-media-server.c
@@ -33,6 +33,7 @@
#include <pulsecore/i18n.h>
#include <pulsecore/sink.h>
#include <pulsecore/source.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/log.h>
#include <pulsecore/macro.h>
diff --git a/src/modules/module-sine-source.c b/src/modules/module-sine-source.c
index cdeb2c03d..a3be32271 100644
--- a/src/modules/module-sine-source.c
+++ b/src/modules/module-sine-source.c
@@ -32,6 +32,7 @@
#include <pulsecore/source.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
diff --git a/src/modules/module-sine.c b/src/modules/module-sine.c
index d56fae54a..a95cf7986 100644
--- a/src/modules/module-sine.c
+++ b/src/modules/module-sine.c
@@ -25,6 +25,7 @@
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/sink-input.h>
#include <pulsecore/module.h>
#include <pulsecore/modargs.h>
diff --git a/src/modules/module-stream-restore.c b/src/modules/module-stream-restore.c
index d1c2597e5..75ca72935 100644
--- a/src/modules/module-stream-restore.c
+++ b/src/modules/module-stream-restore.c
@@ -35,6 +35,7 @@
#include <pulse/timeval.h>
#include <pulse/rtclock.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/module.h>
#include <pulsecore/core-util.h>
diff --git a/src/modules/module-suspend-on-idle.c b/src/modules/module-suspend-on-idle.c
index a284f858e..030de4d80 100644
--- a/src/modules/module-suspend-on-idle.c
+++ b/src/modules/module-suspend-on-idle.c
@@ -26,6 +26,7 @@
#include <pulse/rtclock.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/sink-input.h>
#include <pulsecore/source-output.h>
diff --git a/src/modules/module-switch-on-connect.c b/src/modules/module-switch-on-connect.c
index c844add6e..f3171e931 100644
--- a/src/modules/module-switch-on-connect.c
+++ b/src/modules/module-switch-on-connect.c
@@ -25,6 +25,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/sink-input.h>
#include <pulsecore/source-output.h>
#include <pulsecore/source.h>
diff --git a/src/modules/module-switch-on-port-available.c b/src/modules/module-switch-on-port-available.c
index b9a0f3b3a..ee787cc6e 100644
--- a/src/modules/module-switch-on-port-available.c
+++ b/src/modules/module-switch-on-port-available.c
@@ -23,6 +23,7 @@
#endif
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/device-port.h>
#include <pulsecore/hashmap.h>
diff --git a/src/modules/module-systemd-login.c b/src/modules/module-systemd-login.c
index d15bee55d..62eeb4cbb 100644
--- a/src/modules/module-systemd-login.c
+++ b/src/modules/module-systemd-login.c
@@ -32,6 +32,7 @@
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/module.h>
#include <pulsecore/log.h>
#include <pulsecore/hashmap.h>
diff --git a/src/modules/module-tunnel-sink-new.c b/src/modules/module-tunnel-sink-new.c
index 92f99df79..82eb7c672 100644
--- a/src/modules/module-tunnel-sink-new.c
+++ b/src/modules/module-tunnel-sink-new.c
@@ -30,6 +30,7 @@
#include <pulse/error.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/i18n.h>
#include <pulsecore/sink.h>
diff --git a/src/modules/module-tunnel-source-new.c b/src/modules/module-tunnel-source-new.c
index e159c33f1..ff40140b8 100644
--- a/src/modules/module-tunnel-source-new.c
+++ b/src/modules/module-tunnel-source-new.c
@@ -30,6 +30,7 @@
#include <pulse/error.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/i18n.h>
#include <pulsecore/source.h>
diff --git a/src/modules/module-tunnel.c b/src/modules/module-tunnel.c
index d7114ee24..9e5f31688 100644
--- a/src/modules/module-tunnel.c
+++ b/src/modules/module-tunnel.c
@@ -40,6 +40,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
diff --git a/src/modules/module-udev-detect.c b/src/modules/module-udev-detect.c
index bb41a9629..d36b1363a 100644
--- a/src/modules/module-udev-detect.c
+++ b/src/modules/module-udev-detect.c
@@ -30,6 +30,7 @@
#include <pulse/timeval.h>
#include <pulsecore/modargs.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/core-util.h>
#include <pulsecore/namereg.h>
diff --git a/src/modules/module-virtual-sink.c b/src/modules/module-virtual-sink.c
index 02cc1ac13..286310eca 100644
--- a/src/modules/module-virtual-sink.c
+++ b/src/modules/module-virtual-sink.c
@@ -29,6 +29,7 @@
#include <pulsecore/namereg.h>
#include <pulsecore/sink.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
diff --git a/src/modules/module-virtual-source.c b/src/modules/module-virtual-source.c
index 36edf785d..b3403a616 100644
--- a/src/modules/module-virtual-source.c
+++ b/src/modules/module-virtual-source.c
@@ -31,6 +31,7 @@
#include <pulsecore/namereg.h>
#include <pulsecore/sink.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
diff --git a/src/modules/module-virtual-surround-sink.c b/src/modules/module-virtual-surround-sink.c
index 6c7120a0b..4d0cee5ff 100644
--- a/src/modules/module-virtual-surround-sink.c
+++ b/src/modules/module-virtual-surround-sink.c
@@ -30,6 +30,7 @@
#include <pulsecore/namereg.h>
#include <pulsecore/sink.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
diff --git a/src/modules/module-zeroconf-discover.c b/src/modules/module-zeroconf-discover.c
index 96476b7ac..e628c6b09 100644
--- a/src/modules/module-zeroconf-discover.c
+++ b/src/modules/module-zeroconf-discover.c
@@ -35,6 +35,7 @@
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/log.h>
#include <pulsecore/hashmap.h>
diff --git a/src/modules/module-zeroconf-publish.c b/src/modules/module-zeroconf-publish.c
index 482881c5b..74018ebfc 100644
--- a/src/modules/module-zeroconf-publish.c
+++ b/src/modules/module-zeroconf-publish.c
@@ -39,6 +39,7 @@
#include <pulsecore/sink.h>
#include <pulsecore/source.h>
#include <pulsecore/native-common.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/log.h>
#include <pulsecore/dynarray.h>
diff --git a/src/modules/oss/module-oss.c b/src/modules/oss/module-oss.c
index 8a5a69279..a53b725f7 100644
--- a/src/modules/oss/module-oss.c
+++ b/src/modules/oss/module-oss.c
@@ -51,6 +51,7 @@
#include <pulse/xmalloc.h>
#include <pulse/util.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/thread.h>
#include <pulsecore/sink.h>
diff --git a/src/modules/raop/module-raop-discover.c b/src/modules/raop/module-raop-discover.c
index f08304434..f4ac13356 100644
--- a/src/modules/raop/module-raop-discover.c
+++ b/src/modules/raop/module-raop-discover.c
@@ -36,6 +36,7 @@
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/log.h>
#include <pulsecore/hashmap.h>
diff --git a/src/modules/raop/module-raop-sink.c b/src/modules/raop/module-raop-sink.c
index 7a97e8304..2827b04d8 100644
--- a/src/modules/raop/module-raop-sink.c
+++ b/src/modules/raop/module-raop-sink.c
@@ -41,6 +41,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/core-error.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/sink.h>
#include <pulsecore/module.h>
#include <pulsecore/core-util.h>
diff --git a/src/modules/raop/raop_client.c b/src/modules/raop/raop_client.c
index 864c5580c..bd4f90b0f 100644
--- a/src/modules/raop/raop_client.c
+++ b/src/modules/raop/raop_client.c
@@ -40,6 +40,7 @@
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/core-util.h>
#include <pulsecore/iochannel.h>
diff --git a/src/modules/rtp/module-rtp-recv.c b/src/modules/rtp/module-rtp-recv.c
index 5977500cf..e77f3d066 100644
--- a/src/modules/rtp/module-rtp-recv.c
+++ b/src/modules/rtp/module-rtp-recv.c
@@ -34,6 +34,7 @@
#include <pulse/timeval.h>
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/module.h>
#include <pulsecore/llist.h>
diff --git a/src/modules/rtp/module-rtp-send.c b/src/modules/rtp/module-rtp-send.c
index 15a7436cb..ef5c52653 100644
--- a/src/modules/rtp/module-rtp-send.c
+++ b/src/modules/rtp/module-rtp-send.c
@@ -32,6 +32,7 @@
#include <pulse/util.h>
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/module.h>
#include <pulsecore/source.h>
diff --git a/src/modules/stream-interaction.c b/src/modules/stream-interaction.c
index 41847860c..728398c92 100644
--- a/src/modules/stream-interaction.c
+++ b/src/modules/stream-interaction.c
@@ -28,6 +28,7 @@
#include <pulsecore/hashmap.h>
#include <pulsecore/hook-list.h>
#include <pulsecore/core.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/sink-input.h>
#include <pulsecore/modargs.h>
diff --git a/src/modules/x11/module-x11-cork-request.c b/src/modules/x11/module-x11-cork-request.c
index 5c76711f2..a86a82e3e 100644
--- a/src/modules/x11/module-x11-cork-request.c
+++ b/src/modules/x11/module-x11-cork-request.c
@@ -36,6 +36,7 @@
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
#include <pulsecore/x11wrap.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include "module-x11-cork-request-symdef.h"
diff --git a/src/modules/x11/module-x11-xsmp.c b/src/modules/x11/module-x11-xsmp.c
index 7c6fb2308..5f09d52f3 100644
--- a/src/modules/x11/module-x11-xsmp.c
+++ b/src/modules/x11/module-x11-xsmp.c
@@ -31,6 +31,7 @@
#include <pulse/xmalloc.h>
#include <pulse/util.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
#include <pulsecore/x11wrap.h>
diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
index bc5b75b04..39f426106 100644
--- a/src/pulsecore/card.c
+++ b/src/pulsecore/card.c
@@ -30,6 +30,7 @@
#include <pulsecore/log.h>
#include <pulsecore/macro.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/namereg.h>
#include <pulsecore/device-port.h>
diff --git a/src/pulsecore/cli-command.c b/src/pulsecore/cli-command.c
index 9a7360582..05c2b8f93 100644
--- a/src/pulsecore/cli-command.c
+++ b/src/pulsecore/cli-command.c
@@ -47,6 +47,7 @@
#include <pulsecore/strbuf.h>
#include <pulsecore/namereg.h>
#include <pulsecore/cli-text.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-scache.h>
#include <pulsecore/sound-file.h>
#include <pulsecore/play-memchunk.h>
diff --git a/src/pulsecore/cli-text.c b/src/pulsecore/cli-text.c
index af79a1ebe..9e325247a 100644
--- a/src/pulsecore/cli-text.c
+++ b/src/pulsecore/cli-text.c
@@ -32,6 +32,7 @@
#include <pulsecore/sink-input.h>
#include <pulsecore/source-output.h>
#include <pulsecore/strbuf.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-scache.h>
#include <pulsecore/macro.h>
#include <pulsecore/core-util.h>
diff --git a/src/pulsecore/client.c b/src/pulsecore/client.c
index 2e6af4773..24faa1f44 100644
--- a/src/pulsecore/client.c
+++ b/src/pulsecore/client.c
@@ -29,6 +29,7 @@
#include <pulse/xmalloc.h>
#include <pulse/util.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-subscribe.h>
#include <pulsecore/log.h>
#include <pulsecore/macro.h>
diff --git a/src/pulsecore/core-scache.c b/src/pulsecore/core-scache.c
index 026eeca89..8d5472046 100644
--- a/src/pulsecore/core-scache.c
+++ b/src/pulsecore/core-scache.c
@@ -49,6 +49,7 @@
#include <pulsecore/sink-input.h>
#include <pulsecore/play-memchunk.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-subscribe.h>
#include <pulsecore/namereg.h>
#include <pulsecore/sound-file.h>
diff --git a/src/pulsecore/core-struct.h b/src/pulsecore/core-struct.h
new file mode 100644
index 000000000..e6aa37409
--- /dev/null
+++ b/src/pulsecore/core-struct.h
@@ -0,0 +1,103 @@
+#ifndef foocorestructhfoo
+#define foocorestructhfoo
+
+/***
+ This file is part of PulseAudio.
+
+ Copyright 2004-2006 Lennart Poettering
+
+ PulseAudio is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 2.1 of the License,
+ or (at your option) any later version.
+
+ PulseAudio is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include "core.h"
+
+/* The core structure of PulseAudio. Every PulseAudio daemon contains
+ * exactly one of these. It is used for storing kind of global
+ * variables for the daemon. */
+
+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;
+
+ pa_mainloop_api *mainloop;
+
+ /* idxset of all kinds of entities */
+ pa_idxset *clients, *cards, *sinks, *sources, *sink_inputs, *source_outputs, *modules, *scache;
+
+ /* Some hashmaps for all sorts of entities */
+ pa_hashmap *namereg, *shared;
+
+ /* The default sink/source */
+ pa_source *default_source;
+ pa_sink *default_sink;
+
+ pa_channel_map default_channel_map;
+ pa_sample_spec default_sample_spec;
+ uint32_t alternate_sample_rate;
+ unsigned default_n_fragments, default_fragment_size_msec;
+ unsigned deferred_volume_safety_margin_usec;
+ int deferred_volume_extra_delay_usec;
+ unsigned lfe_crossover_freq;
+
+ pa_defer_event *module_defer_unload_event;
+ pa_hashmap *modules_pending_unload; /* pa_module -> pa_module (hashmap-as-a-set) */
+
+ pa_defer_event *subscription_defer_event;
+ PA_LLIST_HEAD(pa_subscription, subscriptions);
+ PA_LLIST_HEAD(pa_subscription_event, subscription_event_queue);
+ pa_subscription_event *subscription_event_last;
+
+ /* The mempool is used for data we write to, it's readonly for the client. */
+ pa_mempool *mempool;
+
+ /* Shared memory size, as specified either by daemon configuration
+ * or PA daemon defaults (~ 64 MiB). */
+ size_t shm_size;
+
+ pa_silence_cache silence_cache;
+
+ pa_time_event *exit_event;
+ pa_time_event *scache_auto_unload_event;
+
+ int exit_idle_time, scache_idle_time;
+
+ bool flat_volumes:1;
+ bool disallow_module_loading:1;
+ bool disallow_exit:1;
+ bool running_as_daemon:1;
+ bool realtime_scheduling:1;
+ bool avoid_resampling:1;
+ bool disable_remixing:1;
+ bool remixing_use_all_sink_channels:1;
+ bool disable_lfe_remixing:1;
+ bool deferred_volume:1;
+
+ pa_resample_method_t resample_method;
+ int realtime_priority;
+
+ pa_server_type_t server_type;
+ pa_cpu_info cpu_info;
+
+ /* hooks */
+ pa_hook hooks[PA_CORE_HOOK_MAX];
+ /* access hooks */
+ pa_hook access[PA_ACCESS_HOOK_MAX];
+};
+
+#endif /* foocorestructhfoo */
diff --git a/src/pulsecore/core-subscribe.c b/src/pulsecore/core-subscribe.c
index 5a88b7ecd..88d900bce 100644
--- a/src/pulsecore/core-subscribe.c
+++ b/src/pulsecore/core-subscribe.c
@@ -28,6 +28,7 @@
#include <pulsecore/log.h>
#include <pulsecore/macro.h>
+#include <pulsecore/core-struct.h>
#include "core-subscribe.h"
/* The subscription subsystem may be used to be notified whenever an
diff --git a/src/pulsecore/core.c b/src/pulsecore/core.c
index e5d6879f1..b8dbde949 100644
--- a/src/pulsecore/core.c
+++ b/src/pulsecore/core.c
@@ -31,6 +31,7 @@
#include <pulse/xmalloc.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/core-scache.h>
diff --git a/src/pulsecore/core.h b/src/pulsecore/core.h
index 152a53f2d..955db8940 100644
--- a/src/pulsecore/core.h
+++ b/src/pulsecore/core.h
@@ -141,82 +141,6 @@ typedef enum pa_core_hook {
PA_CORE_HOOK_MAX
} pa_core_hook_t;
-/* The core structure of PulseAudio. Every PulseAudio daemon contains
- * exactly one of these. It is used for storing kind of global
- * variables for the daemon. */
-
-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;
-
- pa_mainloop_api *mainloop;
-
- /* idxset of all kinds of entities */
- pa_idxset *clients, *cards, *sinks, *sources, *sink_inputs, *source_outputs, *modules, *scache;
-
- /* Some hashmaps for all sorts of entities */
- pa_hashmap *namereg, *shared;
-
- /* The default sink/source */
- pa_source *default_source;
- pa_sink *default_sink;
-
- pa_channel_map default_channel_map;
- pa_sample_spec default_sample_spec;
- uint32_t alternate_sample_rate;
- unsigned default_n_fragments, default_fragment_size_msec;
- unsigned deferred_volume_safety_margin_usec;
- int deferred_volume_extra_delay_usec;
- unsigned lfe_crossover_freq;
-
- pa_defer_event *module_defer_unload_event;
- pa_hashmap *modules_pending_unload; /* pa_module -> pa_module (hashmap-as-a-set) */
-
- pa_defer_event *subscription_defer_event;
- PA_LLIST_HEAD(pa_subscription, subscriptions);
- PA_LLIST_HEAD(pa_subscription_event, subscription_event_queue);
- pa_subscription_event *subscription_event_last;
-
- /* The mempool is used for data we write to, it's readonly for the client. */
- pa_mempool *mempool;
-
- /* Shared memory size, as specified either by daemon configuration
- * or PA daemon defaults (~ 64 MiB). */
- size_t shm_size;
-
- pa_silence_cache silence_cache;
-
- pa_time_event *exit_event;
- pa_time_event *scache_auto_unload_event;
-
- int exit_idle_time, scache_idle_time;
-
- 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;
-
- pa_server_type_t server_type;
- pa_cpu_info cpu_info;
-
- /* hooks */
- pa_hook hooks[PA_CORE_HOOK_MAX];
- /* access hooks */
- pa_hook access[PA_ACCESS_HOOK_MAX];
-};
-
PA_DECLARE_PUBLIC_CLASS(pa_core);
#define PA_CORE(o) pa_core_cast(o)
diff --git a/src/pulsecore/dbus-shared.c b/src/pulsecore/dbus-shared.c
index 935b068ca..3309f8783 100644
--- a/src/pulsecore/dbus-shared.c
+++ b/src/pulsecore/dbus-shared.c
@@ -24,6 +24,7 @@
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/shared.h>
#include "dbus-shared.h"
diff --git a/src/pulsecore/device-port.c b/src/pulsecore/device-port.c
index 7c9ddf325..bc4d70439 100644
--- a/src/pulsecore/device-port.c
+++ b/src/pulsecore/device-port.c
@@ -21,6 +21,7 @@
#include "device-port.h"
#include <pulsecore/card.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
PA_DEFINE_PUBLIC_CLASS(pa_device_port, pa_object);
diff --git a/src/pulsecore/module.c b/src/pulsecore/module.c
index ac1581591..da2abe0d7 100644
--- a/src/pulsecore/module.c
+++ b/src/pulsecore/module.c
@@ -31,6 +31,7 @@
#include <pulse/xmalloc.h>
#include <pulse/proplist.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-subscribe.h>
#include <pulsecore/log.h>
#include <pulsecore/core-util.h>
diff --git a/src/pulsecore/namereg.c b/src/pulsecore/namereg.c
index 47bfc087f..dfdcc4365 100644
--- a/src/pulsecore/namereg.c
+++ b/src/pulsecore/namereg.c
@@ -30,6 +30,7 @@
#include <pulsecore/source.h>
#include <pulsecore/sink.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-subscribe.h>
#include <pulsecore/core-util.h>
#include <pulsecore/macro.h>
diff --git a/src/pulsecore/play-memchunk.c b/src/pulsecore/play-memchunk.c
index cc0bc166b..3c7e5a6bb 100644
--- a/src/pulsecore/play-memchunk.c
+++ b/src/pulsecore/play-memchunk.c
@@ -24,6 +24,7 @@
#include <stdlib.h>
#include <stdio.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/sink-input.h>
#include <pulsecore/play-memblockq.h>
diff --git a/src/pulsecore/protocol-esound.c b/src/pulsecore/protocol-esound.c
index 4f83ac480..ead1d81fc 100644
--- a/src/pulsecore/protocol-esound.c
+++ b/src/pulsecore/protocol-esound.c
@@ -41,6 +41,7 @@
#include <pulsecore/sink.h>
#include <pulsecore/source-output.h>
#include <pulsecore/source.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-scache.h>
#include <pulsecore/sample-util.h>
#include <pulsecore/namereg.h>
diff --git a/src/pulsecore/protocol-http.c b/src/pulsecore/protocol-http.c
index 25a2cd008..bbb03c3aa 100644
--- a/src/pulsecore/protocol-http.c
+++ b/src/pulsecore/protocol-http.c
@@ -30,6 +30,7 @@
#include <pulse/xmalloc.h>
#include <pulse/timeval.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/ioline.h>
#include <pulsecore/thread-mq.h>
diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c
index 8f07b2d28..cbb6ae67b 100644
--- a/src/pulsecore/protocol-native.c
+++ b/src/pulsecore/protocol-native.c
@@ -45,6 +45,7 @@
#include <pulsecore/pdispatch.h>
#include <pulsecore/pstream-util.h>
#include <pulsecore/namereg.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-scache.h>
#include <pulsecore/core-subscribe.h>
#include <pulsecore/log.h>
diff --git a/src/pulsecore/protocol-simple.c b/src/pulsecore/protocol-simple.c
index 923ec87b4..bd9136b49 100644
--- a/src/pulsecore/protocol-simple.c
+++ b/src/pulsecore/protocol-simple.c
@@ -34,6 +34,7 @@
#include <pulsecore/sample-util.h>
#include <pulsecore/namereg.h>
#include <pulsecore/log.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/atomic.h>
#include <pulsecore/thread-mq.h>
diff --git a/src/pulsecore/shared.c b/src/pulsecore/shared.c
index 1b5eea986..2e63d0eb9 100644
--- a/src/pulsecore/shared.c
+++ b/src/pulsecore/shared.c
@@ -22,6 +22,7 @@
#endif
#include <pulse/xmalloc.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/macro.h>
#include "shared.h"
diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c
index e9694f21a..9a866b4c8 100644
--- a/src/pulsecore/sink-input.c
+++ b/src/pulsecore/sink-input.c
@@ -30,6 +30,7 @@
#include <pulse/util.h>
#include <pulse/internal.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-format.h>
#include <pulsecore/mix.h>
#include <pulsecore/stream-util.h>
diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c
index aa2182220..20249ec65 100644
--- a/src/pulsecore/sink.c
+++ b/src/pulsecore/sink.c
@@ -38,6 +38,7 @@
#include <pulsecore/i18n.h>
#include <pulsecore/sink-input.h>
#include <pulsecore/namereg.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/sample-util.h>
#include <pulsecore/mix.h>
diff --git a/src/pulsecore/sound-file-stream.c b/src/pulsecore/sound-file-stream.c
index ddda456ee..3ac935df5 100644
--- a/src/pulsecore/sound-file-stream.c
+++ b/src/pulsecore/sound-file-stream.c
@@ -32,6 +32,7 @@
#include <pulse/xmalloc.h>
#include <pulse/util.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-error.h>
#include <pulsecore/sink-input.h>
#include <pulsecore/log.h>
diff --git a/src/pulsecore/source-output.c b/src/pulsecore/source-output.c
index 6714ea935..a265e6fd1 100644
--- a/src/pulsecore/source-output.c
+++ b/src/pulsecore/source-output.c
@@ -30,6 +30,7 @@
#include <pulse/util.h>
#include <pulse/internal.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-format.h>
#include <pulsecore/mix.h>
#include <pulsecore/stream-util.h>
diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c
index 8ce781804..7a33d5b13 100644
--- a/src/pulsecore/source.c
+++ b/src/pulsecore/source.c
@@ -33,6 +33,7 @@
#include <pulse/rtclock.h>
#include <pulse/internal.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/source-output.h>
#include <pulsecore/namereg.h>
diff --git a/src/pulsecore/x11wrap.c b/src/pulsecore/x11wrap.c
index 0c040cf57..76cb83b45 100644
--- a/src/pulsecore/x11wrap.c
+++ b/src/pulsecore/x11wrap.c
@@ -28,6 +28,7 @@
#include <pulsecore/llist.h>
#include <pulsecore/log.h>
#include <pulsecore/shared.h>
+#include <pulsecore/core-struct.h>
#include <pulsecore/core-util.h>
#include <pulsecore/macro.h>