File indexing completed on 2024-04-14 04:49:14
0001 /* 0002 SPDX-FileCopyrightText: 2002 Rik Hemsley (rikkus) <rik@kde.org> 0003 SPDX-FileCopyrightText: 2002 Benjamin Meyer <ben-devel@meyerhome.net> 0004 SPDX-FileCopyrightText: 2003-2005 Richard Lärkäng <nouseforaname@home.se> 0005 0006 SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 0009 #include "submit.h" 0010 #include "logging.h" 0011 0012 namespace KCDDB 0013 { 0014 Submit::Submit() 0015 : CDDB() 0016 { 0017 // Empty. 0018 } 0019 0020 Submit::~Submit() 0021 { 0022 // Empty. 0023 } 0024 0025 Result Submit::submit( CDInfo cdInfo, const TrackOffsetList& offsetList) 0026 { 0027 // If it was an inexact math from the server the discid might 0028 // be different, so recalculate it 0029 cdInfo.set(QLatin1String( "discid" ), trackOffsetListToId(offsetList)); 0030 0031 makeDiskData( cdInfo, offsetList ); 0032 0033 if (!validCategory(cdInfo.get(Category).toString())) 0034 return InvalidCategory; 0035 0036 KIO::Job* job = createJob(cdInfo); 0037 0038 if (!job) 0039 return UnknownError; 0040 0041 return runJob(job); 0042 } 0043 0044 Result 0045 Submit::parseWrite( const QString & line ) 0046 { 0047 uint serverStatus = statusCode( line ); 0048 0049 if ( 320 != serverStatus ) 0050 return ServerError; 0051 0052 return Success; 0053 } 0054 0055 void Submit::makeDiskData( const CDInfo& cdInfo, const TrackOffsetList& offsetList ) 0056 { 0057 unsigned numTracks = cdInfo.numberOfTracks(); 0058 0059 diskData_ += QLatin1String( "# xmcd\n" ); 0060 diskData_ += QLatin1String( "#\n" ); 0061 diskData_ += QLatin1String( "# Track frame offsets:\n" ); 0062 0063 for (uint i=0; i < numTracks; i++) 0064 diskData_ += QString::fromLatin1("#\t%1\n").arg(offsetList[i]); 0065 0066 int l = offsetList[numTracks]/75; 0067 diskData_ += QString::fromLatin1("# Disc length: %1 seconds\n").arg(l); 0068 0069 diskData_ += cdInfo.toString(true); 0070 0071 qCDebug(LIBKCDDB) << "diskData_ == " << diskData_; 0072 } 0073 0074 bool Submit::validCategory( const QString& c ) 0075 { 0076 QStringList validCategories; 0077 validCategories << QLatin1String( "blues" ) << QLatin1String( "classical" ) << QLatin1String( "country" ) 0078 << QLatin1String( "data" ) << QLatin1String( "folk" ) << QLatin1String( "jazz" ) << QLatin1String( "misc" ) << QLatin1String( "newage" ) << QLatin1String( "reggae" ) 0079 << QLatin1String( "rock" ) << QLatin1String( "soundtrack" ); 0080 0081 if (validCategories.contains(c)) 0082 return true; 0083 else 0084 return false; 0085 } 0086 } 0087 0088 // vim:tabstop=2:shiftwidth=2:expandtab:cinoptions=(s,U1,m1