diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-01-27 01:04:32 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-01-27 01:04:32 -0600 |
commit | 793cf2dff35dffe3ec4c7b24252947dde758a1b2 (patch) | |
tree | 7d9972d99ed281a36418ae9f5fc128e3c951532c /kioslave/audiocd/plugins/lame | |
parent | 04f764aaf273340e1d5811d4216dd8127cacc5db (diff) | |
download | tdemultimedia-793cf2dff35dffe3ec4c7b24252947dde758a1b2.tar.gz tdemultimedia-793cf2dff35dffe3ec4c7b24252947dde758a1b2.zip |
Rename a number of libraries and executables to avoid conflicts with KDE4
Diffstat (limited to 'kioslave/audiocd/plugins/lame')
-rw-r--r-- | kioslave/audiocd/plugins/lame/Makefile.am | 18 | ||||
-rw-r--r-- | kioslave/audiocd/plugins/lame/audiocd_lame_encoder.kcfg | 138 | ||||
-rw-r--r-- | kioslave/audiocd/plugins/lame/audiocd_lame_encoder.kcfgc | 4 | ||||
-rw-r--r-- | kioslave/audiocd/plugins/lame/collectingprocess.cpp | 134 | ||||
-rw-r--r-- | kioslave/audiocd/plugins/lame/collectingprocess.h | 73 | ||||
-rw-r--r-- | kioslave/audiocd/plugins/lame/encoderlame.cpp | 366 | ||||
-rw-r--r-- | kioslave/audiocd/plugins/lame/encoderlame.h | 68 | ||||
-rw-r--r-- | kioslave/audiocd/plugins/lame/encoderlameconfig.ui | 930 |
8 files changed, 0 insertions, 1731 deletions
diff --git a/kioslave/audiocd/plugins/lame/Makefile.am b/kioslave/audiocd/plugins/lame/Makefile.am deleted file mode 100644 index 49ddddd9..00000000 --- a/kioslave/audiocd/plugins/lame/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -INCLUDES = -I$(top_srcdir)/libkcddb -I$(srcdir)/.. $(taglib_includes) $(all_includes) - -kde_kcfg_DATA = audiocd_lame_encoder.kcfg - -kde_module_LTLIBRARIES = libaudiocd_encoder_lame.la - -libaudiocd_encoder_lame_la_SOURCES = audiocd_lame_encoder.kcfgc encoderlame.cpp encoderlameconfig.ui collectingprocess.cpp - -libaudiocd_encoder_lame_la_LIBADD = $(LIB_KIO) ../libaudiocdplugins.la - -libaudiocd_encoder_lame_la_LDFLAGS = -avoid-version -module -no-undefined $(taglib_libs) $(all_libraries) - -pluginsdir = $(kde_datadir)/audiocd/plugins - -METASOURCES = AUTO - -messages: rc.cpp - $(XGETTEXT) *.cpp -o $(podir)/audiocd_encoder_lame.pot diff --git a/kioslave/audiocd/plugins/lame/audiocd_lame_encoder.kcfg b/kioslave/audiocd/plugins/lame/audiocd_lame_encoder.kcfg deleted file mode 100644 index c752fd81..00000000 --- a/kioslave/audiocd/plugins/lame/audiocd_lame_encoder.kcfg +++ /dev/null @@ -1,138 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0 - http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" > - <kcfgfile name="kcmaudiocd_encoder_lame_rc"/> - <group name="Lame"> - -<!-- Encoding Method --> - <entry name="bitrate_constant" type="Bool"> - <label>Constant Bitrate</label> - <default>false</default> - </entry> - <entry name="bitrate_variable" type="Bool"> - <label>Variable Bitrate</label> - <default>true</default> - </entry> - - <entry name="stereo" type="Int"> - <label>Stereo Mode</label> - <default>0</default> - </entry> - <entry name="quality" type="Int"> - <label>Quality</label> - <default>-2</default> - </entry> - -<!-- Options --> - <entry name="copyright" type="Bool"> - <label>Copyrighted</label> - <default>false</default> - </entry> - <entry name="original" type="Bool"> - <label>Original</label> - <default>true</default> - </entry> - <entry name="iso" type="Bool"> - <label>ISO Encoding</label> - <default>false</default> - </entry> - <entry name="crc" type="Bool"> - <label>Error protection</label> - <default>false</default> - </entry> - <entry name="id3_tag" type="Bool"> - <label>Write ID3 Tag</label> - <default>true</default> - </entry> - -<!-- Constant Bitrate Settings --> - <entry name="cbr_bitrate" type="Int"> - <label>Constant Bitrate Settings</label> - <default>10</default> - <min>0</min> - <max>13</max> - </entry> - -<!-- Variable Bitrate Settings --> - <entry name="vbr_min_br" type="Bool"> - <label>Minimal bitrate</label> - <default>false</default> - </entry> - <entry name="vbr_min_hard" type="Bool"> - <label>Minimal Value is a hard limit</label> - <default>false</default> - </entry> - <entry name="vbr_max_br" type="Bool"> - <label>Maximal bitrate</label> - <default>false</default> - </entry> - <entry name="vbr_average_br" type="Bool"> - <label>Average bitrate</label> - <default>false</default> - </entry> - <entry name="vbr_xing_tag" type="Bool"> - <label>Write Xing VBR tag</label> - <default>true</default> - </entry> - - <entry name="vbr_min_brate" type="Int"> - <label>Minimal bitrate value</label> - <default>40</default> - <min>0</min> - <max>13</max> - </entry> - <entry name="vbr_max_brate" type="Int"> - <label>Maximal bitrate value</label> - <default>13</default> - <min>0</min> - <max>13</max> - </entry> - <entry name="vbr_mean_brate" type="Int"> - <label>Average bitrate value</label> - <default>10</default> - <min>0</min> - <max>13</max> - </entry> - - -<!-- Filter Settings --> - <entry name="enable_lowpass" type="Bool"> - <label>Lowpass filter cutoff above</label> - <default>false</default> - </entry> - <entry name="lowfilterfreq" type="Int"> - <label>Lowpass filter cutoff above Value</label> - <default>18000</default> - </entry> - - <entry name="enable_highpass" type="Bool"> - <label>Highpass filter cutoff above</label> - <default>false</default> - </entry> - <entry name="highfilterfreq" type="Int"> - <label>Highpass filter cutoff above Value</label> - <default>0</default> - </entry> - - <entry name="set_lpf_width" type="Bool"> - <label>Lowpass filter width</label> - <default>false</default> - </entry> - <entry name="lowfilterwidth" type="Int"> - <label>Lowpass filter width value</label> - <default>900</default> - </entry> - - <entry name="set_hpf_width" type="Bool"> - <label>Highpass filter width</label> - <default>false</default> - </entry> - <entry name="highfilterwidth" type="Int"> - <label>Highpass filter width</label> - <default>0</default> - </entry> - </group> -</kcfg> - diff --git a/kioslave/audiocd/plugins/lame/audiocd_lame_encoder.kcfgc b/kioslave/audiocd/plugins/lame/audiocd_lame_encoder.kcfgc deleted file mode 100644 index b96ee704..00000000 --- a/kioslave/audiocd/plugins/lame/audiocd_lame_encoder.kcfgc +++ /dev/null @@ -1,4 +0,0 @@ -# Code generation options for kconfig_compiler -File=audiocd_lame_encoder.kcfg -ClassName=Settings -Singleton=true diff --git a/kioslave/audiocd/plugins/lame/collectingprocess.cpp b/kioslave/audiocd/plugins/lame/collectingprocess.cpp deleted file mode 100644 index 4eaf5304..00000000 --- a/kioslave/audiocd/plugins/lame/collectingprocess.cpp +++ /dev/null @@ -1,134 +0,0 @@ -/* - collectingprocess.cpp - - This file is part of libtdepim. - Copyright (c) 2004 Ingo Kloecker <kloecker@kde.org> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU 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 - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - - In addition, as a special exception, the copyright holders give - permission to link the code of this program with any edition of - the TQt library by Trolltech AS, Norway (or with modified versions - of TQt that use the same license as TQt), and distribute linked - combinations including the two. You must obey the GNU General - Public License in all respects for all of the code used other than - TQt. If you modify this file, you may extend this exception to - your version of the file, but you are not obligated to do so. If - you do not wish to do so, delete this exception statement from - your version. -*/ - -#include "collectingprocess.h" - -#include <tqvaluelist.h> - -#include <string.h> - -struct CollectingProcess::Private { - Private() : stdoutSize( 0 ), stderrSize( 0 ) - {} - - uint stdoutSize; - TQValueList<TQByteArray> stdoutBuffer; - uint stderrSize; - TQValueList<TQByteArray> stderrBuffer; -}; - - -CollectingProcess::CollectingProcess( TQObject * parent, const char * name ) - : TDEProcess( parent, name ) -{ - d = new Private(); -} - -CollectingProcess::~CollectingProcess() { - delete d; d = 0; -} - -bool CollectingProcess::start( RunMode runmode, Communication comm ) { - // prevent duplicate connection - disconnect( this, TQT_SIGNAL( receivedStdout( TDEProcess *, char *, int ) ), - this, TQT_SLOT( slotReceivedStdout( TDEProcess *, char *, int ) ) ); - if ( comm & Stdout ) { - connect( this, TQT_SIGNAL( receivedStdout( TDEProcess *, char *, int ) ), - this, TQT_SLOT( slotReceivedStdout( TDEProcess *, char *, int ) ) ); - } - // prevent duplicate connection - disconnect( this, TQT_SIGNAL( receivedStderr( TDEProcess *, char *, int ) ), - this, TQT_SLOT( slotReceivedStderr( TDEProcess *, char *, int ) ) ); - if ( comm & Stderr ) { - connect( this, TQT_SIGNAL( receivedStderr( TDEProcess *, char *, int ) ), - this, TQT_SLOT( slotReceivedStderr( TDEProcess *, char *, int ) ) ); - } - return TDEProcess::start( runmode, comm ); -} - -void CollectingProcess::slotReceivedStdout( TDEProcess *, char *buf, int len ) -{ - TQByteArray b; - b.duplicate( buf, len ); - d->stdoutBuffer.append( b ); - d->stdoutSize += len; -} - -void CollectingProcess::slotReceivedStderr( TDEProcess *, char *buf, int len ) -{ - TQByteArray b; - b.duplicate( buf, len ); - d->stderrBuffer.append( b ); - d->stderrSize += len; -} - -TQByteArray CollectingProcess::collectedStdout() -{ - if ( d->stdoutSize == 0 ) { - return TQByteArray(); - } - - uint offset = 0; - TQByteArray b( d->stdoutSize ); - for ( TQValueList<TQByteArray>::const_iterator it = d->stdoutBuffer.begin(); - it != d->stdoutBuffer.end(); - ++it ) { - memcpy( b.data() + offset, (*it).data(), (*it).size() ); - offset += (*it).size(); - } - d->stdoutBuffer.clear(); - d->stdoutSize = 0; - - return b; -} - -TQByteArray CollectingProcess::collectedStderr() -{ - if ( d->stderrSize == 0 ) { - return TQByteArray(); - } - - uint offset = 0; - TQByteArray b( d->stderrSize ); - for ( TQValueList<TQByteArray>::const_iterator it = d->stderrBuffer.begin(); - it != d->stderrBuffer.end(); - ++it ) { - memcpy( b.data() + offset, (*it).data(), (*it).size() ); - offset += (*it).size(); - } - d->stderrBuffer.clear(); - d->stderrSize = 0; - - return b; -} - -#include "collectingprocess.moc" diff --git a/kioslave/audiocd/plugins/lame/collectingprocess.h b/kioslave/audiocd/plugins/lame/collectingprocess.h deleted file mode 100644 index df5c180d..00000000 --- a/kioslave/audiocd/plugins/lame/collectingprocess.h +++ /dev/null @@ -1,73 +0,0 @@ -/* -*- mode: C++ -*- - collectingprocess.h - - This file is a copy of the collectingprocess.h which is part of tdepim/libtdepim. - Copyright (c) 2004 Ingo Kloecker <kloecker@kde.org> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU 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 - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - - In addition, as a special exception, the copyright holders give - permission to link the code of this program with any edition of - the TQt library by Trolltech AS, Norway (or with modified versions - of TQt that use the same license as TQt), and distribute linked - combinations including the two. You must obey the GNU General - Public License in all respects for all of the code used other than - TQt. If you modify this file, you may extend this exception to - your version of the file, but you are not obligated to do so. If - you do not wish to do so, delete this exception statement from - your version. -*/ - -#ifndef __COLLECTINGPROCESS_H__ -#define __COLLECTINGPROCESS_H__ - -#include <kprocess.h> - -/** - * @short An output collecting TDEProcess class. - * - * This class simplifies the usage of TDEProcess by collecting all output - * (stdout/stderr) of the process. - * - * @author Ingo Kloecker <kloecker@kde.org> - */ -class CollectingProcess : public TDEProcess { - Q_OBJECT - -public: - CollectingProcess( TQObject * parent = 0, const char * name = 0 ); - ~CollectingProcess(); - - /** Starts the process in NotifyOnExit mode and writes in to stdin of - the process. - */ - bool start( RunMode runmode, Communication comm ); - - /** Returns the contents of the stdout buffer and clears it afterwards. */ - TQByteArray collectedStdout(); - /** Returns the contents of the stderr buffer and clears it afterwards. */ - TQByteArray collectedStderr(); - -private slots: - void slotReceivedStdout( TDEProcess *, char *, int ); - void slotReceivedStderr( TDEProcess *, char *, int ); - -private: - class Private; - Private * d; -protected: -}; - -#endif // __COLLECTINGPROCESS_H__ diff --git a/kioslave/audiocd/plugins/lame/encoderlame.cpp b/kioslave/audiocd/plugins/lame/encoderlame.cpp deleted file mode 100644 index 8984bb33..00000000 --- a/kioslave/audiocd/plugins/lame/encoderlame.cpp +++ /dev/null @@ -1,366 +0,0 @@ -/* - Copyright (C) 2005 Benjamin Meyer <ben at meyerhome dot net> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program 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 General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -*/ - -#include <config.h> -#include <endian.h> -#include "encoderlame.h" -#include "encoderlameconfig.h" -#include "audiocd_lame_encoder.h" - -#include <kdebug.h> -#include <tqgroupbox.h> -#include <kprocess.h> -#include <kdebug.h> - -#include <kglobal.h> -#include <klocale.h> -#include <kapplication.h> -#include <tqfileinfo.h> -#include <ktempfile.h> -#include <kstandarddirs.h> -#include "collectingprocess.h" - -extern "C" -{ - KDE_EXPORT void create_audiocd_encoders(TDEIO::SlaveBase *slave, TQPtrList<AudioCDEncoder> &encoders) { - encoders.append(new EncoderLame(slave)); - } -} - -static int bitrates[] = { 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 }; - -class EncoderLame::Private -{ -public: - int bitrate; - bool waitingForWrite; - bool processHasExited; - TQString lastErrorMessage; - TQStringList genreList; - uint lastSize; - TDEProcess *currentEncodeProcess; - KTempFile *tempFile; -}; - -EncoderLame::EncoderLame(TDEIO::SlaveBase *slave) : TQObject(), AudioCDEncoder(slave) { - d = new Private(); - d->waitingForWrite = false; - d->processHasExited = false; - d->lastSize = 0; - loadSettings(); -} - -EncoderLame::~EncoderLame(){ - delete d; -} - -TQWidget* EncoderLame::getConfigureWidget(TDEConfigSkeleton** manager) const { - (*manager) = Settings::self(); - TDEGlobal::locale()->insertCatalogue("audiocd_encoder_lame"); - EncoderLameConfig *config = new EncoderLameConfig(); - config->cbr_settings->hide(); - return config; -} - -bool EncoderLame::init(){ - // Determine if lame is installed on the system or not. - if ( KStandardDirs::findExe( "lame" ).isEmpty() ) - return false; - - // Ask lame for the list of genres it knows; otherwise it barfs when doing - // e.g. lame --tg 'Vocal Jazz' - CollectingProcess proc; - proc << "lame" << "--genre-list"; - proc.start(TDEProcess::Block, TDEProcess::Stdout); - - if(proc.exitStatus() != 0) - return false; - - const TQByteArray data = proc.collectedStdout(); - TQString str; - if ( !data.isEmpty() ) - str = TQString::fromLocal8Bit( data, data.size() ); - - d->genreList = TQStringList::split( '\n', str ); - // Remove the numbers in front of every genre - for( TQStringList::Iterator it = d->genreList.begin(); it != d->genreList.end(); ++it ) { - TQString& genre = *it; - uint i = 0; - while ( i < genre.length() && ( genre[i].isSpace() || genre[i].isDigit() ) ) - ++i; - genre = genre.mid( i ); - - } - //kdDebug(7117) << "Available genres:" << d->genreList << endl; - - return true; -} - -void EncoderLame::loadSettings(){ - // Generate the command line arguments for the current settings - args.clear(); - - Settings *settings = Settings::self(); - - int quality = settings->quality(); - if (quality < 0 ) quality = quality *-1; - if (quality > 9) quality = 9; - - int method = settings->bitrate_constant() ? 0 : 1 ; - - if (method == 0) { - // Constant Bitrate Encoding - args.append("-b"); - args.append(TQString("%1").arg(bitrates[settings->cbr_bitrate()])); - d->bitrate = bitrates[settings->cbr_bitrate()]; - args.append("-q"); - args.append(TQString("%1").arg(quality)); - } - else { - // Variable Bitrate Encoding - if (settings->vbr_average_br()) { - args.append("--abr"); - args.append(TQString("%1").arg(bitrates[settings->vbr_mean_brate()])); - d->bitrate = bitrates[settings->vbr_mean_brate()]; - if (settings->vbr_min_br()){ - args.append("-b"); - args.append(TQString("%1").arg(bitrates[settings->vbr_min_brate()])); - } - if (settings->vbr_min_hard()) - args.append("-F"); - if (settings->vbr_max_br()){ - args.append("-B"); - args.append(TQString("%1").arg(bitrates[settings->vbr_max_brate()])); - } - } else { - d->bitrate = 128; - args.append("-V"); - args.append(TQString("%1").arg(quality)); - } - if ( !settings->vbr_xing_tag() ) - args.append("-t"); - } - - args.append("-m"); - switch ( settings->stereo() ) { - case 0: - args.append("s"); - break; - case 1: - args.append("j"); - break; - case 2: - args.append("d"); - break; - case 3: - args.append("m"); - break; - default: - args.append("s"); - break; - } - - if(settings->copyright()) - args.append("-c"); - if(!settings->original()) - args.append("-o"); - if(settings->iso()) - args.append("--strictly-enforce-ISO"); - if(settings->crc()) - args.append("-p"); - - if ( settings->enable_lowpass() ) { - args.append("--lowpass"); - args.append(TQString("%1").arg(settings->lowfilterfreq())); - - if (settings->set_lpf_width()){ - args.append("--lowpass-width"); - args.append(TQString("%1").arg(settings->lowfilterwidth())); - } - } - - if ( settings->enable_highpass()) { - args.append("--hipass"); - args.append(TQString("%1").arg(settings->highfilterfreq())); - - if (settings->set_hpf_width()){ - args.append("--hipass-width"); - args.append(TQString("%1").arg(settings->highfilterwidth())); - } - } -} - -unsigned long EncoderLame::size(long time_secs) const { - return (time_secs * d->bitrate * 1000)/8; -} - -long EncoderLame::readInit(long /*size*/){ - // Create TDEProcess - d->currentEncodeProcess = new TDEProcess(0); - TQString prefix = locateLocal("tmp", ""); - d->tempFile = new KTempFile(prefix, ".mp3"); - d->tempFile->setAutoDelete(true); - d->lastErrorMessage = TQString(); - d->processHasExited = false; - - // -x bitswap - // -r raw/pcm - // -s 44.1 (because it is raw you have to specify this) -// #if __BYTE_ORDER == __LITTLE_ENDIAN -// *(d->currentEncodeProcess) << "lame" << "--verbose" << "-x" << "-r" << "-s" << "44.1"; -// #else - *(d->currentEncodeProcess) << "lame" << "--verbose" << "-r" << "-s" << "44.1"; -// #endif - - *(d->currentEncodeProcess) << args; - if(Settings::self()->id3_tag()) - *d->currentEncodeProcess << trackInfo; - - // Read in stdin, output to the temp file - *d->currentEncodeProcess << "-" << d->tempFile->name().latin1(); - - //kdDebug(7117) << d->currentEncodeProcess->args() << endl; - - - connect(d->currentEncodeProcess, TQT_SIGNAL(receivedStdout(TDEProcess *, char *, int)), - this, TQT_SLOT(receivedStdout(TDEProcess *, char *, int))); - connect(d->currentEncodeProcess, TQT_SIGNAL(receivedStderr(TDEProcess *, char *, int)), - this, TQT_SLOT(receivedStderr(TDEProcess *, char *, int))); - connect(d->currentEncodeProcess, TQT_SIGNAL(wroteStdin(TDEProcess *)), - this, TQT_SLOT(wroteStdin(TDEProcess *))); - - connect(d->currentEncodeProcess, TQT_SIGNAL(processExited(TDEProcess *)), - this, TQT_SLOT(processExited(TDEProcess *))); - - // Launch! - d->currentEncodeProcess->start(TDEProcess::NotifyOnExit, KShellProcess::All); - return 0; -} - -void EncoderLame::processExited ( TDEProcess *process ){ - kdDebug(7117) << "Lame Encoding process exited with: " << process->exitStatus() << endl; - d->processHasExited = true; -} - -void EncoderLame::receivedStderr( TDEProcess * /*process*/, char *buffer, int /*buflen*/ ){ - kdDebug(7117) << "Lame stderr: " << buffer << endl; - if ( !d->lastErrorMessage.isEmpty() ) - d->lastErrorMessage += '\t'; - d->lastErrorMessage += TQString::fromLocal8Bit( buffer ); -} - -void EncoderLame::receivedStdout( TDEProcess * /*process*/, char *buffer, int /*length*/ ){ - kdDebug(7117) << "Lame stdout: " << buffer << endl; -} - -void EncoderLame::wroteStdin( TDEProcess * /*procces*/ ){ - d->waitingForWrite = false; -} - -long EncoderLame::read(int16_t *buf, int frames){ - if(!d->currentEncodeProcess) - return 0; - if (d->processHasExited) - return -1; - - // Pipe the raw data to lame - char * cbuf = reinterpret_cast<char *>(buf); - d->currentEncodeProcess->writeStdin( cbuf, frames*4); - - // We can't return until the buffer has been written - d->waitingForWrite = true; - while(d->waitingForWrite && d->currentEncodeProcess->isRunning()){ - kapp->processEvents(); - usleep(1); - } - - // Determine the file size increase - TQFileInfo file(d->tempFile->name()); - uint change = file.size() - d->lastSize; - d->lastSize = file.size(); - return change; -} - -long EncoderLame::readCleanup(){ - if(!d->currentEncodeProcess) - return 0; - - // Let lame tag the first frame of the mp3 - d->currentEncodeProcess->closeStdin(); - while( d->currentEncodeProcess->isRunning()){ - kapp->processEvents(); - usleep(1); - } - - // Now copy the file out of the temp into kio - TQFile file( d->tempFile->name() ); - if ( file.open( IO_ReadOnly ) ) { - TQByteArray output; - char data[1024]; - while ( !file.atEnd() ) { - uint read = file.readBlock(data, 1024); - output.setRawData(data, read); - ioslave->data(output); - output.resetRawData(data, read); - } - file.close(); - } - - // cleanup the process and temp - delete d->currentEncodeProcess; - delete d->tempFile; - d->lastSize = 0; - - return 0; -} - -void EncoderLame::fillSongInfo( KCDDB::CDInfo info, int track, const TQString &comment ){ - trackInfo.clear(); - trackInfo.append("--tt"); - trackInfo.append(info.trackInfoList[track].get("title").toString()); - - trackInfo.append("--ta"); - trackInfo.append(info.get("artist").toString()); - - trackInfo.append("--tl"); - trackInfo.append(info.get("title").toString()); - - trackInfo.append("--ty"); - trackInfo.append(TQString("%1").arg(info.get("year").toString())); - - trackInfo.append("--tc"); - trackInfo.append(comment); - - trackInfo.append("--tn"); - trackInfo.append(TQString("%1").arg(track+1)); - - const TQString genre = info.get( "genre" ).toString(); - if ( d->genreList.find( genre ) != d->genreList.end() ) - { - trackInfo.append("--tg"); - trackInfo.append(genre); - } -} - - -TQString EncoderLame::lastErrorMessage() const -{ - return d->lastErrorMessage; -} - -#include "encoderlame.moc" diff --git a/kioslave/audiocd/plugins/lame/encoderlame.h b/kioslave/audiocd/plugins/lame/encoderlame.h deleted file mode 100644 index 09c323c3..00000000 --- a/kioslave/audiocd/plugins/lame/encoderlame.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright (C) 2005 Benjamin Meyer <ben at meyerhome dot net> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program 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 General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -*/ - -#ifndef ENCODER_LAME_H -#define ENCODER_LAME_H - -#include "audiocdencoder.h" - -class TDEProcess; - -/** - * MP3 encoder using the LAME encoder. - * Go to http://lame.sourceforge.net/ for lots of information. - */ -class EncoderLame : public TQObject, public AudioCDEncoder { - -Q_OBJECT - - -public: - EncoderLame(TDEIO::SlaveBase *slave); - ~EncoderLame(); - - virtual TQString type() const { return "MP3"; }; - virtual bool init(); - virtual void loadSettings(); - virtual unsigned long size(long time_secs) const; - virtual const char * fileType() const { return "mp3"; }; - virtual const char * mimeType() const { return "audio/x-mp3"; }; - virtual void fillSongInfo( KCDDB::CDInfo info, int track, const TQString &comment ); - virtual long readInit(long size); - virtual long read(int16_t * buf, int frames); - virtual long readCleanup(); - virtual TQString lastErrorMessage() const; - - virtual TQWidget* getConfigureWidget(TDEConfigSkeleton** manager) const; - -protected slots: - void wroteStdin(TDEProcess *proc); - void receivedStdout(TDEProcess *, char *buffer, int length); - void receivedStderr(TDEProcess *proc, char *buffer, int buflen); - void processExited(TDEProcess *proc); - -private: - class Private; - Private * d; - - TQStringList args; - TQStringList trackInfo; -}; - -#endif // ENCODER_LAME_H - diff --git a/kioslave/audiocd/plugins/lame/encoderlameconfig.ui b/kioslave/audiocd/plugins/lame/encoderlameconfig.ui deleted file mode 100644 index f8149741..00000000 --- a/kioslave/audiocd/plugins/lame/encoderlameconfig.ui +++ /dev/null @@ -1,930 +0,0 @@ -<!DOCTYPE UI><UI version="3.2" stdsetdef="1"> -<class>EncoderLameConfig</class> -<widget class="TQWidget"> - <property name="name"> - <cstring>LameConfig</cstring> - </property> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>471</width> - <height>598</height> - </rect> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQGroupBox" row="0" column="1"> - <property name="name"> - <cstring>GroupBox1_2</cstring> - </property> - <property name="title"> - <string>Options</string> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>11</number> - </property> - <property name="spacing"> - <number>6</number> - </property> - <widget class="TQCheckBox"> - <property name="name"> - <cstring>kcfg_copyright</cstring> - </property> - <property name="text"> - <string>Cop&yrighted</string> - </property> - <property name="toolTip" stdset="0"> - <string>Mark MP3 file as copyrighted</string> - </property> - <property name="whatsThis" stdset="0"> - <string>Mark MP3 file as copyrighted.</string> - </property> - </widget> - <widget class="TQCheckBox"> - <property name="name"> - <cstring>kcfg_original</cstring> - </property> - <property name="text"> - <string>Origi&nal</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - <property name="toolTip" stdset="0"> - <string>Mark MP3 file as an original</string> - </property> - <property name="whatsThis" stdset="0"> - <string>Mark MP3 file as an original.</string> - </property> - </widget> - <widget class="TQCheckBox"> - <property name="name"> - <cstring>kcfg_iso</cstring> - </property> - <property name="text"> - <string>&ISO encoding</string> - </property> - <property name="toolTip" stdset="0"> - <string>Try to use strict ISO encoding</string> - </property> - <property name="whatsThis" stdset="0"> - <string>This selects the maximal bitrate used for encoding.</string> - </property> - </widget> - <widget class="TQCheckBox"> - <property name="name"> - <cstring>kcfg_crc</cstring> - </property> - <property name="text"> - <string>&Error protection</string> - </property> - </widget> - <widget class="TQCheckBox"> - <property name="name"> - <cstring>kcfg_id3_tag</cstring> - </property> - <property name="text"> - <string>&Write ID3 tag</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - <property name="toolTip" stdset="0"> - <string>If checked and if cddb support is available, an id3 tag will be appended</string> - </property> - <property name="whatsThis" stdset="0"> - <string>If checked and if cddb support is available, an id3 tag will be appended</string> - </property> - </widget> - </vbox> - </widget> - <widget class="TQButtonGroup" row="0" column="0"> - <property name="name"> - <cstring>buttonGroup1</cstring> - </property> - <property name="title"> - <string>Encoding Method</string> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQLayoutWidget" row="3" column="0" rowspan="1" colspan="3"> - <property name="name"> - <cstring>Layout21</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>0</number> - </property> - <property name="spacing"> - <number>6</number> - </property> - <widget class="TQLabel"> - <property name="name"> - <cstring>TextLabel3_2</cstring> - </property> - <property name="text"> - <string>Low</string> - </property> - </widget> - <widget class="TQSlider"> - <property name="name"> - <cstring>kcfg_quality</cstring> - </property> - <property name="minValue"> - <number>-9</number> - </property> - <property name="maxValue"> - <number>0</number> - </property> - <property name="pageStep"> - <number>1</number> - </property> - <property name="value"> - <number>-7</number> - </property> - <property name="orientation"> - <enum>Horizontal</enum> - </property> - <property name="tickmarks"> - <enum>NoMarks</enum> - </property> - </widget> - <widget class="TQLabel"> - <property name="name"> - <cstring>TextLabel2_2</cstring> - </property> - <property name="text"> - <string>High</string> - </property> - </widget> - </hbox> - </widget> - <widget class="TQLabel" row="2" column="0" rowspan="1" colspan="3"> - <property name="name"> - <cstring>TextLabel1_2</cstring> - </property> - <property name="text"> - <string>&Quality:</string> - </property> - <property name="alignment"> - <set>AlignLeft</set> - </property> - <property name="buddy" stdset="0"> - <cstring>kcfg_quality</cstring> - </property> - </widget> - <widget class="TQComboBox" row="1" column="0" rowspan="1" colspan="2"> - <item> - <property name="text"> - <string>Stereo</string> - </property> - </item> - <item> - <property name="text"> - <string>Joint Stereo</string> - </property> - </item> - <item> - <property name="text"> - <string>Dual Channel</string> - </property> - </item> - <item> - <property name="text"> - <string>Mono</string> - </property> - </item> - <property name="name"> - <cstring>kcfg_stereo</cstring> - </property> - <property name="whatsThis" stdset="0"> - <string>This option controls whether MP3 files are recorded with one or two channels. Note that choosing <i>"Mono"</i> reduces file size, but also kills the stereo signal.</string> - </property> - </widget> - <widget class="TQRadioButton" row="0" column="0"> - <property name="name"> - <cstring>kcfg_bitrate_constant</cstring> - </property> - <property name="text"> - <string>Constant bitrate</string> - </property> - </widget> - <widget class="TQRadioButton" row="0" column="1"> - <property name="name"> - <cstring>kcfg_bitrate_variable</cstring> - </property> - <property name="text"> - <string>Variable bitrate</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </grid> - </widget> - <spacer row="4" column="0"> - <property name="name"> - <cstring>spacer11</cstring> - </property> - <property name="orientation"> - <enum>Vertical</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>20</width> - <height>16</height> - </size> - </property> - </spacer> - <widget class="TQGroupBox" row="3" column="0" rowspan="1" colspan="2"> - <property name="name"> - <cstring>vbr_settings</cstring> - </property> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="title"> - <string>Variable Bitrate Settings</string> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>11</number> - </property> - <property name="spacing"> - <number>6</number> - </property> - <widget class="TQCheckBox" row="3" column="0"> - <property name="name"> - <cstring>kcfg_vbr_average_br</cstring> - </property> - <property name="text"> - <string>Specify avera&ge bitrate:</string> - </property> - <property name="whatsThis" stdset="0"> - <string>This selects the maximal bitrate used for encoding.</string> - </property> - </widget> - <widget class="TQComboBox" row="2" column="1"> - <item> - <property name="text"> - <string>32 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>40 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>48 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>56 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>64 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>80 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>96 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>112 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>128 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>160 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>192 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>224 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>256 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>320 kbs</string> - </property> - </item> - <property name="name"> - <cstring>kcfg_vbr_max_brate</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="currentItem"> - <number>13</number> - </property> - </widget> - <widget class="TQCheckBox" row="2" column="0"> - <property name="name"> - <cstring>kcfg_vbr_max_br</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Maximal bi&trate:</string> - </property> - <property name="whatsThis" stdset="0"> - <string>This selects the maximal bitrate used for encoding.</string> - </property> - </widget> - <widget class="TQCheckBox" row="4" column="0" rowspan="1" colspan="2"> - <property name="name"> - <cstring>kcfg_vbr_xing_tag</cstring> - </property> - <property name="text"> - <string>Write &Xing VBR tag</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - <property name="whatsThis" stdset="0"> - <string>This writes additional information related to VBR as introduced by Xing.</string> - </property> - </widget> - <widget class="TQComboBox" row="3" column="1"> - <item> - <property name="text"> - <string>32 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>40 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>48 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>56 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>64 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>80 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>96 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>112 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>128 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>160 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>192 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>224 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>256 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>320 kbs</string> - </property> - </item> - <property name="name"> - <cstring>kcfg_vbr_mean_brate</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="currentItem"> - <number>9</number> - </property> - </widget> - <widget class="TQCheckBox" row="1" column="0" rowspan="1" colspan="2"> - <property name="name"> - <cstring>kcfg_vbr_min_hard</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Minimal &value is a hard limit</string> - </property> - </widget> - <widget class="TQCheckBox" row="0" column="0"> - <property name="name"> - <cstring>kcfg_vbr_min_br</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Minimal &bitrate:</string> - </property> - <property name="whatsThis" stdset="0"> - <string>This selects the minimal bitrate used for encoding.</string> - </property> - </widget> - <widget class="TQComboBox" row="0" column="1"> - <item> - <property name="text"> - <string>32 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>40 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>48 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>56 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>64 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>80 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>96 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>112 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>128 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>160 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>192 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>224 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>256 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>320 kbs</string> - </property> - </item> - <property name="name"> - <cstring>kcfg_vbr_min_brate</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="currentItem"> - <number>1</number> - </property> - </widget> - </grid> - </widget> - <widget class="TQGroupBox" row="2" column="0" rowspan="1" colspan="2"> - <property name="name"> - <cstring>cbr_settings</cstring> - </property> - <property name="title"> - <string>Constant Bitrate Settings</string> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>11</number> - </property> - <property name="spacing"> - <number>6</number> - </property> - <widget class="TQLabel"> - <property name="name"> - <cstring>TextLabel4_2</cstring> - </property> - <property name="text"> - <string>Bitrate:</string> - </property> - <property name="buddy" stdset="0"> - <cstring>kcfg_cbr_bitrate</cstring> - </property> - </widget> - <widget class="TQComboBox"> - <item> - <property name="text"> - <string>32 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>40 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>48 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>56 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>64 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>80 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>96 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>112 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>128 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>160 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>192 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>224 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>256 kbs</string> - </property> - </item> - <item> - <property name="text"> - <string>320 kbs</string> - </property> - </item> - <property name="name"> - <cstring>kcfg_cbr_bitrate</cstring> - </property> - <property name="currentItem"> - <number>9</number> - </property> - <property name="whatsThis" stdset="0"> - <string>The higher the bitrate, the better the quality and the larger the file.</string> - </property> - </widget> - </hbox> - </widget> - <widget class="TQGroupBox" row="1" column="0" rowspan="1" colspan="2"> - <property name="name"> - <cstring>GroupBox83_2</cstring> - </property> - <property name="title"> - <string>Filter Settings</string> - </property> - <property name="alignment"> - <set>AlignVCenter|AlignLeft</set> - </property> - <property name="hAlign" stdset="0"> - </property> - <property name="vAlign" stdset="0"> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>11</number> - </property> - <property name="spacing"> - <number>6</number> - </property> - <widget class="TQCheckBox" row="0" column="0"> - <property name="name"> - <cstring>kcfg_enable_lowpass</cstring> - </property> - <property name="text"> - <string>&Lowpass filter cutoff above</string> - </property> - </widget> - <widget class="TQSpinBox" row="1" column="0"> - <property name="name"> - <cstring>kcfg_lowfilterfreq</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="suffix"> - <string> Hz</string> - </property> - <property name="maxValue"> - <number>20000</number> - </property> - </widget> - <widget class="TQCheckBox" row="2" column="0"> - <property name="name"> - <cstring>kcfg_enable_highpass</cstring> - </property> - <property name="text"> - <string>&Highpass filter cutoff below</string> - </property> - </widget> - <widget class="TQSpinBox" row="3" column="0"> - <property name="name"> - <cstring>kcfg_highfilterfreq</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="suffix"> - <string> Hz</string> - </property> - <property name="maxValue"> - <number>200</number> - </property> - </widget> - <widget class="TQCheckBox" row="0" column="1"> - <property name="name"> - <cstring>kcfg_set_lpf_width</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Low&pass filter width</string> - </property> - </widget> - <widget class="TQSpinBox" row="1" column="1"> - <property name="name"> - <cstring>kcfg_lowfilterwidth</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="suffix"> - <string> Hz</string> - </property> - <property name="maxValue"> - <number>5000</number> - </property> - </widget> - <widget class="TQCheckBox" row="2" column="1"> - <property name="name"> - <cstring>kcfg_set_hpf_width</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Highpa&ss filter width</string> - </property> - </widget> - <widget class="TQSpinBox" row="3" column="1"> - <property name="name"> - <cstring>kcfg_highfilterwidth</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="suffix"> - <string> Hz</string> - </property> - <property name="maxValue"> - <number>50</number> - </property> - </widget> - </grid> - </widget> - </grid> -</widget> -<connections> - <connection> - <sender>kcfg_bitrate_constant</sender> - <signal>toggled(bool)</signal> - <receiver>cbr_settings</receiver> - <slot>setShown(bool)</slot> - </connection> - <connection> - <sender>kcfg_enable_highpass</sender> - <signal>toggled(bool)</signal> - <receiver>kcfg_highfilterfreq</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>kcfg_enable_highpass</sender> - <signal>toggled(bool)</signal> - <receiver>kcfg_highfilterwidth</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>kcfg_enable_lowpass</sender> - <signal>toggled(bool)</signal> - <receiver>kcfg_lowfilterfreq</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>kcfg_enable_lowpass</sender> - <signal>toggled(bool)</signal> - <receiver>kcfg_lowfilterwidth</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>kcfg_enable_highpass</sender> - <signal>toggled(bool)</signal> - <receiver>kcfg_set_hpf_width</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>kcfg_enable_lowpass</sender> - <signal>toggled(bool)</signal> - <receiver>kcfg_set_lpf_width</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>kcfg_vbr_average_br</sender> - <signal>toggled(bool)</signal> - <receiver>kcfg_vbr_max_br</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>kcfg_vbr_max_br</sender> - <signal>toggled(bool)</signal> - <receiver>kcfg_vbr_max_brate</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>kcfg_vbr_average_br</sender> - <signal>toggled(bool)</signal> - <receiver>kcfg_vbr_mean_brate</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>kcfg_vbr_average_br</sender> - <signal>toggled(bool)</signal> - <receiver>kcfg_vbr_min_br</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>kcfg_vbr_min_br</sender> - <signal>toggled(bool)</signal> - <receiver>kcfg_vbr_min_brate</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>kcfg_vbr_min_br</sender> - <signal>toggled(bool)</signal> - <receiver>kcfg_vbr_min_hard</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>kcfg_bitrate_variable</sender> - <signal>toggled(bool)</signal> - <receiver>vbr_settings</receiver> - <slot>setShown(bool)</slot> - </connection> -</connections> -<tabstops> - <tabstop>kcfg_bitrate_variable</tabstop> - <tabstop>kcfg_stereo</tabstop> - <tabstop>kcfg_quality</tabstop> - <tabstop>kcfg_copyright</tabstop> - <tabstop>kcfg_original</tabstop> - <tabstop>kcfg_iso</tabstop> - <tabstop>kcfg_crc</tabstop> - <tabstop>kcfg_id3_tag</tabstop> - <tabstop>kcfg_cbr_bitrate</tabstop> - <tabstop>kcfg_vbr_min_br</tabstop> - <tabstop>kcfg_vbr_min_hard</tabstop> - <tabstop>kcfg_vbr_max_br</tabstop> - <tabstop>kcfg_vbr_average_br</tabstop> - <tabstop>kcfg_vbr_xing_tag</tabstop> - <tabstop>kcfg_vbr_min_brate</tabstop> - <tabstop>kcfg_vbr_max_brate</tabstop> - <tabstop>kcfg_vbr_mean_brate</tabstop> - <tabstop>kcfg_enable_lowpass</tabstop> - <tabstop>kcfg_lowfilterfreq</tabstop> - <tabstop>kcfg_enable_highpass</tabstop> - <tabstop>kcfg_highfilterfreq</tabstop> - <tabstop>kcfg_set_lpf_width</tabstop> - <tabstop>kcfg_lowfilterwidth</tabstop> - <tabstop>kcfg_set_hpf_width</tabstop> - <tabstop>kcfg_highfilterwidth</tabstop> -</tabstops> -<layoutdefaults spacing="6" margin="11"/> -</UI> |