File indexing completed on 2024-04-28 04:50:20

0001 /*
0002     SPDX-FileCopyrightText: 2010-2011 Michal Malek <michalm@jabster.pl>
0003     SPDX-FileCopyrightText: 1998-2008 Sebastian Trueg <trueg@k3b.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 
0009 #include "k3baudioprojectconvertingjob.h"
0010 #include "k3baudiodoc.h"
0011 #include "k3baudioencoder.h"
0012 #include "k3baudiotrack.h"
0013 #include "k3baudiotrackreader.h"
0014 
0015 #include <KCDDB/CDInfo>
0016 
0017 #include <KLocalizedString>
0018 
0019 
0020 namespace K3b {
0021 
0022 class AudioProjectConvertingJob::Private
0023 {
0024 public:
0025     Private( AudioDoc* d )
0026         : doc(d) {
0027     }
0028 
0029     AudioDoc* doc;
0030 };
0031 
0032 
0033 AudioProjectConvertingJob::AudioProjectConvertingJob( AudioDoc* doc, JobHandler* hdl, QObject* parent )
0034     : MassAudioEncodingJob( true, hdl,  parent ),
0035       d( new Private( doc ) )
0036 {
0037 }
0038 
0039 
0040 AudioProjectConvertingJob::~AudioProjectConvertingJob()
0041 {
0042 }
0043 
0044 
0045 QString AudioProjectConvertingJob::jobDescription() const
0046 {
0047     if( cddbEntry().get( KCDDB::Title ).toString().isEmpty() )
0048         return i18n( "Converting Audio Tracks" );
0049     else
0050         return i18n( "Converting Audio Tracks From '%1'",
0051                      cddbEntry().get( KCDDB::Title ).toString() );
0052 }
0053 
0054 
0055 bool AudioProjectConvertingJob::init()
0056 {
0057     emit newTask( i18n("Converting Audio Tracks")  );
0058     emit infoMessage( i18n("Starting audio conversion."), Job::MessageInfo );
0059     return true;
0060 }
0061 
0062 
0063 Msf AudioProjectConvertingJob::trackLength( int trackIndex ) const
0064 {
0065     if( AudioTrack* track = d->doc->getTrack( trackIndex ) )
0066         return track->length();
0067     else
0068         return Msf();
0069 }
0070 
0071 
0072 QIODevice* AudioProjectConvertingJob::createReader( int trackIndex ) const
0073 {
0074     if( AudioTrack* track = d->doc->getTrack( trackIndex ) )
0075         return new AudioTrackReader( *track );
0076     else
0077         return 0;
0078 }
0079 
0080 
0081 void AudioProjectConvertingJob::trackStarted( int trackIndex )
0082 {
0083     if( !cddbEntry().track( trackIndex-1 ).get( KCDDB::Artist ).toString().isEmpty() &&
0084         !cddbEntry().track( trackIndex-1 ).get( KCDDB::Title ).toString().isEmpty() )
0085         emit newSubTask( i18n( "Converting track %1 (%2 - %3)",
0086                                trackIndex,
0087                                cddbEntry().track( trackIndex-1 ).get( KCDDB::Artist ).toString(),
0088                                cddbEntry().track( trackIndex-1 ).get( KCDDB::Title ).toString() ) );
0089     else
0090         emit newSubTask( i18n("Converting track %1", trackIndex) );
0091 }
0092 
0093 
0094 void AudioProjectConvertingJob::trackFinished( int trackIndex, const QString& /*filename*/ )
0095 {
0096     emit infoMessage( i18n("Successfully converted track %1.", trackIndex), Job::MessageInfo );
0097 }
0098 
0099 } // namespace K3b
0100 
0101 #include "moc_k3baudioprojectconvertingjob.cpp"