Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=kdetesting.git;a=commitdiff;h=96ca1130613968402369da3d8657dc6ac5423780
commit 96ca1130613968402369da3d8657dc6ac5423780 Author: crazy <cr...@frugalware.org> Date: Sat Feb 6 16:19:44 2010 +0100 phonon-4.3.80-1-x86_64 * Version bump to what it will be 4.4.0 * some FB fixes * added FIXME'S since this package need some work diff --git a/source/kde/phonon/07_feature_backport_xine_equalizer.patch b/source/kde/phonon/07_feature_backport_xine_equalizer.patch deleted file mode 100644 index d6c579f..0000000 --- a/source/kde/phonon/07_feature_backport_xine_equalizer.patch +++ /dev/null @@ -1,536 +0,0 @@ -Origin: http://websvn.kde.org/?view=revision&revision=973633 - http://websvn.kde.org/?view=revision&revision=999575 -Description: backport Xine equalizer from Phonon trunk - The feature is currently used by Amarok 2.2 or higher - ---- /dev/null -+++ b/xine/kequalizer_plugin.cpp -@@ -0,0 +1,496 @@ -+/* This file is part of the KDE project -+ Copyright (C) 2009 Artur Szymiec <artur.szym...@gmail.com> -+ -+ This program is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Library General Public -+ License as published by the Free Software Foundation; either -+ version 2 of the License, or (at your option) any later version. -+ -+ This library 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 -+ Library General Public License for more details. -+ -+ You should have received a copy of the GNU Library General Public License -+ along with this library; see the file COPYING.LIB. If not, write to -+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -+ Boston, MA 02110-1301, USA. -+ -+*/ -+ -+/* Equalizer GPL code Copyright 2001 Anders Johansson a...@atri.curtin.edu.au -+ Equalizer filter, implementation of a 10 band time domain graphic -+ equalizer using IIR filters. The IIR filters are implemented using a -+ Direct Form II approach, but has been modified (b1 == 0 always) to -+ save computation. -+ -+ Adopted to phnon xine engine plugin by Artur Szymiec in 2009 artur.szym...@gmail.com -+*/ -+ -+#ifndef I18N_NOOP -+#define I18N_NOOP(x) x -+#endif -+ -+#include "backend.h" -+ -+#include <QObject> -+#include <cmath> -+ -+#define __STDC_FORMAT_MACROS -+#include <inttypes.h> -+ -+#include <xine.h> -+extern "C" { -+// xine headers use the reserved keyword this: -+#define this this_xine -+#include <xine/compat.h> -+#include <xine/post.h> -+#include <xine/xineutils.h> -+#undef this -+ -+#define KEQUALIZER_MAX_GAIN 12.0 -+#define KEQUALIZER_L 2 // Storage for filter taps -+#define KEQUALIZER_KM 10 // Max number of bands -+#define KEQUALIZER_Q 1.2247449 -+/* Q value for band-pass filters 1.2247=(3/2)^(1/2) -+gives 4dB suppression @ Fc*2 and Fc/2 */ -+#define KEQUALIZER_CF {60, 170, 310, 600, 1000, 3000, 6000, 12000, 14000, 16000} -+// Maximum and minimum gain for the bands -+#define KEQUALIZER_G_MAX +12.0 -+#define KEQUALIZER_G_MIN -12.0 -+#define KEQUALIZER_CHANNELS_MAX 6 -+ -+typedef struct -+{ -+ post_class_t post_class; -+ xine_t *xine; -+} kequalizer_class_t; -+ -+typedef struct KEqualizerPlugin -+{ -+ post_plugin_t post; -+ -+ /* private data */ -+ pthread_mutex_t lock; -+ xine_post_in_t params_input; -+ -+ int rate; -+ int bits; -+ double preAmp; -+ double eqBands[10]; -+ //kequalizer_s kequalizer_t; -+ float a[KEQUALIZER_KM][KEQUALIZER_L]; // A weights -+ float b[KEQUALIZER_KM][KEQUALIZER_L]; // B weights -+ float wq[KEQUALIZER_CHANNELS_MAX][KEQUALIZER_KM][KEQUALIZER_L]; // Circular buffer for W data -+ float g[KEQUALIZER_CHANNELS_MAX][KEQUALIZER_KM]; // Gain factor for each channel and band -+ int K; // Number of used eq bands -+ int channels; // Number of channels -+ /* Functions */ -+ void equalize_Buffer(xine_post_t *this_gen,audio_buffer_t *buf); -+ void eq_calc_Bp2(float* a, float* b, float fc, float q); -+ void eq_calc_Gains(xine_post_t *this_gen); -+ void eq_setup_Filters(xine_post_t *this_gen); -+} kequalizer_plugin_t; -+ -+/************************************************************************** -+ * parameters -+ *************************************************************************/ -+ -+typedef struct -+{ -+ double preAmp; -+ double eqBands[10]; -+} kequalizer_parameters_t; -+ -+/* -+ * description of params struct -+ */ -+START_PARAM_DESCR(kequalizer_parameters_t) -+ -+PARAM_ITEM(POST_PARAM_TYPE_DOUBLE, preAmp, NULL, -KEQUALIZER_MAX_GAIN, KEQUALIZER_MAX_GAIN, 0, I18N_NOOP("Equalizer pre-amp gain")) -+PARAM_ITEM(POST_PARAM_TYPE_DOUBLE, eqBands[0], NULL, -KEQUALIZER_MAX_GAIN, KEQUALIZER_MAX_GAIN, 0, I18N_NOOP("Band 1 60Hz Gain")) -+PARAM_ITEM(POST_PARAM_TYPE_DOUBLE, eqBands[1], NULL, -KEQUALIZER_MAX_GAIN, KEQUALIZER_MAX_GAIN, 0, I18N_NOOP("Band 2 170Hz Gain")) -+PARAM_ITEM(POST_PARAM_TYPE_DOUBLE, eqBands[2], NULL, -KEQUALIZER_MAX_GAIN, KEQUALIZER_MAX_GAIN, 0, I18N_NOOP("Band 3 310Hz Gain")) -+PARAM_ITEM(POST_PARAM_TYPE_DOUBLE, eqBands[3], NULL, -KEQUALIZER_MAX_GAIN, KEQUALIZER_MAX_GAIN, 0, I18N_NOOP("Band 4 600Hz Gain")) -+PARAM_ITEM(POST_PARAM_TYPE_DOUBLE, eqBands[4], NULL, -KEQUALIZER_MAX_GAIN, KEQUALIZER_MAX_GAIN, 0, I18N_NOOP("Band 5 1000Hz Gain")) -+PARAM_ITEM(POST_PARAM_TYPE_DOUBLE, eqBands[5], NULL, -KEQUALIZER_MAX_GAIN, KEQUALIZER_MAX_GAIN, 0, I18N_NOOP("Band 6 3000Hz Gain")) -+PARAM_ITEM(POST_PARAM_TYPE_DOUBLE, eqBands[6], NULL, -KEQUALIZER_MAX_GAIN, KEQUALIZER_MAX_GAIN, 0, I18N_NOOP("Band 7 6000Hz Gain")) -+PARAM_ITEM(POST_PARAM_TYPE_DOUBLE, eqBands[7], NULL, -KEQUALIZER_MAX_GAIN, KEQUALIZER_MAX_GAIN, 0, I18N_NOOP("Band 8 12000Hz Gain")) -+PARAM_ITEM(POST_PARAM_TYPE_DOUBLE, eqBands[8], NULL, -KEQUALIZER_MAX_GAIN, KEQUALIZER_MAX_GAIN, 0, I18N_NOOP("Band 9 14000Hz Gain")) -+PARAM_ITEM(POST_PARAM_TYPE_DOUBLE, eqBands[9], NULL, -KEQUALIZER_MAX_GAIN, KEQUALIZER_MAX_GAIN, 0, I18N_NOOP("Band 10 16000Hz Gain")) -+ -+END_PARAM_DESCR(param_descr) -+ -+static int set_parameters (xine_post_t *this_gen, void *param_gen) -+{ -+ kequalizer_plugin_t *that = reinterpret_cast<kequalizer_plugin_t *>(this_gen); -+ kequalizer_parameters_t *param = static_cast<kequalizer_parameters_t *>(param_gen); -+ -+ pthread_mutex_lock (&that->lock); -+ -+ that->preAmp = param->preAmp; -+ for (int i=0;i<=9;i++){ -+ that->eqBands[i]=param->eqBands[i]; -+ } -+ -+ that->eq_calc_Gains(this_gen); -+ -+ const char *x = "kequalizer:"; -+ Phonon::Xine::debug() << Q_FUNC_INFO -+ << x -+ << param->preAmp -+ << param->eqBands[0] -+ << param->eqBands[1] -+ << param->eqBands[2] -+ << param->eqBands[3] -+ << param->eqBands[4] -+ << param->eqBands[5] -+ << param->eqBands[6] -+ << param->eqBands[7] -+ << param->eqBands[8] -+ << param->eqBands[9] -+ ; -+ pthread_mutex_unlock (&that->lock); -+ -+ return 1; -+} -+ -+static int get_parameters (xine_post_t *this_gen, void *param_gen) -+{ -+ kequalizer_plugin_t *that = reinterpret_cast<kequalizer_plugin_t *>(this_gen); -+ kequalizer_parameters_t *param = static_cast<kequalizer_parameters_t *>(param_gen); -+ -+ pthread_mutex_lock (&that->lock); -+ -+ param->preAmp = that->preAmp; -+ for (int i=0;i<=9;i++){ -+ param->eqBands[i]=that->eqBands[i]; -+ } -+ -+ pthread_mutex_unlock (&that->lock); -+ -+ return 1; -+} -+ -+static xine_post_api_descr_t *get_param_descr() -+{ -+ return ¶m_descr; -+} -+ -+static char *get_help () -+{ -+ static QByteArray helpText( -+ QObject::tr("Equalizes audio using the very good IIR equalizer code by " -+ "Anders Johansson adopted from Audacious project.\n" -+ "\n" -+ "Parameters:\n" -+ "Preamp gain - used to alter up or down all gain values\n" -+ "10 Equalizer bands - actual IIR equalizer paameters.\n").toUtf8()); -+ return helpText.data(); -+} -+ -+static xine_post_api_t post_api = { -+ set_parameters, -+ get_parameters, -+ get_param_descr, -+ get_help, -+}; -+ -+ -+/************************************************************************** -+ * xine audio post plugin functions -+ *************************************************************************/ -+ -+static int kequalizer_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream, -+ uint32_t bits, uint32_t rate, int mode) -+{ -+ post_audio_port_t *port = reinterpret_cast<post_audio_port_t *>(port_gen); -+ kequalizer_plugin_t *that = reinterpret_cast<kequalizer_plugin_t *>(port->post); -+ xine_post_t *post = reinterpret_cast<xine_post_t *>(port->post); -+ -+ _x_post_rewire(&that->post); -+ _x_post_inc_usage(port); -+ -+ port->stream = stream; -+ port->bits = bits; -+ port->rate = rate; -+ port->mode = mode; -+ that->rate = rate; -+ that->bits = bits; -+ -+ switch (mode) { -+ case AO_CAP_MODE_STEREO: -+ that->channels = 2; -+ break; -+ case AO_CAP_MODE_4CHANNEL: -+ that->channels = 4; -+ break; -+ case AO_CAP_MODE_4_1CHANNEL: -+ case AO_CAP_MODE_5CHANNEL: -+ case AO_CAP_MODE_5_1CHANNEL: -+ that->channels = 6; -+ break; -+ } -+ -+ that->eq_setup_Filters(post); -+ that->eq_calc_Gains(post); -+ -+ return port->original_port->open(port->original_port, stream, bits, rate, mode); -+} -+ -+static void kequalizer_port_close(xine_audio_port_t *port_gen, xine_stream_t *stream) -+{ -+ post_audio_port_t *port = reinterpret_cast<post_audio_port_t *>(port_gen); -+ -+ port->stream = NULL; -+ port->original_port->close(port->original_port, stream); -+ _x_post_dec_usage(port); -+} -+ -+static void kequalizer_port_put_buffer(xine_audio_port_t *port_gen, -+ audio_buffer_t *buf, xine_stream_t *stream) -+{ -+ post_audio_port_t *port = reinterpret_cast<post_audio_port_t *>(port_gen); -+ kequalizer_plugin_t *that = reinterpret_cast<kequalizer_plugin_t *>(port->post); -+ xine_post_t *post = reinterpret_cast<xine_post_t *>(port->post); -+ -+ // Do actual equalization -+ that->equalize_Buffer(post,buf); -+ // and send the modified buffer to the original port -+ port->original_port->put_buffer(port->original_port, buf, stream); -+ return; -+} -+ -+static void kequalizer_dispose(post_plugin_t *this_gen) -+{ -+ kequalizer_plugin_t *that = reinterpret_cast<kequalizer_plugin_t *>(this_gen); -+ -+ if (_x_post_dispose(this_gen)) { -+ pthread_mutex_destroy(&that->lock); -+ free(that); -+ } -+} -+ -+/* plugin class functions */ -+static post_plugin_t *kequalizer_open_plugin(post_class_t *class_gen, int inputs, -+ xine_audio_port_t **audio_target, -+ xine_video_port_t **video_target) -+{ -+ Q_UNUSED(class_gen); -+ Q_UNUSED(inputs); -+ Q_UNUSED(video_target); -+ kequalizer_plugin_t *that; -+ //deprecated: kequalizer_plugin_t *that = static_cast<kequalizer_plugin_t *>(xine_xmalloc(sizeof(kequalizer_plugin_t))); -+ xine_xmalloc_aligned(2,sizeof(kequalizer_plugin_t),(void**)(&that)); -+ post_in_t *input; -+ post_out_t *output; -+ xine_post_in_t *input_api; -+ post_audio_port_t *port; -+ -+ // refuse to work without an audio port to decorate -+ if (!that || !audio_target || !audio_target[0]) { -+ free(that); -+ return NULL; -+ } -+ -+ // creates 1 audio I/O, 0 video I/O -+ _x_post_init(&that->post, 1, 0); -+ pthread_mutex_init (&that->lock, NULL); -+ -+ // init private data -+ -+ // the following call wires our plugin in front of the given audio_target -+ port = _x_post_intercept_audio_port(&that->post, audio_target[0], &input, &output); -+ // the methods of new_port are all forwarded to audio_target, overwrite a few of them here: -+ port->new_port.open = kequalizer_port_open; -+ port->new_port.close = kequalizer_port_close; -+ port->new_port.put_buffer = kequalizer_port_put_buffer; -+ -+ // add a parameter input to the plugin -+ input_api = &that->params_input; -+ input_api->name = "parameters"; -+ input_api->type = XINE_POST_DATA_PARAMETERS; -+ input_api->data = &post_api; -+ xine_list_push_back(that->post.input, input_api); -+ -+ that->post.xine_post.audio_input[0] = &port->new_port; -+ -+ // our own cleanup function -+ that->post.dispose = kequalizer_dispose; -+ -+ return &that->post; -+} -+ -+#if XINE_MAJOR_VERSION < 1 || (XINE_MAJOR_VERSION == 1 && (XINE_MINOR_VERSION < 1 || (XINE_MINOR_VERSION == 1 && XINE_SUB_VERSION < 90))) -+#define NEED_DESCRIPTION_FUNCTION 1 -+#else -+#define NEED_DESCRIPTION_FUNCTION 0 -+#endif -+ -+#define PLUGIN_DESCRIPTION I18N_NOOP("Fade in or fade out with different fade curves") -+#define PLUGIN_IDENTIFIER "KVolumeFader" -+ -+#if NEED_DESCRIPTION_FUNCTION -+static char *kequalizer_get_identifier(post_class_t *class_gen) -+{ -+ Q_UNUSED(class_gen); -+ return PLUGIN_IDENTIFIER; -+} -+ -+static char *kequalizer_get_description(post_class_t *class_gen) -+{ -+ Q_UNUSED(class_gen); -+ static QByteArray description(QObject::tr(PLUGIN_DESCRIPTION).toUtf8()); -+ return description.data(); -+} -+#endif -+ -+static void kequalizer_class_dispose(post_class_t *class_gen) -+{ -+ free(class_gen); -+} -+ -+/* plugin class initialization function */ -+void *init_kequalizer_plugin (xine_t *xine, void *) -+{ -+ kequalizer_class_t *_class = static_cast<kequalizer_class_t *>(malloc(sizeof(kequalizer_class_t))); -+ -+ if (!_class) { -+ return NULL; -+ } -+ -+ _class->post_class.open_plugin = kequalizer_open_plugin; -+#if NEED_DESCRIPTION_FUNCTION -+ _class->post_class.get_identifier = kequalizer_get_identifier; -+ _class->post_class.get_description = kequalizer_get_description; -+#else -+ _class->post_class.description = PLUGIN_DESCRIPTION; -+ _class->post_class.text_domain = "phonon-xine"; -+ _class->post_class.identifier = PLUGIN_IDENTIFIER; -+#endif -+ _class->post_class.dispose = kequalizer_class_dispose; -+ -+ _class->xine = xine; -+ -+ return _class; -+} -+ -+/* Filter functions */ -+ -+// 2nd order Band-pass Filter design -+void KEqualizerPlugin::eq_calc_Bp2(float* a, float* b, float fc, float q) -+{ -+ double th= 2.0 * M_PI * fc; -+ double C = (1.0 - tan(th*q/2.0))/(1.0 + tan(th*q/2.0)); -+ -+ a[0] = (1.0 + C) * cos(th); -+ a[1] = -1 * C; -+ -+ b[0] = (1.0 - C)/2.0; -+ b[1] = -1.0050; -+} -+ -+void KEqualizerPlugin::eq_calc_Gains(xine_post_t *this_gen) -+{ -+ kequalizer_plugin_t *that = reinterpret_cast<kequalizer_plugin_t *>(this_gen); -+ // Sanity check -+ if(that->channels<1 || that->channels>KEQUALIZER_CHANNELS_MAX) -+ return; -+ // adjust gains including preamp value -+ float b[10]; -+ float adj = 0.0; -+ -+ // Get bands from config -+ for(int i = 0; i < 10; i++){ -+ b[i] = that->eqBands[i] + that->preAmp; -+ } -+ -+ for(int i = 0; i < 10; i++) -+ if(fabsf(b[i]) > fabsf(adj)) adj = b[i]; -+ -+ if(fabsf(adj) > KEQUALIZER_G_MAX) { -+ adj = adj > 0.0 ? KEQUALIZER_G_MAX - adj : -KEQUALIZER_G_MAX - adj; -+ for(int i = 0; i < 10; i++) b[i] += adj; -+ } -+ // Recalculate set gains to internal coeficient gains -+ for(int i=0;i<that->channels;i++){ -+ -+ for(int k = 0 ; k<KEQUALIZER_KM ; k++){ -+ if(b[k] > KEQUALIZER_G_MAX){ -+ b[k]=KEQUALIZER_G_MAX; -+ }else if(b[k] < KEQUALIZER_G_MIN){ -+ b[k]=KEQUALIZER_G_MIN; -+ } -+ that->g[i][k] = pow(10.0,b[k]/20.0)-1.0; -+ } -+ } -+} -+ -+void KEqualizerPlugin::eq_setup_Filters(xine_post_t *this_gen) -+{ -+ kequalizer_plugin_t *that = reinterpret_cast<kequalizer_plugin_t *>(this_gen); -+ int k =0; -+ float F[KEQUALIZER_KM] = KEQUALIZER_CF; -+ -+ // Calculate number of active filters -+ that->K=KEQUALIZER_KM; -+ while(F[that->K-1] > (float)that->rate/2.2) -+ that->K--; -+ -+ if(that->K != KEQUALIZER_KM){ -+ Phonon::Xine::debug() << Q_FUNC_INFO -+ << "[kequalizer] Limiting the number of filters to" -+ << "due to low sample rate =>" -+ << that->K; -+ } -+ // Generate filter taps -+ for(k=0;k<that->K;k++) -+ that->eq_calc_Bp2(that->a[k],that->b[k],F[k]/((float)that->rate),KEQUALIZER_Q); -+} -+ -+void KEqualizerPlugin::equalize_Buffer(xine_post_t *this_gen, audio_buffer_t *buf) -+{ -+ kequalizer_plugin_t *that = reinterpret_cast<kequalizer_plugin_t *>(this_gen); -+ const int bufferLength = buf->num_frames * that->channels; -+ -+ if (buf->format.bits == 16 || buf->format.bits == 0) { -+ int16_t ci = that->channels; // Index for channels -+ int16_t nch = that->channels; // Number of channels -+ -+ while(ci--){ -+ float* g = that->g[ci]; // Gain factor -+ int16_t* in = ((int16_t*)static_cast<int16_t *>(buf->mem))+ci; -+ int16_t* out = ((int16_t*)static_cast<int16_t *>(buf->mem))+ci; -+ int16_t* end = in + bufferLength;//sizeof(int16_t); // Block loop end -+ -+ while(in < end){ -+ register int k = 0; // Frequency band index -+ register float yt = *in; // Current input sample -+ in+=nch; -+ -+ // Run the filters -+ for(;k<that->K;k++){ -+ // Pointer to circular buffer wq -+ register float* wq = that->wq[ci][k]; -+ // Calculate output from AR part of current filter -+ register float w=yt*that->b[k][0] + wq[0]*that->a[k][0] + wq[1]*that->a[k][1]; -+ // Calculate output form MA part of current filter -+ yt+=(w + wq[1]*that->b[k][1])*g[k]; -+ // Update circular buffer -+ wq[1] = wq[0]; -+ wq[0] = w; -+ } -+ // Output data to buffer -+ // NOTE maybe we need to add more sophisticated convertion method from float to ine like in libSAD with dithering ?? -+ // NOTE for now this clipping have to be enough -+ *out = yt <= (float)32767 ? ( yt >= (float)-32768 ? (int16_t)yt : -32768 ) : 32767; -+ out+=nch;//nch; -+ } -+ } -+ }else{ -+ Phonon::Xine::debug() << Q_FUNC_INFO << "broken bits " << buf->format.bits; -+ } -+} -+ -+ -+} // extern "C" ---- a/xine/CMakeLists.txt -+++ b/xine/CMakeLists.txt -@@ -72,6 +72,7 @@ - bytestreamplugin.cpp - net_buf_ctrl.c - volumefader_plugin.cpp -+ kequalizer_plugin.cpp - plugins.c - demux_wav.c - ) ---- a/xine/plugins.c -+++ b/xine/plugins.c -@@ -28,9 +28,11 @@ - - extern void *init_kbytestream_plugin (xine_t *xine, void *data); - extern void *init_kvolumefader_plugin (xine_t *xine, void *data); -+extern void *init_kequalizer_plugin (xine_t *xine, void *data); - /*extern void *init_kmixer_plugin(xine_t *xine, void *data);*/ - - static const post_info_t kvolumefader_special_info = { XINE_POST_TYPE_AUDIO_FILTER }; -+static const post_info_t kequalizer_special_info = { XINE_POST_TYPE_AUDIO_FILTER }; - /*static const post_info_t kmixer_special_info = { XINE_POST_TYPE_AUDIO_FILTER };*/ - - /* -@@ -40,6 +42,7 @@ - /* type, API, "name", version, special_info, init_function */ - { PLUGIN_INPUT, 17, (char *)"KBYTESTREAM" , XINE_VERSION_CODE, NULL , &init_kbytestream_plugin }, - { PLUGIN_POST , 9 , (char *)"KVolumeFader", XINE_VERSION_CODE, &kvolumefader_special_info, &init_kvolumefader_plugin }, -+ { PLUGIN_POST , 9 , (char *)"KEqualizer", XINE_VERSION_CODE, &kequalizer_special_info, &init_kequalizer_plugin }, - /*{ PLUGIN_POST , 9 , "KMixer" , XINE_VERSION_CODE, &kmixer_special_info , &init_kmixer_plugin },*/ - { PLUGIN_NONE , 0 , (char *)"" , 0 , NULL , NULL } - }; diff --git a/source/kde/phonon/FrugalBuild b/source/kde/phonon/FrugalBuild index e17d9e4..2b25c80 100644 --- a/source/kde/phonon/FrugalBuild +++ b/source/kde/phonon/FrugalBuild @@ -1,34 +1,29 @@ # Compiling Time: 0.09 SBU -# Maintainer: DeX77 <d...@dragonslave.de> +# Maintainer: crazy <cr...@frugalware.org> +# Contributor: DeX77 <d...@dragonslave.de> pkgname=phonon -pkgver=4.3.1 -pkgrel=4 +pkgver=4.3.80 +pkgrel=1 pkgdesc='The multimedia API for KDE 4' groups=('kde') archs=('i686' 'x86_64' 'ppc') url='http://phonon.kde.org' -options=('scriptlet') - provides=('libqtphonon') conflicts=("${provid...@]}") replaces=("${provid...@]}") - -# Temporary fix -up2date="$pkgver" -_F_kde_dirname="Attic/4.2.1/src" - -#_F_kde_dirname="stable/$pkgname/$pkgver" +_F_kde_unstable=1 +_F_kde_no_auto_docs=1 +_F_kde_no_compiletime=1 +_F_kde_dirname="unstable/$pkgname" Finclude kde - -depends=('libqtdbus' 'libqtgui' 'libqtopengl' 'libxcb' 'libxml2' \ +depends=("libqtdbus>=$_F_kde_qtver" "libqtgui>=$_F_kde_qtver" "libqtopengl>=$_F_kde_qtver" 'libxcb' 'libxml2' \ 'gstreamer' 'gst-plugins-base' 'xine-lib') -source=("${sour...@]}" \ - 07_feature_backport_xine_equalizer.patch ) -makedepends=("${makedepen...@]}" 'libqttest') +makedepends=("${makedepen...@]}" "libqttest>=$_F_kde_qtver") +sha1sums=('914e4db5a6c23918be4b85e56a31207a2d17bf5d') -sha1sums=('f7537e5280d0a4cc1348975daa7a7e45d833d45c' \ - '24f26bc48e3d73d73317d1915c265b04fa7fca45') +## FIXME: wrong group -> xmultimedia +## FIXME: split ME! gst has to go to own subpkg # optimization OK _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git