diff -Naur xmms-1.2.10/Output/disk_writer/disk_writer.c xmms-1.2.10.diskwriter/Output/disk_writer/disk_writer.c --- xmms-1.2.10/Output/disk_writer/disk_writer.c 2004-02-23 20:31:42.000000000 +0000 +++ xmms-1.2.10.diskwriter/Output/disk_writer/disk_writer.c 2004-02-25 06:53:26.000000000 +0000 @@ -58,6 +58,8 @@ static struct wavhead header; static guint64 written = 0; static AFormat afmt; +static gint arate, anch; +static EffectPlugin *ep; gint ctrlsocket_get_session_id(void); /* FIXME */ static void disk_init(void); @@ -121,6 +123,12 @@ written = 0; afmt = fmt; + arate = rate; + anch = nch; + if (effects_enabled()) + ep = get_current_effect_plugin(); + else + ep = NULL; if (xmms_check_realtime_priority()) { @@ -234,6 +242,9 @@ static void disk_write(void *ptr, gint length) { + if (ep) + length = ep->mod_samples(&ptr, length, afmt, arate, anch); + if (afmt == FMT_S8 || afmt == FMT_S16_BE || afmt == FMT_U16_LE || afmt == FMT_U16_BE || afmt == FMT_U16_NE) convert_buffer(ptr, length);