summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/freeverb3')
-rw-r--r--media-libs/freeverb3/ChangeLog9
-rw-r--r--media-libs/freeverb3/Manifest4
-rw-r--r--media-libs/freeverb3/files/freeverb3-2.5.5-audacious-2.4_beta1.patch486
-rw-r--r--media-libs/freeverb3/freeverb3-2.5.5-r1.ebuild52
4 files changed, 549 insertions, 2 deletions
diff --git a/media-libs/freeverb3/ChangeLog b/media-libs/freeverb3/ChangeLog
index c942997c0768..3a8ccf285a39 100644
--- a/media-libs/freeverb3/ChangeLog
+++ b/media-libs/freeverb3/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for media-libs/freeverb3
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/freeverb3/ChangeLog,v 1.12 2010/07/25 18:21:34 sping Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/freeverb3/ChangeLog,v 1.13 2010/07/26 00:14:24 sping Exp $
+
+*freeverb3-2.5.5-r1 (26 Jul 2010)
+
+ 26 Jul 2010; Sebastian Pipping <sping@gentoo.org>
+ +freeverb3-2.5.5-r1.ebuild,
+ +files/freeverb3-2.5.5-audacious-2.4_beta1.patch:
+ Add experimental patch for Audacious 2.4_beta1 support
*freeverb3-2.5.5 (25 Jul 2010)
diff --git a/media-libs/freeverb3/Manifest b/media-libs/freeverb3/Manifest
index 1a826085d0a3..7a4b31c334b0 100644
--- a/media-libs/freeverb3/Manifest
+++ b/media-libs/freeverb3/Manifest
@@ -1,6 +1,7 @@
AUX freeverb3-2.3.0-fix-implicit.patch 2824 RMD160 06ec53065b435e7461cdbb84bc38fe813637742f SHA1 fa393a906f46f06fcbc918793160c170afe34de4 SHA256 f0bef314d3b171ea8d13d98bff78648780337f72f07f2161f2c453a78805f13e
AUX freeverb3-2.3.1-plugin-api-v8-v10.patch 3693 RMD160 91b47d826b659bfc38706f537611ad5e7e0d6a6b SHA1 68a3ba9a3cf481de4970fd961e475ca31d8b0571 SHA256 3425d9419743f227d3ff44f1dedec104b9c2a8c719b0360f0b0404f17c472df5
AUX freeverb3-2.5.0-pow-ambiguity.patch 585 RMD160 9a06a7171088a7450925d93de696d5dc9fb7c745 SHA1 33e5f8504200386c568d754deb745850389acb39 SHA256 c00c3568a4ed00ba9f39a3bd15a9b3422c10d87d437d48721fd719b68d3cde52
+AUX freeverb3-2.5.5-audacious-2.4_beta1.patch 13438 RMD160 a42c40fcb5c63c4a6785e7c6d1ddee2ba7468aba SHA1 b0bb99f2c38360856aeed999245dde21111938a9 SHA256 0f6ad6236f0a843c277aca06c20c1f2ae24400bd00e83756b6261031730b7742
DIST freeverb3-2.3.0.tar.gz 6105716 RMD160 9bf057e76d28e535242da3b72e2fb5f787adf142 SHA1 dfcd3fe7b7ad5ef469afee6f55a44632c3e6a2c3 SHA256 be47a53554fbe176cf32023ab7245e2d6b6a12ec514742cb0bc64c1dcd0b576b
DIST freeverb3-2.3.1.tar.gz 6107465 RMD160 5fdd160d349439598e91da73c7bf638c39560c1c SHA1 f0c43b8a16a2793dac774ca727ec1a146143e199 SHA256 f93b225b9be565134e495ca07720e78011aff8fe3d1f9050839af265020dc983
DIST freeverb3-2.4.0rc2.tar.gz 6107326 RMD160 0fcbfc072387036f30d1de4654085925ab17f45c SHA1 7e2813759dc82fcb882831c492ac2ee77d4999f3 SHA256 dea0db454747eddddd43844c7ca256aa1d56d34d548ab68dc1f90c5b9ba23c35
@@ -16,6 +17,7 @@ EBUILD freeverb3-2.5.0.ebuild 1316 RMD160 cb858c3baef90a3235ec058d0d1e7afa5f2e7c
EBUILD freeverb3-2.5.1.ebuild 1243 RMD160 d1c0e677cebf0b9e7f314c6d1a12150ca578b4a4 SHA1 4f9cd51f6b6edeb537f39ffe676dcd3f8defc63c SHA256 1e23cd12b5137db24adf897d39c575c4a7db61ea4bb91d17dc96da652a30f3c6
EBUILD freeverb3-2.5.2.ebuild 1300 RMD160 d08f34497884c1b645c0791dec2526e1294c5bca SHA1 e6caa6c7337a339024ff6975164967d394c864f7 SHA256 87424679eccf2bca6905e9ca28cb98557db35c547c473a06464612f1d032ef2f
EBUILD freeverb3-2.5.4.ebuild 1360 RMD160 f1cca740002503ac7c23cff8d35a04790648b238 SHA1 e69c1d3661798af3384c462404a09f3cfbfc2955 SHA256 6f8a0201a0325cfba5a2b83a89668bb5d3f1ca596c2459c658a356470b3d3e74
+EBUILD freeverb3-2.5.5-r1.ebuild 1501 RMD160 c3f67f4c8e0d3d402de5d5ead08117a3be723d19 SHA1 6875f6098096cb18e4f5cc3b6efeec1b58f24e5d SHA256 15657c1f0fc3d3d44a5c9e0be9a2370daf96eed608ba38a6939d27befa82b49a
EBUILD freeverb3-2.5.5.ebuild 1433 RMD160 f908a633fa152180ea3809a9a4e67d7c4f2e04e1 SHA1 56168d60fa7f38f59ad0b5150b93ce0652d2fda8 SHA256 9f79997ab4b71b87ad4d33ed742bf38dedd35caf8656efe86ad3ebce4a46ebed
-MISC ChangeLog 2333 RMD160 64ef9f3c540f90cd19fd22e406e25b4d509ce2a0 SHA1 7d1034f05bf18690a75886c1afca1bb6619e06cd SHA256 160137ecae6ec16caa27fc7b5389efb30d5603947d52de2f978133d3d767c4b9
+MISC ChangeLog 2560 RMD160 39e48f2929eab2970e30463b7d0c88481ccb5cc3 SHA1 e00a9afe4e523afa965f643e5dc843c40dd70ba4 SHA256 75105e7fa21bb8cd360fcfd08df311cbf9812ba43fc0f40db73c719be382aeee
MISC metadata.xml 519 RMD160 fa939b4f75e00b61a28fbe94b116e267b9b01725 SHA1 e51df4da9a064b8485affcabda6f9c2a51621f4f SHA256 529ebaba023df6ae4bcb156e74a7ed6f9737a4dd340986d0ec1727e4a6e6b3bc
diff --git a/media-libs/freeverb3/files/freeverb3-2.5.5-audacious-2.4_beta1.patch b/media-libs/freeverb3/files/freeverb3-2.5.5-audacious-2.4_beta1.patch
new file mode 100644
index 000000000000..85e1902d7e08
--- /dev/null
+++ b/media-libs/freeverb3/files/freeverb3-2.5.5-audacious-2.4_beta1.patch
@@ -0,0 +1,486 @@
+From 043ff2f4406e1d09ac2a813fafa84b6ba54ca6df Mon Sep 17 00:00:00 2001
+From: Sebastian Pipping <sebastian@pipping.org>
+Date: Mon, 26 Jul 2010 01:58:59 +0200
+Subject: [PATCH] Fix compilation for Audacious API v16
+
+---
+ xmms/compressor.cpp | 44 +++++++++++++++++++++++------
+ xmms/freeverb3.cpp | 55 ++++++++++++++++++++++++++++++-------
+ xmms/impulser2.cpp | 71 ++++++++++++++++++++++++++++++++++++++---------
+ xmms/libxmmsplugin.hpp | 11 +++++++-
+ xmms/revmodel.cpp | 41 ++++++++++++++++++++++-----
+ xmms/stenh.cpp | 41 ++++++++++++++++++++++-----
+ 6 files changed, 213 insertions(+), 50 deletions(-)
+
+diff --git a/xmms/compressor.cpp b/xmms/compressor.cpp
+index 9d6a431..d5e5c78 100755
+--- a/xmms/compressor.cpp
++++ b/xmms/compressor.cpp
+@@ -276,20 +276,46 @@ extern "C" EffectPlugin *get_eplugin_info(void)
+ }
+ #else
+ static EffectPlugin epe = {
+- NULL, NULL, (char*)productString,
+- init, cleanup, about, configure,
++ NULL, /* handle */
++ NULL, /* filename */
++ (gchar*)productString, /* description */
++ init,
++ cleanup,
++ about,
++ configure,
++
+ #if __AUDACIOUS_PLUGIN_API__ >= 10
+- NULL,
++ NULL, /* settings */
+ #endif
+- FALSE,
+-#if __AUDACIOUS_PLUGIN_API__ >= 13
+- NULL, NULL,
+-#else
++
++#if __AUDACIOUS_PLUGIN_API__ >= 16
++ NULL, /* sendmsg */
++#endif
++
++#if __AUDACIOUS_PLUGIN_API__ < 16
++ FALSE, /* enabled */
++#endif
++
++#if __AUDACIOUS_PLUGIN_API__ < 16
++# if __AUDACIOUS_PLUGIN_API__ >= 13
++ NULL, NULL, /* mod_samples, query_format */
++# else
+ mod_samples, query_format,
++# endif
+ #endif
++
+ #if __AUDACIOUS_PLUGIN_API__ >= 13
+- compressor_start, compressor_process, compressor_flush, compressor_finish,
+- decoder_to_output_time, output_to_decoder_time,
++ compressor_start,
++ compressor_process,
++ compressor_flush,
++ compressor_finish,
++ decoder_to_output_time,
++ output_to_decoder_time,
++#endif
++
++#if __AUDACIOUS_PLUGIN_API__ >= 16
++ 0, /* order */
++ TRUE, /* preserves_format */
+ #endif
+ };
+ static EffectPlugin *eplist[] = {&epe, NULL};
+diff --git a/xmms/freeverb3.cpp b/xmms/freeverb3.cpp
+index 575331a..65cc5af 100755
+--- a/xmms/freeverb3.cpp
++++ b/xmms/freeverb3.cpp
+@@ -39,7 +39,6 @@
+ #include <bmp/configdb.h>
+ #else
+ #include <audacious/plugin.h>
+-#include <audacious/util.h>
+ #include <audacious/configdb.h>
+ #endif
+ #endif
+@@ -215,7 +214,11 @@ static void write_config(void)
+ bmp_cfg_db_set_float(cfg, "freeverb3_plugin", "idelay", conf_idelay);
+ bmp_cfg_db_close(cfg);
+ #else
++# if __AUDACIOUS_PLUGIN_API__ < 16
+ ConfigDb * cfg = aud_cfg_db_open();
++# else
++ mcs_handle_t * cfg = _aud_api_table->configdb_api->cfg_db_open();
++# endif
+ aud_cfg_db_set_int (cfg, "freeverb3_plugin", "maxvfs", maxvfs);
+ aud_cfg_db_set_float(cfg, "freeverb3_plugin", "wet", reverbm.getwet());
+ aud_cfg_db_set_float(cfg, "freeverb3_plugin", "dry", reverbm.getdry());
+@@ -466,11 +469,13 @@ static void configure(void)
+
+ static void about(void)
+ {
++#if __AUDACIOUS_PLUGIN_API__ < 16
+ static GtkWidget *about_dialog = NULL;
+ if (about_dialog != NULL) return;
+ about_dialog =
+ _XMMS_DIALOG(const_cast<char*>("About Plugin"),const_cast<char*>(about_text),const_cast<char*>("Ok"),FALSE,NULL,NULL);
+ gtk_signal_connect(GTK_OBJECT(about_dialog), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &about_dialog);
++#endif
+ }
+
+ static void init(void)
+@@ -515,7 +520,11 @@ static void init(void)
+ bmp_cfg_db_get_float(cfg, "freeverb3_plugin", "idelay", &conf_idelay);
+ bmp_cfg_db_close(cfg);
+ #else
++# if __AUDACIOUS_PLUGIN_API__ < 16
+ ConfigDb * cfg = aud_cfg_db_open();
++# else
++ mcs_handle_t * cfg = _aud_api_table->configdb_api->cfg_db_open();
++# endif
+ gboolean ok =
+ aud_cfg_db_get_float(cfg, "freeverb3_plugin", "wet", &conf_wet);
+ aud_cfg_db_get_int(cfg, "freeverb3_plugin", "maxvfs", &maxvfs);
+@@ -722,20 +731,46 @@ static void freeverb3_finish(gfloat ** data, gint * samples)
+ #endif
+
+ static EffectPlugin epe = {
+- NULL, NULL, (char*)productString,
+- init, cleanup, about, configure,
++ NULL, /* handle */
++ NULL, /* filename */
++ (gchar*)productString, /* description */
++ init,
++ cleanup,
++ about,
++ configure,
++
+ #if __AUDACIOUS_PLUGIN_API__ >= 10
+- NULL,
++ NULL, /* settings */
+ #endif
+- FALSE,
+-#if __AUDACIOUS_PLUGIN_API__ >= 13
+- NULL, NULL,
+-#else
++
++#if __AUDACIOUS_PLUGIN_API__ >= 16
++ NULL, /* sendmsg */
++#endif
++
++#if __AUDACIOUS_PLUGIN_API__ < 16
++ FALSE, /* enabled */
++#endif
++
++#if __AUDACIOUS_PLUGIN_API__ < 16
++# if __AUDACIOUS_PLUGIN_API__ >= 13
++ NULL, NULL, /* mod_samples, query_format */
++# else
+ mod_samples, query_format,
++# endif
+ #endif
++
+ #if __AUDACIOUS_PLUGIN_API__ >= 13
+- freeverb3_start, freeverb3_process, freeverb3_flush, freeverb3_finish,
+- decoder_to_output_time, output_to_decoder_time,
++ freeverb3_start,
++ freeverb3_process,
++ freeverb3_flush,
++ freeverb3_finish,
++ decoder_to_output_time,
++ output_to_decoder_time,
++#endif
++
++#if __AUDACIOUS_PLUGIN_API__ >= 16
++ 0, /* order */
++ TRUE, /* preserves_format */
+ #endif
+ };
+
+diff --git a/xmms/impulser2.cpp b/xmms/impulser2.cpp
+index 6da7ecc..0037dd3 100755
+--- a/xmms/impulser2.cpp
++++ b/xmms/impulser2.cpp
+@@ -49,7 +49,6 @@
+ #include <bmp/configdb.h>
+ #else
+ #include <audacious/plugin.h>
+-#include <audacious/util.h>
+ #include <audacious/configdb.h>
+ #endif
+ #endif
+@@ -299,7 +298,11 @@ static void slot_save(SlotConfiguration * slot, int i)
+ bmp_cfg_db_set_string(cfg, configSectionString, key_i("file",i), (gchar*)slot->filename.c_str());
+ bmp_cfg_db_close(cfg);
+ #else
++# if __AUDACIOUS_PLUGIN_API__ < 16
+ ConfigDb * cfg = aud_cfg_db_open();
++# else
++ mcs_handle_t * cfg = _aud_api_table->configdb_api->cfg_db_open();
++#endif
+ aud_cfg_db_set_float (cfg, configSectionString, key_i("wet",i), slot->wet);
+ aud_cfg_db_set_float (cfg, configSectionString, key_i("dry",i), slot->dry);
+ aud_cfg_db_set_float (cfg, configSectionString, key_i("width",i), slot->width);
+@@ -355,7 +358,11 @@ static void slot_load(SlotConfiguration * slot, int i)
+ else slot_init(slot);
+ bmp_cfg_db_close(cfg);
+ #else
++# if __AUDACIOUS_PLUGIN_API__ < 16
+ ConfigDb * cfg = aud_cfg_db_open();
++# else
++ mcs_handle_t * cfg = _aud_api_table->configdb_api->cfg_db_open();
++#endif
+ gchar * filename;
+ aud_cfg_db_get_float (cfg, configSectionString, key_i("wet",i), &slot->wet);
+ aud_cfg_db_get_float (cfg, configSectionString, key_i("dry",i), &slot->dry);
+@@ -493,11 +500,13 @@ static void store_filename(GtkFileSelection *selector, gpointer user_data)
+ selected_filename = (gchar*)gtk_file_selection_get_filename (GTK_FILE_SELECTION(file_selector));
+ if(store_inf(selected_filename) != 0)
+ {
++#if __AUDACIOUS_PLUGIN_API__ < 16
+ if (err_dialog == NULL)
+- {
+- err_dialog = _XMMS_DIALOG((gchar*)"Error", (gchar*)"Could not load IR file.", (gchar*)"Ok",FALSE,NULL,NULL);
+- gtk_signal_connect(GTK_OBJECT(err_dialog), "destroy", GTK_SIGNAL_FUNC(error_d), NULL);
+- }
++ {
++ err_dialog = _XMMS_DIALOG((gchar*)"Error", (gchar*)"Could not load IR file.", (gchar*)"Ok",FALSE,NULL,NULL);
++ gtk_signal_connect(GTK_OBJECT(err_dialog), "destroy", GTK_SIGNAL_FUNC(error_d), NULL);
++ }
++#endif
+ }
+ else
+ {
+@@ -575,7 +584,11 @@ static void write_config(void)
+ bmp_cfg_db_close(cfg);
+ for(int i = 0;i < slotNumber;i ++) slot_save(&(*slotVector)[i], i+1);
+ #else
++# if __AUDACIOUS_PLUGIN_API__ < 16
+ ConfigDb * cfg = aud_cfg_db_open();
++# else
++ mcs_handle_t * cfg = _aud_api_table->configdb_api->cfg_db_open();
++#endif
+ aud_cfg_db_set_int(cfg, configSectionString, "latency_index", conf_latency_index);
+ aud_cfg_db_set_int(cfg, configSectionString, "dithering_mode", conf_dithering);
+ aud_cfg_db_set_int(cfg, configSectionString, "zero_latency", conf_rev_zl);
+@@ -1058,7 +1071,11 @@ static void init(void)
+ bmp_cfg_db_close(cfg);
+ if(ok == FALSE) slotNumber = 1;
+ #else
++# if __AUDACIOUS_PLUGIN_API__ < 16
+ ConfigDb * cfg = aud_cfg_db_open();
++# else
++ mcs_handle_t * cfg = _aud_api_table->configdb_api->cfg_db_open();
++#endif
+ aud_cfg_db_get_int(cfg, configSectionString, "dithering_mode", &conf_dithering);
+ aud_cfg_db_get_int(cfg, configSectionString, "latency_index", &conf_latency_index);
+ aud_cfg_db_get_int(cfg, configSectionString, "zero_latency", &conf_rev_zl);
+@@ -1408,20 +1425,46 @@ static void impulser2_finish(gfloat ** data, gint * samples)
+ #endif
+
+ static EffectPlugin epe = {
+- NULL, NULL, (gchar*)productString,
+- init, cleanup, about, configure,
++ NULL, /* handle */
++ NULL, /* filename */
++ (gchar*)productString, /* description */
++ init,
++ cleanup,
++ about,
++ configure,
++
+ #if __AUDACIOUS_PLUGIN_API__ >= 10
+- NULL,
++ NULL, /* settings */
+ #endif
+- FALSE,
+-#if __AUDACIOUS_PLUGIN_API__ >= 13
+- NULL, NULL,
+-#else
++
++#if __AUDACIOUS_PLUGIN_API__ >= 16
++ NULL, /* sendmsg */
++#endif
++
++#if __AUDACIOUS_PLUGIN_API__ < 16
++ FALSE, /* enabled */
++#endif
++
++#if __AUDACIOUS_PLUGIN_API__ < 16
++# if __AUDACIOUS_PLUGIN_API__ >= 13
++ NULL, NULL, /* mod_samples, query_format */
++# else
+ mod_samples, query_format,
++# endif
+ #endif
++
+ #if __AUDACIOUS_PLUGIN_API__ >= 13
+- impulser2_start, impulser2_process, impulser2_flush, impulser2_finish,
+- impulser2_decoder_to_output_time, impulser2_output_to_decoder_time,
++ impulser2_start,
++ impulser2_process,
++ impulser2_flush,
++ impulser2_finish,
++ impulser2_decoder_to_output_time,
++ impulser2_output_to_decoder_time,
++#endif
++
++#if __AUDACIOUS_PLUGIN_API__ >= 16
++ 0, /* order */
++ TRUE, /* preserves_format */
+ #endif
+ };
+
+diff --git a/xmms/libxmmsplugin.hpp b/xmms/libxmmsplugin.hpp
+index 24cd4d5..8883755 100755
+--- a/xmms/libxmmsplugin.hpp
++++ b/xmms/libxmmsplugin.hpp
+@@ -41,7 +41,6 @@
+ #include <bmp/configdb.h>
+ #else
+ #include <audacious/plugin.h>
+-#include <audacious/util.h>
+ #include <audacious/configdb.h>
+ #endif
+ #endif
+@@ -235,10 +234,12 @@ namespace fv3
+
+ void about(void)
+ {
++#if __AUDACIOUS_PLUGIN_API__ < 16
+ static GtkWidget *about_dialog = NULL;
+ if (about_dialog != NULL) return;
+ about_dialog = _XMMS_DIALOG((gchar*)"About Plugin",(gchar*)aboutString,(gchar*)"Ok",FALSE,NULL,NULL);
+ gtk_signal_connect(GTK_OBJECT(about_dialog), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &about_dialog);
++#endif
+ }
+
+ void configure(void)
+@@ -442,7 +443,11 @@ namespace fv3
+ }
+ bmp_cfg_db_close(cfg);
+ #else
++# if __AUDACIOUS_PLUGIN_API__ < 16
+ ConfigDb * cfg = aud_cfg_db_open();
++# else
++ mcs_handle_t * cfg = _aud_api_table->configdb_api->cfg_db_open();
++# endif
+ switch(pp->typeOfParameter)
+ {
+ case kFloat:
+@@ -531,7 +536,11 @@ namespace fv3
+ }
+ bmp_cfg_db_close(cfg);
+ #else
++# if __AUDACIOUS_PLUGIN_API__ < 16
+ ConfigDb * cfg = aud_cfg_db_open();
++# else
++ mcs_handle_t * cfg = _aud_api_table->configdb_api->cfg_db_open();
++# endif
+ switch(pp->typeOfParameter)
+ {
+ case kFloat:
+diff --git a/xmms/revmodel.cpp b/xmms/revmodel.cpp
+index 77aa46f..baa6136 100755
+--- a/xmms/revmodel.cpp
++++ b/xmms/revmodel.cpp
+@@ -182,22 +182,47 @@ extern "C" EffectPlugin *get_eplugin_info(void)
+
+ #else
+ static EffectPlugin epe = {
+- NULL, NULL, (char*)productString,
+- init, cleanup, about, configure,
++ NULL, /* handle */
++ NULL, /* filename */
++ (gchar*)productString, /* description */
++ init,
++ cleanup,
++ about,
++ configure,
++
+ #if __AUDACIOUS_PLUGIN_API__ >= 10
+- NULL,
++ NULL, /* settings */
+ #endif
+- FALSE,
+-#if __AUDACIOUS_PLUGIN_API__ >= 13
+- NULL, NULL,
+-#else
++
++#if __AUDACIOUS_PLUGIN_API__ >= 16
++ NULL, /* sendmsg */
++#endif
++
++#if __AUDACIOUS_PLUGIN_API__ < 16
++ FALSE, /* enabled */
++#endif
++
++#if __AUDACIOUS_PLUGIN_API__ < 16
++# if __AUDACIOUS_PLUGIN_API__ >= 13
++ NULL, NULL, /* mod_samples, query_format */
++# else
+ mod_samples, query_format,
++# endif
+ #endif
++
+ #if __AUDACIOUS_PLUGIN_API__ >= 13
+- stenh_start, stenh_process, stenh_flush, stenh_finish,
++ stenh_start,
++ stenh_process,
++ stenh_flush,
++ stenh_finish,
+ decoder_to_output_time,
+ output_to_decoder_time,
+ #endif
++
++#if __AUDACIOUS_PLUGIN_API__ >= 16
++ 0, /* order */
++ TRUE, /* preserves_format */
++#endif
+ };
+
+ static EffectPlugin *eplist[] = {&epe, NULL};
+diff --git a/xmms/stenh.cpp b/xmms/stenh.cpp
+index a36209b..e6c3510 100755
+--- a/xmms/stenh.cpp
++++ b/xmms/stenh.cpp
+@@ -193,22 +193,47 @@ extern "C" EffectPlugin *get_eplugin_info(void)
+
+ #else
+ static EffectPlugin epe = {
+- NULL, NULL, (char*)productString,
+- init, cleanup, about, configure,
++ NULL, /* handle */
++ NULL, /* filename */
++ (gchar*)productString, /* description */
++ init,
++ cleanup,
++ about,
++ configure,
++
+ #if __AUDACIOUS_PLUGIN_API__ >= 10
+- NULL,
++ NULL, /* settings */
+ #endif
+- FALSE,
+-#if __AUDACIOUS_PLUGIN_API__ >= 13
+- NULL, NULL,
+-#else
++
++#if __AUDACIOUS_PLUGIN_API__ >= 16
++ NULL, /* sendmsg */
++#endif
++
++#if __AUDACIOUS_PLUGIN_API__ < 16
++ FALSE, /* enabled */
++#endif
++
++#if __AUDACIOUS_PLUGIN_API__ < 16
++# if __AUDACIOUS_PLUGIN_API__ >= 13
++ NULL, NULL, /* mod_samples, query_format */
++# else
+ mod_samples, query_format,
++# endif
+ #endif
++
+ #if __AUDACIOUS_PLUGIN_API__ >= 13
+- stenh_start, stenh_process, stenh_flush, stenh_finish,
++ stenh_start,
++ stenh_process,
++ stenh_flush,
++ stenh_finish,
+ decoder_to_output_time,
+ output_to_decoder_time,
+ #endif
++
++#if __AUDACIOUS_PLUGIN_API__ >= 16
++ 0, /* order */
++ TRUE, /* preserves_format */
++#endif
+ };
+
+ static EffectPlugin *eplist[] = {&epe, NULL};
+--
+1.7.2
+
diff --git a/media-libs/freeverb3/freeverb3-2.5.5-r1.ebuild b/media-libs/freeverb3/freeverb3-2.5.5-r1.ebuild
new file mode 100644
index 000000000000..ed0f87c7d029
--- /dev/null
+++ b/media-libs/freeverb3/freeverb3-2.5.5-r1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/freeverb3/freeverb3-2.5.5-r1.ebuild,v 1.1 2010/07/26 00:14:24 sping Exp $
+
+EAPI=2
+inherit base versionator
+
+MY_PV=$(replace_version_separator 3 '')
+
+DESCRIPTION="High Quality Reverb and Impulse Response Convolution library including XMMS/Audacious Effect plugins"
+HOMEPAGE="http://freeverb3.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${PN}-${MY_PV}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="audacious jack plugdouble sse sse2 sse3 3dnow forcefpu"
+
+RDEPEND=">=sci-libs/fftw-3.0.1
+ audacious? ( >=media-sound/audacious-2.4_beta1
+ media-libs/libsndfile )
+ jack? ( media-sound/jack-audio-connection-kit
+ media-libs/libsndfile )"
+DEPEND=${RDEPEND}
+
+S="${WORKDIR}/${PN}-$(get_version_component_range 1-3)"
+
+PATCHES=( "${FILESDIR}"/${P}-audacious-2.4_beta1.patch )
+
+src_configure() {
+ use sse3 && elog 'SSE3 support is broken in 2.5.5, auto-disabling for now'
+
+ # NOTE: sse4 support not implemented, yet
+ econf \
+ --enable-release \
+ --disable-bmp \
+ --disable-pluginit \
+ $(use_enable audacious) \
+ $(use_enable jack) \
+ $(use_enable plugdouble) \
+ $(use_enable 3dnow) \
+ $(use_enable sse) \
+ $(use_enable sse2) \
+ --disable-sse3 \
+ $(use_enable forcefpu) \
+ || die "econf failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+ dodoc ChangeLog README || die 'dodoc failed'
+}