summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorArun Raghavan <arun@arunraghavan.net>2016-07-04 13:57:16 +0530
committerArun Raghavan <arun@arunraghavan.net>2016-07-04 13:58:20 +0530
commit17e158dc99ea96a088cbaf3ac01a7ff5e3743759 (patch)
treea0ea3644a98345d933192077b8b9872f3b75cd3a /src
parenta222a07920731f3c4967faccab7469af50b428a4 (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>
Diffstat (limited to 'src')
-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-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.c2
-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.h99
-rw-r--r--src/pulsecore/core-subscribe.c1
-rw-r--r--src/pulsecore/core.c1
-rw-r--r--src/pulsecore/core.h74
-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
109 files changed, 207 insertions, 74 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 7b1949754..4a5fd1663 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -958,6 +958,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 ae1185d31..a5faba500 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 63674e28f..e92e5cf7b 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 0820b48f1..65a138ef1 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 d807a82ea..13a765ae1 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 8d9d95c61..a689b1626 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 97b5ab087..21f8d5951 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 03c76bf07..e2cf1cdeb 100644
--- a/src/modules/bluetooth/bluez5-util.c
+++ b/src/modules/bluetooth/bluez5-util.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/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 4e518469f..07e728ab5 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 13fb7abe4..6f4f99b5a 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 498d0e1aa..71e1c2de8 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 c873648dd..3cb22c5ff 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 38ba9ba76..9af8a8d2f 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 1130947d0..898e36a9f 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-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 718a0dde4..acb437b65 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 b6322c6b7..cf9fddb37 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 76e380e54..4fe39efae 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 a6290b9d6..421ceef56 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 f4d0761c4..0d30bf35e 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 5b98ba5cb..c55599299 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 0c590bd29..aba060eea 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 0a3a4fc55..653573862 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 1218674f9..cd50a203c 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 55d70c79a..70c72a391 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 f7620db04..e34986426 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 7f835433e..6ed5c57ed 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 0f72dbf9f..91c2cb413 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 5c8b84ae5..094c9609f 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 a16557980..a2f6c2db5 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 ceedfe071..995519eb9 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 8537dd807..a71540fad 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..8e69cf6f3 100644
--- a/src/modules/raop/module-raop-discover.c
+++ b/src/modules/raop/module-raop-discover.c
@@ -1,4 +1,5 @@
/***
+#include <pulsecore/core-struct.h>
This file is part of PulseAudio.
Copyright 2004-2006 Lennart Poettering
@@ -36,6 +37,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 603703873..d152bbb21 100644
--- a/src/modules/raop/module-raop-sink.c
+++ b/src/modules/raop/module-raop-sink.c
@@ -40,6 +40,7 @@
#include <pulse/timeval.h>
#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/raop/raop_client.c b/src/modules/raop/raop_client.c
index 3b6c36ecc..7ab4f5672 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 7a476c312..97ab96be0 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..e24c81785
--- /dev/null
+++ b/src/pulsecore/core-struct.h
@@ -0,0 +1,99 @@
+#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 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];
+};
+
+#endif /* foocorestructhfoo */
diff --git a/src/pulsecore/core-subscribe.c b/src/pulsecore/core-subscribe.c
index 61c779b66..5fb72fb43 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 2a96dfa5e..1a8090fe8 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 802111ba1..c7486f9ad 100644
--- a/src/pulsecore/core.h
+++ b/src/pulsecore/core.h
@@ -139,80 +139,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];
-};
-
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 7cba3a761..1f2de50df 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 594617ea5..0c588709d 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 a7f6d5512..4d85cf945 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 a41a78a4b..6c9d8af91 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 9e951ff61..9c4dc5e1e 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 84f8428eb..b7446e830 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>