summaryrefslogtreecommitdiffstats
path: root/kioslave/audiocd/plugins/lame
diff options
context:
space:
mode:
Diffstat (limited to 'kioslave/audiocd/plugins/lame')
-rw-r--r--kioslave/audiocd/plugins/lame/Makefile.am18
-rw-r--r--kioslave/audiocd/plugins/lame/audiocd_lame_encoder.kcfg138
-rw-r--r--kioslave/audiocd/plugins/lame/audiocd_lame_encoder.kcfgc4
-rw-r--r--kioslave/audiocd/plugins/lame/collectingprocess.cpp134
-rw-r--r--kioslave/audiocd/plugins/lame/collectingprocess.h73
-rw-r--r--kioslave/audiocd/plugins/lame/encoderlame.cpp366
-rw-r--r--kioslave/audiocd/plugins/lame/encoderlame.h68
-rw-r--r--kioslave/audiocd/plugins/lame/encoderlameconfig.ui930
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&amp;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&amp;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>&amp;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>&amp;Error protection</string>
- </property>
- </widget>
- <widget class="TQCheckBox">
- <property name="name">
- <cstring>kcfg_id3_tag</cstring>
- </property>
- <property name="text">
- <string>&amp;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>&amp;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 &lt;i&gt;"Mono"&lt;/i&gt; 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&amp;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&amp;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 &amp;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 &amp;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 &amp;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>&amp;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>&amp;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&amp;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&amp;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>