kpod-devel Mailing List for kpod (Page 3)
Status: Beta
Brought to you by:
fry26
You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(16) |
Dec
(21) |
2006 |
Jan
(10) |
Feb
(77) |
Mar
(91) |
Apr
(55) |
May
(59) |
Jun
(61) |
Jul
(63) |
Aug
(18) |
Sep
|
Oct
(3) |
Nov
(3) |
Dec
|
2007 |
Jan
|
Feb
(10) |
Mar
(4) |
Apr
(7) |
May
(4) |
Jun
(18) |
Jul
(9) |
Aug
(5) |
Sep
(10) |
Oct
(50) |
Nov
(62) |
Dec
(102) |
2008 |
Jan
(18) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Michael S. <fr...@us...> - 2007-12-17 23:14:19
|
Update of /cvsroot/kpod/ipodslave In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv17317 Modified Files: configure.in.in Log Message: adopted libqtpod-0.4.2 Index: configure.in.in =================================================================== RCS file: /cvsroot/kpod/ipodslave/configure.in.in,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** configure.in.in 17 Dec 2007 21:32:53 -0000 1.27 --- configure.in.in 17 Dec 2007 23:14:21 -0000 1.28 *************** *** 13,24 **** LDFLAGS=-lqtpod AC_LINK_IFELSE([ ! namespace itunesdb { ! enum ItemProperty {i}; ! char isStringPorperty(ItemProperty); ! } int main() { ! return itunesdb::isStringPorperty(itunesdb::i); } ! ], , AC_MSG_ERROR([*** libqtpod >= 0.4.1 not found.]), -lstdc++) CPPFLAGS=$QT_INCLUDES --- 13,25 ---- LDFLAGS=-lqtpod AC_LINK_IFELSE([ ! struct QFile{}; ! struct QString{}; ! int compatibleWith( QFile&, QString& ); int main() { ! QFile file; ! QString string; ! return compatibleWith( file, string ) ? 1 : 0; } ! ], , AC_MSG_ERROR([*** libqtpod >= 0.4.2 not found.]), -lstdc++) CPPFLAGS=$QT_INCLUDES |
From: Michael S. <fr...@us...> - 2007-12-17 21:33:15
|
Update of /cvsroot/kpod/ipodslave In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv8588 Modified Files: subdirs Log Message: removed unneeded dirs Index: subdirs =================================================================== RCS file: /cvsroot/kpod/ipodslave/subdirs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** subdirs 8 Jul 2006 15:28:27 -0000 1.7 --- subdirs 17 Dec 2007 21:33:18 -0000 1.8 *************** *** 1,3 **** - doc - po src --- 1 ---- |
From: Michael S. <fr...@us...> - 2007-12-17 21:32:55
|
Update of /cvsroot/kpod/ipodslave In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv8215 Modified Files: configure.in.in Log Message: new version number Index: configure.in.in =================================================================== RCS file: /cvsroot/kpod/ipodslave/configure.in.in,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** configure.in.in 11 Dec 2007 21:16:20 -0000 1.26 --- configure.in.in 17 Dec 2007 21:32:53 -0000 1.27 *************** *** 1,5 **** #MIN_CONFIG(3.0.0) ! AM_INIT_AUTOMAKE(ipodslave, 0.8-pre2) AC_C_BIGENDIAN --- 1,5 ---- #MIN_CONFIG(3.0.0) ! AM_INIT_AUTOMAKE(ipodslave, 0.8-pre3) AC_C_BIGENDIAN |
From: Michael S. <fr...@us...> - 2007-12-17 21:06:21
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv30011/src Modified Files: itunesdb.h itunesdb_rw.cpp itunesdb.cpp ipod.cpp Log Message: latest compile fixes Index: itunesdb.h =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb.h,v retrieving revision 1.82 retrieving revision 1.83 diff -C2 -d -r1.82 -r1.83 *** itunesdb.h 17 Dec 2007 20:18:53 -0000 1.82 --- itunesdb.h 17 Dec 2007 21:06:17 -0000 1.83 *************** *** 296,299 **** --- 296,305 ---- /** + * Returns the last error occured during read/write + * @return the last error occured during read/write + */ + const QString& getLastError() const { return m_error; } + + /** * @brief Opens the itunesdb file at the given ipod mountpoint * @return true if the itunesdb does exist and could be opened. For parse errors check the error member afterwards Index: itunesdb_rw.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb_rw.cpp,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** itunesdb_rw.cpp 17 Dec 2007 20:43:12 -0000 1.35 --- itunesdb_rw.cpp 17 Dec 2007 21:06:17 -0000 1.36 *************** *** 188,192 **** virtual void handleError(const QString &message) { ! m_itunesdb.error = message; } --- 188,192 ---- virtual void handleError(const QString &message) { ! m_itunesdb.m_error = message; } *************** *** 241,245 **** bool ITunesDB::open() { ! error = NullQString; mDoDirtyFlagHandling = false; --- 241,245 ---- bool ITunesDB::open() { ! m_error = NullQString; mDoDirtyFlagHandling = false; *************** *** 494,498 **** // cleanups ! error = NullQString; // reset error msg // remove undefined/somehow_messed_up tracklist items --- 494,498 ---- // cleanups ! m_error = NullQString; // reset error msg // remove undefined/somehow_messed_up tracklist items *************** *** 509,513 **** QString itunesdb_backupname = outfileInfo.fileName() + ".bak"; if ( outfile.exists() ) { ! if ( !compatibleWith( outfile, error ) ) { return false; } --- 509,513 ---- QString itunesdb_backupname = outfileInfo.fileName() + ".bak"; if ( outfile.exists() ) { ! if ( !compatibleWith( outfile, m_error ) ) { return false; } *************** *** 522,526 **** writer.write( outfile ); ITunesDB newDB( outfile.name() ); ! if ( !source.writeSuccessful() || ( filename.isEmpty() && !isDBConsistent( *this, newDB, error ) ) ) { // restore backup dir.remove( outfileInfo.fileName() ); --- 522,526 ---- writer.write( outfile ); ITunesDB newDB( outfile.name() ); ! if ( !source.writeSuccessful() || ( filename.isEmpty() && !isDBConsistent( *this, newDB, m_error ) ) ) { // restore backup dir.remove( outfileInfo.fileName() ); *************** *** 557,561 **** writer.writeSD( outfilesd ); ! error = source.errorMsg; if ( filename.isEmpty() ) { setDirty( false ); // container is in sync with the database now --- 557,561 ---- writer.writeSD( outfilesd ); ! m_error = source.errorMsg; if ( filename.isEmpty() ) { setDirty( false ); // container is in sync with the database now Index: itunesdb.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb.cpp,v retrieving revision 1.109 retrieving revision 1.110 diff -C2 -d -r1.109 -r1.110 *** itunesdb.cpp 17 Dec 2007 20:37:56 -0000 1.109 --- itunesdb.cpp 17 Dec 2007 21:06:17 -0000 1.110 *************** *** 461,465 **** QString lerror; ! if ( !compatibleWith( itunesdbfile, lerror ) ) { return false; } --- 461,465 ---- QString lerror; ! if ( !compatibleWith( m_itunesdbfile, lerror ) ) { return false; } Index: ipod.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/ipod.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** ipod.cpp 17 Dec 2007 20:36:09 -0000 1.13 --- ipod.cpp 17 Dec 2007 21:06:18 -0000 1.14 *************** *** 122,126 **** const QString& IPod::getItunesDBError() const { ! return m_itunesdb.error; } --- 122,126 ---- const QString& IPod::getItunesDBError() const { ! return m_itunesdb.getLastError(); } |
From: Michael S. <fr...@us...> - 2007-12-17 20:46:33
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv21992/src Modified Files: Tag: branch_0_4 itunesdb_rw.cpp Log Message: only close file if it wasn't open in compatibleWith Index: itunesdb_rw.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb_rw.cpp,v retrieving revision 1.28.2.3 retrieving revision 1.28.2.4 diff -C2 -d -r1.28.2.3 -r1.28.2.4 *** itunesdb_rw.cpp 17 Dec 2007 20:16:50 -0000 1.28.2.3 --- itunesdb_rw.cpp 17 Dec 2007 20:46:35 -0000 1.28.2.4 *************** *** 480,484 **** bool compatibleWith( QFile& oldItunesDBFile, QString& perror ) { Q_UINT32 needsHash; ! if ( !oldItunesDBFile.isOpen() && !oldItunesDBFile.open( IO_ReadOnly ) ) { perror = "Couldn't check itunesdbfile."; return true; // not possible to check - ignore and overwrite --- 480,485 ---- bool compatibleWith( QFile& oldItunesDBFile, QString& perror ) { Q_UINT32 needsHash; ! bool wasOpen = oldItunesDBFile.isOpen(); ! if ( !wasOpen && !oldItunesDBFile.open( IO_ReadOnly ) ) { perror = "Couldn't check itunesdbfile."; return true; // not possible to check - ignore and overwrite *************** *** 490,494 **** } ! oldItunesDBFile.close(); return !needsHash; --- 491,497 ---- } ! if ( !wasOpen ) { ! oldItunesDBFile.close(); ! } return !needsHash; |
From: Michael S. <fr...@us...> - 2007-12-17 20:43:10
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv20806/src Modified Files: itunesdb_rw.cpp Log Message: merged fixes for compatibleWith Index: itunesdb_rw.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb_rw.cpp,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** itunesdb_rw.cpp 17 Dec 2007 20:39:13 -0000 1.34 --- itunesdb_rw.cpp 17 Dec 2007 20:43:12 -0000 1.35 *************** *** 467,485 **** // TODO hav a read only flag on the iTunesDB so we cannot change it ! inline bool compatibleWith( QFile& oldItunesDBFile, QString& error ) { Q_UINT32 needsHash; ! if ( !oldItunesDBFile.open( IO_ReadOnly ) ) { return true; // not possible to check - ignore and overwrite } ! QDataStream stream( &oldItunesDBFile ); ! stream.setByteOrder( QDataStream::LittleEndian ); ! ! itunesdb::utils::seekRelative( stream, 48 ); ! stream >> needsHash; if ( needsHash ) { ! error = "This version of libqtpod doesn't support writing the itunesdb hash value."; } ! oldItunesDBFile.close(); return !needsHash; --- 467,486 ---- // TODO hav a read only flag on the iTunesDB so we cannot change it ! bool compatibleWith( QFile& oldItunesDBFile, QString& perror ) { Q_UINT32 needsHash; ! bool wasOpen = oldItunesDBFile.isOpen(); ! if ( !wasOpen && !oldItunesDBFile.open( IO_ReadOnly ) ) { ! perror = "Couldn't check itunesdbfile."; return true; // not possible to check - ignore and overwrite } ! oldItunesDBFile.at( 48 ); ! needsHash = oldItunesDBFile.getch(); if ( needsHash ) { ! perror = "This version of libqtpod doesn't support writing the itunesdb hash value."; } ! if ( !wasOpen ) { ! oldItunesDBFile.close(); ! } return !needsHash; |
From: Michael S. <fr...@us...> - 2007-12-17 20:39:10
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv19218/src Modified Files: itunesdb_rw.cpp Log Message: parameter naming Index: itunesdb_rw.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb_rw.cpp,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** itunesdb_rw.cpp 17 Dec 2007 20:18:01 -0000 1.33 --- itunesdb_rw.cpp 17 Dec 2007 20:39:13 -0000 1.34 *************** *** 422,438 **** // check if the new written ITunesDB file is consistent with the given database ! inline bool isDBConsistent( const ITunesDB& origDB, ITunesDB& newDB, QString& error ) { if ( !newDB.open() ) { ! error = "DB Consistency Check: could not read DB."; return false; } if ( newDB.getTitle() != origDB.getTitle() ) { ! error = "DB Consistency Check: Title doesn't match."; return false; } if ( newDB.getNumTracks() != origDB.getNumTracks() ) { ! error = "DB Consistency Check: Number of tracks differs."; return false; } --- 422,438 ---- // check if the new written ITunesDB file is consistent with the given database ! inline bool isDBConsistent( const ITunesDB& origDB, ITunesDB& newDB, QString& perror ) { if ( !newDB.open() ) { ! perror = "DB Consistency Check: could not read DB."; return false; } if ( newDB.getTitle() != origDB.getTitle() ) { ! perror = "DB Consistency Check: Title doesn't match."; return false; } if ( newDB.getNumTracks() != origDB.getNumTracks() ) { ! perror = "DB Consistency Check: Number of tracks differs."; return false; } *************** *** 448,456 **** Track * origTrack = origTrackIter.next(); if ( newTrack->getID() != origTrack->getID() ) { ! error = "DB Consistency Check: Track order differs."; return false; } if ( newTrack->getNumComponents() != origTrack->getNumComponents() ) { ! error = QString( "DB Consistency Check: Track metadata differs for track %1 - %2 - %3." ) .arg( origTrack->getArtist() ).arg( origTrack->getAlbum() ).arg( origTrack->getTitle() ); return false; --- 448,456 ---- Track * origTrack = origTrackIter.next(); if ( newTrack->getID() != origTrack->getID() ) { ! perror = "DB Consistency Check: Track order differs."; return false; } if ( newTrack->getNumComponents() != origTrack->getNumComponents() ) { ! perror = QString( "DB Consistency Check: Track metadata differs for track %1 - %2 - %3." ) .arg( origTrack->getArtist() ).arg( origTrack->getAlbum() ).arg( origTrack->getTitle() ); return false; *************** *** 459,463 **** if ( newDB.getNumPlaylists() != origDB.getNumPlaylists() ) { ! error = "DB Consistency Check: Number of playlists differs."; return false; } --- 459,463 ---- if ( newDB.getNumPlaylists() != origDB.getNumPlaylists() ) { ! perror = "DB Consistency Check: Number of playlists differs."; return false; } |
From: Michael S. <fr...@us...> - 2007-12-17 20:38:13
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv18462/src Modified Files: itunesdb.cpp Log Message: compatibleWith checks for addTrack Index: itunesdb.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb.cpp,v retrieving revision 1.108 retrieving revision 1.109 diff -C2 -d -r1.108 -r1.109 *** itunesdb.cpp 17 Dec 2007 20:18:53 -0000 1.108 --- itunesdb.cpp 17 Dec 2007 20:37:56 -0000 1.109 *************** *** 444,447 **** --- 444,448 ---- } + bool compatibleWith( QFile& oldItunesDBFile, QString& error ); bool ITunesDB::addTrack( ITunesDBTrack * track ) { *************** *** 458,461 **** --- 459,467 ---- return false; } + + QString lerror; + if ( !compatibleWith( itunesdbfile, lerror ) ) { + return false; + } if ( !insertTrackToDataBase( track ) ) { |
From: Michael S. <fr...@us...> - 2007-12-17 20:37:28
|
Update of /cvsroot/kpod/libqtpod/tests In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv18421/tests Modified Files: addtracktest.cpp Log Message: checks if the track could be added to the DB Index: addtracktest.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/tests/addtracktest.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** addtracktest.cpp 16 Dec 2007 16:33:11 -0000 1.7 --- addtracktest.cpp 17 Dec 2007 20:37:24 -0000 1.8 *************** *** 45,49 **** printf( "track found %s\n", track->getTitle().ascii() ); new_trk->readFrom( *track ); ! delete new_trk; } else { printf( "Couldn't check - no track found\n" ); --- 45,52 ---- printf( "track found %s\n", track->getTitle().ascii() ); new_trk->readFrom( *track ); ! if ( !itunesdb.addTrack( new_trk ) ) { ! printf( "Couldn't add track to database.\n" ); ! delete new_trk; ! } } else { printf( "Couldn't check - no track found\n" ); |
From: Michael S. <fr...@us...> - 2007-12-17 20:36:49
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv18037/src Modified Files: itunesdbwriter.cpp Log Message: merged in stream unsetDevice() from branch Index: itunesdbwriter.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdbwriter.cpp,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** itunesdbwriter.cpp 14 Dec 2007 12:15:02 -0000 1.20 --- itunesdbwriter.cpp 17 Dec 2007 20:36:51 -0000 1.21 *************** *** 100,110 **** file.at( 8); stream << (Q_UINT32) file.size(); ! file.flush(); ! #ifdef WIN32 FlushFileBuffers( (HANDLE)file.handle() ); #else fsync( file.handle() ); #endif file.close(); --- 100,113 ---- file.at( 8); stream << (Q_UINT32) file.size(); ! ! stream.unsetDevice(); file.flush(); ! ! #ifdef WIN32 FlushFileBuffers( (HANDLE)file.handle() ); #else fsync( file.handle() ); #endif + file.close(); |
From: Michael S. <fr...@us...> - 2007-12-17 20:36:09
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv17960/src Modified Files: ipod.cpp Log Message: merged in case insensitivity for F??/f?? musicdirs Index: ipod.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/ipod.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** ipod.cpp 16 Dec 2007 16:33:11 -0000 1.12 --- ipod.cpp 17 Dec 2007 20:36:09 -0000 1.13 *************** *** 188,192 **** if ( elements.count() > 3 ) { QDir musicDir( m_sysInfo.getMusicDir() ); ! musicDir.cd( elements[ 2 ] ); #if 0 printf( "file directory is %s\n", musicDir.absolutePath().ascii() ); --- 188,194 ---- if ( elements.count() > 3 ) { QDir musicDir( m_sysInfo.getMusicDir() ); ! if ( !musicDir.cd( elements[ 2 ] ) && !musicDir.cd( elements[ 2 ].lower() ) ) { ! musicDir.cd( elements[ 2 ].upper() ); ! } #if 0 printf( "file directory is %s\n", musicDir.absolutePath().ascii() ); |
From: Michael S. <fr...@us...> - 2007-12-17 20:18:54
|
Update of /cvsroot/kpod/libqtpod/src/.tmp In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv10783/src/.tmp Log Message: Directory /cvsroot/kpod/libqtpod/src/.tmp added to the repository |
From: Michael S. <fr...@us...> - 2007-12-17 20:18:51
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv10792/src Modified Files: itunesdb.h itunesdb.cpp Log Message: stuff Index: itunesdb.h =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb.h,v retrieving revision 1.81 retrieving revision 1.82 diff -C2 -d -r1.81 -r1.82 *** itunesdb.h 16 Dec 2007 16:33:10 -0000 1.81 --- itunesdb.h 17 Dec 2007 20:18:53 -0000 1.82 *************** *** 260,263 **** --- 260,265 ---- uint mInternalVersion; + QString m_error; + // TODO implement shared PImpl thus making it copyable *************** *** 287,291 **** typedef FilteredTrackConstIterator<> TrackConstIterator; ! QString error; ITunesDB( const QString& filepath ); --- 289,293 ---- typedef FilteredTrackConstIterator<> TrackConstIterator; ! ITunesDB( IPodSysInfo& ipodSysInfo ); ITunesDB( const QString& filepath ); *************** *** 355,358 **** --- 357,361 ---- * via addTrack() thus a call to addTrack() has to be done afterwards. * @param fileExtension file extension of the file representing the track. If you don't know the file extension yet leave empty and set it with Track::setFileExtension() later + * @return a pointer to the new track or NULL if the track could not be created */ ITunesDBTrack * createNewTrack(); *************** *** 742,748 **** QFile m_itunessdfile; QDateTime m_timestamp; ! bool m_hasPodcastsFlag; bool m_locked; }; --- 745,752 ---- QFile m_itunessdfile; QDateTime m_timestamp; ! bool m_hasPodcastsFlag; bool m_locked; + bool m_readonly; }; Index: itunesdb.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb.cpp,v retrieving revision 1.107 retrieving revision 1.108 diff -C2 -d -r1.107 -r1.108 *** itunesdb.cpp 16 Dec 2007 16:33:10 -0000 1.107 --- itunesdb.cpp 17 Dec 2007 20:18:53 -0000 1.108 *************** *** 378,381 **** --- 378,394 ---- + ITunesDB::ITunesDB( IPodSysInfo& ipodSysInfo ) : + mInternalVersion( 0 ), + m_playlists( new PlaylistContainer() ), + maxtrackid( 0x7E ), + mMaxDBID( 0 ), + m_hasPodcastsFlag( false ), + m_locked( false ) + { + m_itunesdbfile.setName( ipodSysInfo.getIPodControlDirName() + "/iTunes/iTunesDB" ); + m_itunessdfile.setName( ipodSysInfo.getIPodControlDirName() + "/iTunes/" + ITUNESSD ); + } + + ITunesDB::~ITunesDB() { |
From: Michael S. <fr...@us...> - 2007-12-17 20:17:59
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv10408/src Modified Files: itunesdb_rw.cpp Log Message: string format fixes Index: itunesdb_rw.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb_rw.cpp,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** itunesdb_rw.cpp 16 Dec 2007 16:33:10 -0000 1.32 --- itunesdb_rw.cpp 17 Dec 2007 20:18:01 -0000 1.33 *************** *** 452,456 **** } if ( newTrack->getNumComponents() != origTrack->getNumComponents() ) { ! error = QString( "DB Consistency Check: Track metadata differs for track $1 - $2 - $3." ) .arg( origTrack->getArtist() ).arg( origTrack->getAlbum() ).arg( origTrack->getTitle() ); return false; --- 452,456 ---- } if ( newTrack->getNumComponents() != origTrack->getNumComponents() ) { ! error = QString( "DB Consistency Check: Track metadata differs for track %1 - %2 - %3." ) .arg( origTrack->getArtist() ).arg( origTrack->getAlbum() ).arg( origTrack->getTitle() ); return false; |
From: Michael S. <fr...@us...> - 2007-12-17 20:17:27
|
Update of /cvsroot/kpod/libqtpod/tests In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv10302/tests Modified Files: Tag: branch_0_4 addtracktest.cpp Log Message: checks if the db file is compatible with this software version Index: addtracktest.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/tests/addtracktest.cpp,v retrieving revision 1.6 retrieving revision 1.6.2.1 diff -C2 -d -r1.6 -r1.6.2.1 *** addtracktest.cpp 10 Dec 2007 10:26:32 -0000 1.6 --- addtracktest.cpp 17 Dec 2007 20:17:10 -0000 1.6.2.1 *************** *** 44,48 **** printf( "track found %s\n", track->getTitle().ascii() ); new_trk->readFrom( *track ); ! delete new_trk; } else { printf( "Couldn't check - no track found\n" ); --- 44,51 ---- printf( "track found %s\n", track->getTitle().ascii() ); new_trk->readFrom( *track ); ! if ( !itunesdb.addTrack( new_trk ) ) { ! printf( "Couldn't add track to database.\n" ); ! delete new_trk; ! } } else { printf( "Couldn't check - no track found\n" ); |
From: Michael S. <fr...@us...> - 2007-12-17 20:16:49
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv9990/src Modified Files: Tag: branch_0_4 itunesdbwriter.cpp itunesdb.cpp itunesdb_rw.cpp Log Message: checks if the db file is compatible with this software version Index: itunesdbwriter.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdbwriter.cpp,v retrieving revision 1.19 retrieving revision 1.19.2.1 diff -C2 -d -r1.19 -r1.19.2.1 *** itunesdbwriter.cpp 8 Nov 2007 09:40:42 -0000 1.19 --- itunesdbwriter.cpp 17 Dec 2007 20:16:50 -0000 1.19.2.1 *************** *** 99,109 **** file.at( 8); stream << (Q_UINT32) file.size(); ! file.flush(); ! #ifdef WIN32 FlushFileBuffers( (HANDLE)file.handle() ); #else fsync( file.handle() ); #endif file.close(); --- 99,112 ---- file.at( 8); stream << (Q_UINT32) file.size(); ! ! stream.unsetDevice(); file.flush(); ! ! #ifdef WIN32 FlushFileBuffers( (HANDLE)file.handle() ); #else fsync( file.handle() ); #endif + file.close(); Index: itunesdb_rw.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb_rw.cpp,v retrieving revision 1.28.2.2 retrieving revision 1.28.2.3 diff -C2 -d -r1.28.2.2 -r1.28.2.3 *** itunesdb_rw.cpp 16 Dec 2007 14:18:08 -0000 1.28.2.2 --- itunesdb_rw.cpp 17 Dec 2007 20:16:50 -0000 1.28.2.3 *************** *** 433,449 **** // check if the new written ITunesDB file is consistent with the given database ! inline bool isDBConsistent( const ITunesDB& origDB, ITunesDB& newDB, QString& error ) { if ( !newDB.open() ) { ! error = "DB Consistency Check: could not read DB."; return false; } if ( newDB.getTitle() != origDB.getTitle() ) { ! error = "DB Consistency Check: Title doesn't match."; return false; } if ( newDB.getNumTracks() != origDB.getNumTracks() ) { ! error = "DB Consistency Check: Number of tracks differs."; return false; } --- 433,449 ---- // check if the new written ITunesDB file is consistent with the given database ! inline bool isDBConsistent( const ITunesDB& origDB, ITunesDB& newDB, QString& perror ) { if ( !newDB.open() ) { ! perror = "DB Consistency Check: could not read DB."; return false; } if ( newDB.getTitle() != origDB.getTitle() ) { ! perror = "DB Consistency Check: Title doesn't match."; return false; } if ( newDB.getNumTracks() != origDB.getNumTracks() ) { ! perror = "DB Consistency Check: Number of tracks differs."; return false; } *************** *** 459,467 **** Track * origTrack = origTrackIter.next(); if ( newTrack->getID() != origTrack->getID() ) { ! error = "DB Consistency Check: Track order differs."; return false; } if ( newTrack->getNumComponents() != origTrack->getNumComponents() ) { ! error = QString( "DB Consistency Check: Track metadata differs for track $1 - $2 - $3." ) .arg( origTrack->getArtist() ).arg( origTrack->getAlbum() ).arg( origTrack->getTitle() ); return false; --- 459,467 ---- Track * origTrack = origTrackIter.next(); if ( newTrack->getID() != origTrack->getID() ) { ! perror = "DB Consistency Check: Track order differs."; return false; } if ( newTrack->getNumComponents() != origTrack->getNumComponents() ) { ! perror = QString( "DB Consistency Check: Track metadata differs for track $1 - $2 - $3." ) .arg( origTrack->getArtist() ).arg( origTrack->getAlbum() ).arg( origTrack->getTitle() ); return false; *************** *** 470,474 **** if ( newDB.getNumPlaylists() != origDB.getNumPlaylists() ) { ! error = "DB Consistency Check: Number of playlists differs."; return false; } --- 470,474 ---- if ( newDB.getNumPlaylists() != origDB.getNumPlaylists() ) { ! perror = "DB Consistency Check: Number of playlists differs."; return false; } *************** *** 478,493 **** // TODO hav a read only flag on the iTunesDB so we cannot change it ! inline bool compatibleWith( QFile& oldItunesDBFile, QString& error ) { Q_UINT32 needsHash; ! if ( !oldItunesDBFile.open( IO_ReadOnly ) ) { return true; // not possible to check - ignore and overwrite } ! QDataStream stream( &oldItunesDBFile ); ! stream.setByteOrder( QDataStream::LittleEndian ); ! ! itunesdb::utils::seekRelative( stream, 48 ); ! stream >> needsHash; if ( needsHash ) { ! error = "This version of libqtpod doesn't support writing the itunesdb hash value."; } --- 478,491 ---- // TODO hav a read only flag on the iTunesDB so we cannot change it ! bool compatibleWith( QFile& oldItunesDBFile, QString& perror ) { Q_UINT32 needsHash; ! if ( !oldItunesDBFile.isOpen() && !oldItunesDBFile.open( IO_ReadOnly ) ) { ! perror = "Couldn't check itunesdbfile."; return true; // not possible to check - ignore and overwrite } ! oldItunesDBFile.at( 48 ); ! needsHash = oldItunesDBFile.getch(); if ( needsHash ) { ! perror = "This version of libqtpod doesn't support writing the itunesdb hash value."; } Index: itunesdb.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb.cpp,v retrieving revision 1.106 retrieving revision 1.106.2.1 diff -C2 -d -r1.106 -r1.106.2.1 *** itunesdb.cpp 8 Dec 2007 15:00:09 -0000 1.106 --- itunesdb.cpp 17 Dec 2007 20:16:50 -0000 1.106.2.1 *************** *** 446,449 **** --- 446,450 ---- } + bool compatibleWith( QFile& oldItunesDBFile, QString& error ); bool ITunesDB::addTrack( ITunesDBTrack * track ) { *************** *** 460,463 **** --- 461,469 ---- return false; } + + QString lerror; + if ( !compatibleWith( itunesdbfile, lerror ) ) { + return false; + } if ( !insertTrackToDataBase( track ) ) { *************** *** 1028,1032 **** if ( elements.count() > 3 ) { QDir musicDir( m_ipodSysInfo.getMusicDir() ); ! musicDir.cd( elements[ 2 ] ); #if 0 printf( "file directory is %s\n", musicDir.absolutePath().ascii() ); --- 1034,1040 ---- if ( elements.count() > 3 ) { QDir musicDir( m_ipodSysInfo.getMusicDir() ); ! if ( !musicDir.cd( elements[ 2 ] ) && !musicDir.cd( elements[ 2 ].lower() ) ) { ! musicDir.cd( elements[ 2 ].upper() ); ! } #if 0 printf( "file directory is %s\n", musicDir.absolutePath().ascii() ); |
From: Michael S. <fr...@us...> - 2007-12-16 16:33:22
|
Update of /cvsroot/kpod/libqtpod/tests In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv2225/tests Modified Files: addtracktest.cpp listtrackstest.cpp Log Message: code cleanups Index: listtrackstest.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/tests/listtrackstest.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** listtrackstest.cpp 6 Nov 2007 08:35:52 -0000 1.8 --- listtrackstest.cpp 16 Dec 2007 16:33:11 -0000 1.9 *************** *** 39,43 **** while( iter.hasNext() ) { Track * track = iter.next(); ! printf( "%s\t%s\t%s\t%s\n", track->getArtist().ascii(), track->getAlbum().ascii(), track->getTitle().ascii(), itunesdb.getFileForPathInfo( track->getPathInfo() ).ascii() ); } --- 39,43 ---- while( iter.hasNext() ) { Track * track = iter.next(); ! printf( "%s\t%s\t%s\t%s\n", track->getArtist().ascii(), track->getAlbum().ascii(), track->getTitle().ascii(), ipod->getFileForPathInfo( track->getPathInfo() ).ascii() ); } Index: addtracktest.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/tests/addtracktest.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** addtracktest.cpp 10 Dec 2007 10:26:32 -0000 1.6 --- addtracktest.cpp 16 Dec 2007 16:33:11 -0000 1.7 *************** *** 35,40 **** printf( "creating new track\n" ); ! ITunesDBTrack * new_trk = itunesdb.createNewTrack( ".mp3" ); ! printf( "created new track for path %s\n", new_trk->getFilePath().ascii() ); itunesdb::TrackPredicates::Contains finder( "e", false ); --- 35,41 ---- printf( "creating new track\n" ); ! ITunesDBTrack * new_trk = itunesdb.createNewTrack(); ! new_trk->setPathInfo( ipod->findNewTrackPathInfo( new_trk->getID(), ".mp3" ) ); ! printf( "created new track for path %s\n", ipod->getFileForPathInfo( new_trk->getPathInfo() ).ascii() ); itunesdb::TrackPredicates::Contains finder( "e", false ); |
From: Michael S. <fr...@us...> - 2007-12-16 16:33:12
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv2225/src Modified Files: itunesdb.h itunesdb_rw.cpp ipodsysinfo.cpp utils.h itunesdb.cpp src.pro ipodsysinfo.h ipod.h ipod.cpp Log Message: code cleanups Index: ipod.h =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/ipod.h,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** ipod.h 28 Nov 2007 01:57:15 -0000 1.15 --- ipod.h 16 Dec 2007 16:33:11 -0000 1.16 *************** *** 279,282 **** --- 279,301 ---- /** + * finds the first track filename for the given trackid. + * the track filename will be formed like<br> + * kpod[decimal encoded ID]<br> + * the file extension needs to be added later + */ + QString findNewTrackPathInfo( Q_UINT32 id, const QString& fileExtension = QString::null ) { return m_sysInfo.findNewTrackPathInfo( id, fileExtension ); } + + /** + * @brief Returns the fully qualified path for the given ipod path information + * + * Translates the pathinfo stored on the ipod to a real path info and adds the + * ipodBase path so we can access the real file. The caller needs to check if + * the file actually exists. + * @param pathinfo the path property in database items + * @return the path pointing to the file. + */ + QString getFileForPathInfo( QString pathinfo ) const; + + /** * @brief Finds all the files in the Music folders that don't have a track record * Index: ipodsysinfo.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/ipodsysinfo.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** ipodsysinfo.cpp 15 Dec 2007 19:11:56 -0000 1.14 --- ipodsysinfo.cpp 16 Dec 2007 16:33:10 -0000 1.15 *************** *** 111,115 **** ! QString IPodSysInfo::findNewTrackFileName( Q_UINT32 id ) { QString dirName = m_musicDir[ id % m_numTrackFileDirs ]; --- 111,115 ---- ! QString IPodSysInfo::findNewTrackPathInfo( Q_UINT32 id, const QString& fileExtension ) { QString dirName = m_musicDir[ id % m_numTrackFileDirs ]; *************** *** 134,138 **** QString trackpath; trackpath.sprintf( ":iPod_Control:Music:%s:%s", dirName.ascii(), ! ( "kpod" + QString::number( id ) + subIDstr ).ascii()); return trackpath; --- 134,138 ---- QString trackpath; trackpath.sprintf( ":iPod_Control:Music:%s:%s", dirName.ascii(), ! ( "kpod" + QString::number( id ) + subIDstr + fileExtension ).ascii()); return trackpath; Index: itunesdb_rw.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb_rw.cpp,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** itunesdb_rw.cpp 16 Dec 2007 14:26:40 -0000 1.31 --- itunesdb_rw.cpp 16 Dec 2007 16:33:10 -0000 1.32 *************** *** 28,33 **** #include "itunesdbdatasource.h" - #define ITUNESSD "iTunesSD" - using namespace itunesdb; --- 28,31 ---- *************** *** 176,180 **** if ( m_currentDataSet != 2 || playlist->containsItemProperty( MHOD_PLAYLIST ) ) { ! m_itunesdb.hasPodcastsFlag |= playlist->getNumTracks() && playlist->isPodcastList(); --- 174,178 ---- if ( m_currentDataSet != 2 || playlist->containsItemProperty( MHOD_PLAYLIST ) ) { ! m_itunesdb.m_hasPodcastsFlag |= playlist->getNumTracks() && playlist->isPodcastList(); *************** *** 249,263 **** maxtrackid = 0; // be sure to get the lowest possible trackid given - QString itunesDir( m_ipodSysInfo.getDeviceMountpoint() + "/iPod_Control/iTunes/" ); - - itunesdbfile.setName( itunesDir + "iTunesDB" ); - itunessdfile.setName( itunesDir + ITUNESSD ); - ItunesDBReaderAdapter listener( *this ); ItunesDBParser parser( listener ); ! if( itunesdbfile.exists() ) { ! parser.parse( itunesdbfile ); ! timestamp = QFileInfo( itunesdbfile ).lastModified(); } else { return false; --- 247,256 ---- maxtrackid = 0; // be sure to get the lowest possible trackid given ItunesDBReaderAdapter listener( *this ); ItunesDBParser parser( listener ); ! if( m_itunesdbfile.exists() ) { ! parser.parse( m_itunesdbfile ); ! m_timestamp = QFileInfo( m_itunesdbfile ).lastModified(); } else { return false; *************** *** 313,317 **** mDoDirtyFlagHandling = true; ! QDir dir( itunesDir ); dir.setNameFilter( "OTGPlaylistInfo*" ); for ( unsigned int i = 0; i < dir.count(); i++ ) { --- 306,312 ---- mDoDirtyFlagHandling = true; ! QDir dir( QFileInfo( m_itunesdbfile ).dir() ); ! QFile playcounts ( absoluteFilePathQT43compat( dir, "Play Counts" ) ); ! dir.setNameFilter( "OTGPlaylistInfo*" ); for ( unsigned int i = 0; i < dir.count(); i++ ) { *************** *** 322,328 **** } ! QFile myfile ( itunesDir + "Play Counts" ); ! if (myfile.exists()) { ! parser.parsePlaycount( myfile ); ITunesDBPlaylist * recentlyPlayed = listener.m_recentlyPlayed; --- 317,322 ---- } ! if ( playcounts.exists() ) { ! parser.parsePlaycount( playcounts ); ITunesDBPlaylist * recentlyPlayed = listener.m_recentlyPlayed; *************** *** 426,434 **** }; - #if QT_VERSION >= 0x040000 - #define absoluteFilePathQT43(dir, file) (dir.absoluteFilePath(file)) - #else - #define absoluteFilePathQT43(dir, file) (dir.absFilePath(file)) - #endif // check if the new written ITunesDB file is consistent with the given database --- 420,423 ---- *************** *** 500,504 **** QFile outfile( filename ); if( filename.isEmpty() ) { ! outfile.setName( itunesdbfile.name() ); } --- 489,493 ---- QFile outfile( filename ); if( filename.isEmpty() ) { ! outfile.setName( m_itunesdbfile.name() ); } *************** *** 530,535 **** ItunesDBWriterAdapter source( *this ); ItunesDBWriter writer( source ); ! writer.write(outfile); ! ITunesDB newDB( m_ipodSysInfo ); if ( !source.writeSuccessful() || ( filename.isEmpty() && !isDBConsistent( *this, newDB, error ) ) ) { // restore backup --- 519,524 ---- ItunesDBWriterAdapter source( *this ); ItunesDBWriter writer( source ); ! writer.write( outfile ); ! ITunesDB newDB( outfile.name() ); if ( !source.writeSuccessful() || ( filename.isEmpty() && !isDBConsistent( *this, newDB, error ) ) ) { // restore backup *************** *** 552,558 **** // create a backup copy and write the ITunesSD file for ipod shuffle ! QString itunesSDname( QFileInfo( itunessdfile ).fileName() ); if ( itunesSDname.isEmpty() ) { ! itunesSDname = absoluteFilePathQT43( dir, ITUNESSD ); } if ( dir.exists( itunesSDname ) ) { --- 541,547 ---- // create a backup copy and write the ITunesSD file for ipod shuffle ! QString itunesSDname( QFileInfo( m_itunessdfile ).fileName() ); if ( itunesSDname.isEmpty() ) { ! itunesSDname = absoluteFilePathQT43compat( dir, ITUNESSD ); } if ( dir.exists( itunesSDname ) ) { Index: utils.h =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/utils.h,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -d -r1.54 -r1.55 *** utils.h 16 Dec 2007 12:40:44 -0000 1.54 --- utils.h 16 Dec 2007 16:33:10 -0000 1.55 *************** *** 46,52 **** --- 46,62 ---- #if QT_VERSION >= 0x040000 + static QString NullQString = QString(); + #define absolutePathQT43compat(dir) (dir.absolutePath()) + #define absoluteFilePathQT43compat(dir, file) (dir.absoluteFilePath(file)) + #define splitQStringQT43compat(string,delim) string.split( delim, QString::SkipEmptyParts ) + #else + #define NullQString QString::null + #define absolutePathQT43compat(dir) (dir.absPath()) + #define absoluteFilePathQT43compat(dir, file) (dir.absFilePath(file)) + #define splitQStringQT43compat(string,delim) QStringList::split( string, delim, false ) + #endif Index: ipodsysinfo.h =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/ipodsysinfo.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** ipodsysinfo.h 12 Nov 2007 23:03:09 -0000 1.13 --- ipodsysinfo.h 16 Dec 2007 16:33:11 -0000 1.14 *************** *** 139,143 **** * the file extension needs to be added later */ ! QString findNewTrackFileName( Q_UINT32 id ); private: --- 139,143 ---- * the file extension needs to be added later */ ! QString findNewTrackPathInfo( Q_UINT32 id, const QString& fileExtension = QString::null ); private: Index: itunesdb.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb.cpp,v retrieving revision 1.106 retrieving revision 1.107 diff -C2 -d -r1.106 -r1.107 *** itunesdb.cpp 8 Dec 2007 15:00:09 -0000 1.106 --- itunesdb.cpp 16 Dec 2007 16:33:10 -0000 1.107 *************** *** 303,311 **** - QString ITunesDBTrack::getFilePath() const { - return m_itunesdb.getFileForPathInfo( getPathInfo() ); - } - - void ITunesDBTrack::setDirty( bool dirtyFlag ) { itunesdb::Track::setDirty( dirtyFlag ); --- 303,306 ---- *************** *** 370,382 **** ! ITunesDB::ITunesDB( IPodSysInfo& ipodSysInfo ) : mInternalVersion( 0 ), m_playlists( new PlaylistContainer() ), maxtrackid( 0x7E ), mMaxDBID( 0 ), ! m_ipodSysInfo( ipodSysInfo ), ! hasPodcastsFlag( false ), ! locked( false ) { } --- 365,378 ---- ! ITunesDB::ITunesDB( const QString& filepath ) : mInternalVersion( 0 ), m_playlists( new PlaylistContainer() ), maxtrackid( 0x7E ), mMaxDBID( 0 ), ! m_hasPodcastsFlag( false ), ! m_locked( false ) { + m_itunesdbfile.setName( filepath ); + m_itunessdfile.setName( absoluteFilePathQT43compat( QFileInfo( m_itunesdbfile ).dir(), ITUNESSD ) ); } *************** *** 390,399 **** bool ITunesDB::isOpen() { ! return timestamp.isValid(); } bool ITunesDB::dbFileChanged() const { ! return !itunesdbfile.exists() || QFileInfo(itunesdbfile.name()).lastModified() != timestamp; } --- 386,395 ---- bool ITunesDB::isOpen() { ! return m_timestamp.isValid(); } bool ITunesDB::dbFileChanged() const { ! return !m_itunesdbfile.exists() || QFileInfo( m_itunesdbfile.name() ).lastModified() != m_timestamp; } *************** *** 423,427 **** ! ITunesDBTrack * ITunesDB::createNewTrack( const QString& fileExtension ) { Q_UINT32 trackid = getNextFreeTrackID(); #if 0 --- 419,423 ---- ! ITunesDBTrack * ITunesDB::createNewTrack() { Q_UINT32 trackid = getNextFreeTrackID(); #if 0 *************** *** 430,444 **** ITunesDBTrack * track = new ITunesDBTrack( trackid, *this ); - // calculate the directory - QString trackpath = m_ipodSysInfo.findNewTrackFileName( trackid ); - - if ( fileExtension.isEmpty() || !fileExtension.startsWith( "." ) ) { - trackpath.append( '.' ); - } - if ( !fileExtension.isEmpty() ) { - trackpath.append( fileExtension ); - } - - track->setPathInfo( trackpath ); track->setDBID( getNextFreeDBID() ); --- 426,429 ---- *************** *** 760,765 **** m_TrackIdMap.clear(); ! itunesdbfile.setName(QString()); ! timestamp = QDateTime(); maxtrackid = 0; mMaxDBID = 0; --- 745,750 ---- m_TrackIdMap.clear(); ! m_itunesdbfile.setName( QString() ); ! m_timestamp = QDateTime(); maxtrackid = 0; mMaxDBID = 0; *************** *** 909,925 **** void ITunesDB::lock(bool write_lock) { ! if(!itunesdbfile.isOpen()) ! itunesdbfile.open(IO_ReadOnly); #ifdef WIN32 #warning TODO implement DB file locking #else ! if(write_lock) ! flock(itunesdbfile.handle(), LOCK_EX); else ! flock(itunesdbfile.handle(), LOCK_SH); #endif ! locked = true; } --- 894,910 ---- void ITunesDB::lock(bool write_lock) { ! if( !m_itunesdbfile.isOpen() ) ! m_itunesdbfile.open( IO_ReadOnly ); #ifdef WIN32 #warning TODO implement DB file locking #else ! if( write_lock ) ! flock( m_itunesdbfile.handle(), LOCK_EX ); else ! flock( m_itunesdbfile.handle(), LOCK_SH ); #endif ! m_locked = true; } *************** *** 928,939 **** #warning TODO implement DB file locking #else ! flock(itunesdbfile.handle(), LOCK_UN); #endif ! itunesdbfile.close(); ! locked = false; } bool ITunesDB::isLocked() const { ! return locked; } --- 913,924 ---- #warning TODO implement DB file locking #else ! flock( m_itunesdbfile.handle(), LOCK_UN ); #endif ! m_itunesdbfile.close(); ! m_locked = false; } bool ITunesDB::isLocked() const { ! return m_locked; } *************** *** 1005,1043 **** - #if QT_VERSION >= 0x040000 - #define absolutePathQT43(dir) (dir.absolutePath()) - #define splitQStringQT43(string,delim) string.split( delim, QString::SkipEmptyParts ) - #else - #define absolutePathQT43(dir) (dir.absPath()) - #define splitQStringQT43(string,delim) QStringList::split( string, delim, false ) - #endif - - QString ITunesDB::getFileForPathInfo( QString pathinfo ) const { - QDir baseDir( getIPodBase() ); - #if 0 - printf( "getFileForPathInfo( %s )\n", pathinfo.ascii() ); - #endif - QFile realPath( baseDir.path() + pathinfo.replace( ":", "/") ); - if ( !realPath.exists() ) { - #if 0 - fprintf( stderr, "file %s doesn't exist - trying to fix path.\n", realPath.name().ascii() ); - #endif - // umm, try to fix the path the simple way and let the caller - // handle the error if this fails - QStringList elements = splitQStringQT43( pathinfo, "/" ); - if ( elements.count() > 3 ) { - QDir musicDir( m_ipodSysInfo.getMusicDir() ); - musicDir.cd( elements[ 2 ] ); - #if 0 - printf( "file directory is %s\n", musicDir.absolutePath().ascii() ); - #endif - realPath.setName( absolutePathQT43( musicDir ) + "/" + elements[ 3 ] ); - } - } - - return realPath.name(); - } - - /*** * --- 990,993 ---- Index: ipod.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/ipod.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** ipod.cpp 8 Dec 2007 17:26:29 -0000 1.11 --- ipod.cpp 16 Dec 2007 16:33:11 -0000 1.12 *************** *** 28,33 **** IPod::IPod( const QString& mountPoint ) ! : m_ipodBase( mountPoint ), m_sysInfo( mountPoint ), m_itunesdb( m_sysInfo ), ! m_deviceDetails( mountPoint + "/" + IPOD_CONTROLDIR + "/iTunes/DeviceInfo" ) { } --- 28,34 ---- IPod::IPod( const QString& mountPoint ) ! : m_ipodBase( mountPoint ), m_sysInfo( mountPoint ), ! m_itunesdb( m_sysInfo.getIPodControlDirName() + "/iTunes/iTunesDB" ), ! m_deviceDetails( m_sysInfo.getIPodControlDirName() + "/iTunes/DeviceInfo" ) { } *************** *** 172,175 **** --- 173,203 ---- + QString IPod::getFileForPathInfo( QString pathinfo ) const { + QDir baseDir( m_ipodBase ); + #if 0 + printf( "getFileForPathInfo( %s )\n", pathinfo.ascii() ); + #endif + QFile realPath( baseDir.path() + pathinfo.replace( ":", "/") ); + if ( !realPath.exists() ) { + #if 0 + fprintf( stderr, "file %s doesn't exist - trying to fix path.\n", realPath.name().ascii() ); + #endif + // umm, try to fix the path the simple way and let the caller + // handle the error if this fails + QStringList elements = splitQStringQT43compat( pathinfo, "/" ); + if ( elements.count() > 3 ) { + QDir musicDir( m_sysInfo.getMusicDir() ); + musicDir.cd( elements[ 2 ] ); + #if 0 + printf( "file directory is %s\n", musicDir.absolutePath().ascii() ); + #endif + realPath.setName( absolutePathQT43compat( musicDir ) + "/" + elements[ 3 ] ); + } + } + + return realPath.name(); + } + + QStringList& IPod::findUnreferencedMusicFiles( QStringList& list ) const { Index: src.pro =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/src.pro,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** src.pro 14 Dec 2007 08:40:35 -0000 1.27 --- src.pro 16 Dec 2007 16:33:11 -0000 1.28 *************** *** 9,13 **** libqtpodincludes.path = $${QMAKE_INCDIR}/libqtpod TARGET = qtpod ! VERSION = 0.4.2 target.path = $$QMAKE_LIBDIR win32 { --- 9,13 ---- libqtpodincludes.path = $${QMAKE_INCDIR}/libqtpod TARGET = qtpod ! VERSION = 0.5.0 target.path = $$QMAKE_LIBDIR win32 { Index: itunesdb.h =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb.h,v retrieving revision 1.80 retrieving revision 1.81 diff -C2 -d -r1.80 -r1.81 *** itunesdb.h 16 Dec 2007 12:41:21 -0000 1.80 --- itunesdb.h 16 Dec 2007 16:33:10 -0000 1.81 *************** *** 36,39 **** --- 36,40 ---- #define RECENTLY_PLAYED_LIST_NAME "KPOD:Recently Played" + #define ITUNESSD "iTunesSD" /** *************** *** 55,64 **** void setDateAdded( Q_UINT32 date ); - /** - * Returns the file on the iPod this Track instance refers to. - * @deprecated this really is IPod business - */ - QString getFilePath() const; - protected: virtual void setDirty( bool dirtyFlag = true ); --- 56,59 ---- *************** *** 294,298 **** QString error; ! ITunesDB( IPodSysInfo& ipodSysInfo ); virtual ~ITunesDB(); --- 289,293 ---- QString error; ! ITunesDB( const QString& filepath ); virtual ~ITunesDB(); *************** *** 326,330 **** * @brief Returns the name of the filename given with the open() call */ ! QString getFilename() const { return itunesdbfile.name(); } /** --- 321,325 ---- * @brief Returns the name of the filename given with the open() call */ ! QString getFilename() const { return m_itunesdbfile.name(); } /** *************** *** 345,354 **** * @brief Returns a new itunesdb::Track instance for adding a new track to the database. * ! * The new instance gets initialized with an unused trackid and trackpath. * Subsequent calls will get itunesdb::Track with the same trackid until the returned track is as added * via addTrack() thus a call to addTrack() has to be done afterwards. * @param fileExtension file extension of the file representing the track. If you don't know the file extension yet leave empty and set it with Track::setFileExtension() later */ ! ITunesDBTrack * createNewTrack( const QString& fileExtension = QString::null ); /** --- 340,360 ---- * @brief Returns a new itunesdb::Track instance for adding a new track to the database. * ! * The new instance gets initialized with an unused trackid. ! * Create an unused track path info for the new track by calling ! * IPod::findNewTrackPathInfo( trackid ) ! * with the ID of the new track. The track path info is created relative to the ipod base ! * directory with a ":" as path separator. Use the IPod::getFileForPathInfo method to ! * translate it to an absolute filesystem path. ! * <pre><code> ! * ITunesDBTrack * track = itunesdb.createNewTrack(); ! * track->setPathInfo( ipod->findNewTrackPathInfo( track->getID(), ".mp3" ) ); ! * QString newFilename = ipod.getFileForPathInfo( track->getPathInfo() ); ! * ... now copy the file to the new location ! * </code></pre> * Subsequent calls will get itunesdb::Track with the same trackid until the returned track is as added * via addTrack() thus a call to addTrack() has to be done afterwards. * @param fileExtension file extension of the file representing the track. If you don't know the file extension yet leave empty and set it with Track::setFileExtension() later */ ! ITunesDBTrack * createNewTrack(); /** *************** *** 673,677 **** * @brief Returns the timestamp the database file was modified. */ ! uint lastModified() const { return timestamp.toTime_t(); } /** --- 679,683 ---- * @brief Returns the timestamp the database file was modified. */ ! uint lastModified() const { return m_timestamp.toTime_t(); } /** *************** *** 693,697 **** * @return true if the database contains podcasts */ ! bool hasPodcasts() const { return hasPodcastsFlag; } /** --- 699,703 ---- * @return true if the database contains podcasts */ ! bool hasPodcasts() const { return m_hasPodcastsFlag; } /** *************** *** 707,729 **** Q_UINT64 getNextFreeDBID() const; - /** - * @brief Returns the fully qualified path for the given ipod path information - * - * Translates the pathinfo stored on the ipod to a real path info and adds the - * ipodBase path so we can access the real file. The caller needs to check if - * the file actually exists. - * @param pathinfo the path property in database items - * @return the path pointing to the file. - */ - QString getFileForPathInfo( QString pathinfo ) const; - - /** - * @brief Returns the ipod's base directory. - * @return the ipod's base directory. - */ - const QString& getIPodBase() const { - return m_ipodSysInfo.getDeviceMountpoint(); - } - protected: --- 713,716 ---- *************** *** 752,762 **** void removeFromAllPlaylists( Q_UINT32 trackid ); ! IPodSysInfo& m_ipodSysInfo; ! QFile itunesdbfile; ! QFile itunessdfile; ! QDateTime timestamp; ! bool hasPodcastsFlag; ! bool locked; }; --- 739,748 ---- void removeFromAllPlaylists( Q_UINT32 trackid ); ! QFile m_itunesdbfile; ! QFile m_itunessdfile; ! QDateTime m_timestamp; ! bool m_hasPodcastsFlag; ! bool m_locked; }; |
From: Michael S. <fr...@us...> - 2007-12-16 14:26:40
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv8838/src Modified Files: itunesdb_rw.cpp Log Message: merge from branch_0_4 Index: itunesdb_rw.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb_rw.cpp,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** itunesdb_rw.cpp 16 Dec 2007 12:42:10 -0000 1.30 --- itunesdb_rw.cpp 16 Dec 2007 14:26:40 -0000 1.31 *************** *** 433,446 **** // check if the new written ITunesDB file is consistent with the given database ! inline bool isDBConsistent( const ITunesDB& origDB, ITunesDB& newDB ) { if ( !newDB.open() ) { return false; } if ( newDB.getTitle() != origDB.getTitle() ) { return false; } if ( newDB.getNumTracks() != origDB.getNumTracks() ) { return false; } --- 433,449 ---- // check if the new written ITunesDB file is consistent with the given database ! inline bool isDBConsistent( const ITunesDB& origDB, ITunesDB& newDB, QString& error ) { if ( !newDB.open() ) { + error = "DB Consistency Check: could not read DB."; return false; } if ( newDB.getTitle() != origDB.getTitle() ) { + error = "DB Consistency Check: Title doesn't match."; return false; } if ( newDB.getNumTracks() != origDB.getNumTracks() ) { + error = "DB Consistency Check: Number of tracks differs."; return false; } *************** *** 456,462 **** --- 459,468 ---- Track * origTrack = origTrackIter.next(); if ( newTrack->getID() != origTrack->getID() ) { + error = "DB Consistency Check: Track order differs."; return false; } if ( newTrack->getNumComponents() != origTrack->getNumComponents() ) { + error = QString( "DB Consistency Check: Track metadata differs for track $1 - $2 - $3." ) + .arg( origTrack->getArtist() ).arg( origTrack->getAlbum() ).arg( origTrack->getTitle() ); return false; } *************** *** 464,467 **** --- 470,474 ---- if ( newDB.getNumPlaylists() != origDB.getNumPlaylists() ) { + error = "DB Consistency Check: Number of playlists differs."; return false; } *************** *** 470,473 **** --- 477,500 ---- } + // TODO hav a read only flag on the iTunesDB so we cannot change it + inline bool compatibleWith( QFile& oldItunesDBFile, QString& error ) { + Q_UINT32 needsHash; + if ( !oldItunesDBFile.open( IO_ReadOnly ) ) { + return true; // not possible to check - ignore and overwrite + } + QDataStream stream( &oldItunesDBFile ); + stream.setByteOrder( QDataStream::LittleEndian ); + + itunesdb::utils::seekRelative( stream, 48 ); + stream >> needsHash; + if ( needsHash ) { + error = "This version of libqtpod doesn't support writing the itunesdb hash value."; + } + + oldItunesDBFile.close(); + + return !needsHash; + } + bool ITunesDB::writeDatabase(const QString& filename) { QFile outfile( filename ); *************** *** 492,495 **** --- 519,525 ---- QString itunesdb_backupname = outfileInfo.fileName() + ".bak"; if ( outfile.exists() ) { + if ( !compatibleWith( outfile, error ) ) { + return false; + } // remove old backup copy - on some FS this is necessary dir.remove( itunesdb_backupname ); *************** *** 502,506 **** writer.write(outfile); ITunesDB newDB( m_ipodSysInfo ); ! if ( !source.writeSuccessful() || ( filename.isEmpty() && !isDBConsistent( *this, newDB ) ) ) { // restore backup dir.remove( outfileInfo.fileName() ); --- 532,536 ---- writer.write(outfile); ITunesDB newDB( m_ipodSysInfo ); ! if ( !source.writeSuccessful() || ( filename.isEmpty() && !isDBConsistent( *this, newDB, error ) ) ) { // restore backup dir.remove( outfileInfo.fileName() ); |
From: Michael S. <fr...@us...> - 2007-12-16 14:18:09
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv5029/src Modified Files: Tag: branch_0_4 itunesdb_rw.cpp Log Message: implemented pre write compatibility checks Index: itunesdb_rw.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb_rw.cpp,v retrieving revision 1.28.2.1 retrieving revision 1.28.2.2 diff -C2 -d -r1.28.2.1 -r1.28.2.2 *** itunesdb_rw.cpp 16 Dec 2007 12:26:44 -0000 1.28.2.1 --- itunesdb_rw.cpp 16 Dec 2007 14:18:08 -0000 1.28.2.2 *************** *** 433,446 **** // check if the new written ITunesDB file is consistent with the given database ! inline bool isDBConsistent( const ITunesDB& origDB, ITunesDB& newDB ) { if ( !newDB.open() ) { return false; } if ( newDB.getTitle() != origDB.getTitle() ) { return false; } if ( newDB.getNumTracks() != origDB.getNumTracks() ) { return false; } --- 433,449 ---- // check if the new written ITunesDB file is consistent with the given database ! inline bool isDBConsistent( const ITunesDB& origDB, ITunesDB& newDB, QString& error ) { if ( !newDB.open() ) { + error = "DB Consistency Check: could not read DB."; return false; } if ( newDB.getTitle() != origDB.getTitle() ) { + error = "DB Consistency Check: Title doesn't match."; return false; } if ( newDB.getNumTracks() != origDB.getNumTracks() ) { + error = "DB Consistency Check: Number of tracks differs."; return false; } *************** *** 456,462 **** --- 459,468 ---- Track * origTrack = origTrackIter.next(); if ( newTrack->getID() != origTrack->getID() ) { + error = "DB Consistency Check: Track order differs."; return false; } if ( newTrack->getNumComponents() != origTrack->getNumComponents() ) { + error = QString( "DB Consistency Check: Track metadata differs for track $1 - $2 - $3." ) + .arg( origTrack->getArtist() ).arg( origTrack->getAlbum() ).arg( origTrack->getTitle() ); return false; } *************** *** 464,467 **** --- 470,474 ---- if ( newDB.getNumPlaylists() != origDB.getNumPlaylists() ) { + error = "DB Consistency Check: Number of playlists differs."; return false; } *************** *** 470,473 **** --- 477,500 ---- } + // TODO hav a read only flag on the iTunesDB so we cannot change it + inline bool compatibleWith( QFile& oldItunesDBFile, QString& error ) { + Q_UINT32 needsHash; + if ( !oldItunesDBFile.open( IO_ReadOnly ) ) { + return true; // not possible to check - ignore and overwrite + } + QDataStream stream( &oldItunesDBFile ); + stream.setByteOrder( QDataStream::LittleEndian ); + + itunesdb::utils::seekRelative( stream, 48 ); + stream >> needsHash; + if ( needsHash ) { + error = "This version of libqtpod doesn't support writing the itunesdb hash value."; + } + + oldItunesDBFile.close(); + + return !needsHash; + } + bool ITunesDB::writeDatabase(const QString& filename) { QFile outfile( filename ); *************** *** 492,495 **** --- 519,525 ---- QString itunesdb_backupname = outfileInfo.fileName() + ".bak"; if ( outfile.exists() ) { + if ( !compatibleWith( outfile, error ) ) { + return false; + } // remove old backup copy - on some FS this is necessary dir.remove( itunesdb_backupname ); *************** *** 502,506 **** writer.write(outfile); ITunesDB newDB( m_ipodSysInfo ); ! if ( !source.writeSuccessful() || ( filename.isEmpty() && !isDBConsistent( *this, newDB ) ) ) { // restore backup dir.remove( outfileInfo.fileName() ); --- 532,536 ---- writer.write(outfile); ITunesDB newDB( m_ipodSysInfo ); ! if ( !source.writeSuccessful() || ( filename.isEmpty() && !isDBConsistent( *this, newDB, error ) ) ) { // restore backup dir.remove( outfileInfo.fileName() ); |
From: Michael S. <fr...@us...> - 2007-12-16 12:42:08
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv28493/src Modified Files: itunesdb_rw.cpp Log Message: merged in post write consistency checks from branch_0_4 Index: itunesdb_rw.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb_rw.cpp,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** itunesdb_rw.cpp 15 Dec 2007 19:11:56 -0000 1.29 --- itunesdb_rw.cpp 16 Dec 2007 12:42:10 -0000 1.30 *************** *** 432,435 **** --- 432,472 ---- #endif + // check if the new written ITunesDB file is consistent with the given database + inline bool isDBConsistent( const ITunesDB& origDB, ITunesDB& newDB ) { + if ( !newDB.open() ) { + return false; + } + + if ( newDB.getTitle() != origDB.getTitle() ) { + return false; + } + + if ( newDB.getNumTracks() != origDB.getNumTracks() ) { + return false; + } + + ITunesDB::TrackConstIterator origTrackIter = origDB.getAllTracks(); + ITunesDB::TrackConstIterator newTrackIter = newDB.getAllTracks(); + while ( newTrackIter.hasNext() ) { + if ( !origTrackIter.hasNext() ) { + return false; + } + + Track * newTrack = newTrackIter.next(); + Track * origTrack = origTrackIter.next(); + if ( newTrack->getID() != origTrack->getID() ) { + return false; + } + if ( newTrack->getNumComponents() != origTrack->getNumComponents() ) { + return false; + } + } + + if ( newDB.getNumPlaylists() != origDB.getNumPlaylists() ) { + return false; + } + + return true; + } bool ITunesDB::writeDatabase(const QString& filename) { *************** *** 464,468 **** ItunesDBWriter writer( source ); writer.write(outfile); ! if ( !source.writeSuccessful() ) { // restore backup dir.remove( outfileInfo.fileName() ); --- 501,506 ---- ItunesDBWriter writer( source ); writer.write(outfile); ! ITunesDB newDB( m_ipodSysInfo ); ! if ( !source.writeSuccessful() || ( filename.isEmpty() && !isDBConsistent( *this, newDB ) ) ) { // restore backup dir.remove( outfileInfo.fileName() ); |
From: Michael S. <fr...@us...> - 2007-12-16 12:41:20
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv28135/src Modified Files: itunesdb.h Log Message: deprecated Index: itunesdb.h =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb.h,v retrieving revision 1.79 retrieving revision 1.80 diff -C2 -d -r1.79 -r1.80 *** itunesdb.h 10 Dec 2007 23:01:07 -0000 1.79 --- itunesdb.h 16 Dec 2007 12:41:21 -0000 1.80 *************** *** 57,60 **** --- 57,61 ---- /** * Returns the file on the iPod this Track instance refers to. + * @deprecated this really is IPod business */ QString getFilePath() const; |
From: Michael S. <fr...@us...> - 2007-12-16 12:40:46
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv27615/src Modified Files: utils.h Log Message: fixed compile warning Index: utils.h =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/utils.h,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** utils.h 15 Dec 2007 19:11:57 -0000 1.53 --- utils.h 16 Dec 2007 12:40:44 -0000 1.54 *************** *** 46,50 **** #if QT_VERSION >= 0x040000 ! #define NullQString QString::Null #else #define NullQString QString::null --- 46,50 ---- #if QT_VERSION >= 0x040000 ! static QString NullQString = QString(); #else #define NullQString QString::null |
From: Michael S. <fr...@us...> - 2007-12-16 12:26:41
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv18050/src Modified Files: Tag: branch_0_4 itunesdb_rw.cpp Log Message: more post write consitency checks Index: itunesdb_rw.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb_rw.cpp,v retrieving revision 1.28 retrieving revision 1.28.2.1 diff -C2 -d -r1.28 -r1.28.2.1 *** itunesdb_rw.cpp 14 Dec 2007 12:16:04 -0000 1.28 --- itunesdb_rw.cpp 16 Dec 2007 12:26:44 -0000 1.28.2.1 *************** *** 432,435 **** --- 432,472 ---- #endif + // check if the new written ITunesDB file is consistent with the given database + inline bool isDBConsistent( const ITunesDB& origDB, ITunesDB& newDB ) { + if ( !newDB.open() ) { + return false; + } + + if ( newDB.getTitle() != origDB.getTitle() ) { + return false; + } + + if ( newDB.getNumTracks() != origDB.getNumTracks() ) { + return false; + } + + ITunesDB::TrackConstIterator origTrackIter = origDB.getAllTracks(); + ITunesDB::TrackConstIterator newTrackIter = newDB.getAllTracks(); + while ( newTrackIter.hasNext() ) { + if ( !origTrackIter.hasNext() ) { + return false; + } + + Track * newTrack = newTrackIter.next(); + Track * origTrack = origTrackIter.next(); + if ( newTrack->getID() != origTrack->getID() ) { + return false; + } + if ( newTrack->getNumComponents() != origTrack->getNumComponents() ) { + return false; + } + } + + if ( newDB.getNumPlaylists() != origDB.getNumPlaylists() ) { + return false; + } + + return true; + } bool ITunesDB::writeDatabase(const QString& filename) { *************** *** 464,468 **** ItunesDBWriter writer( source ); writer.write(outfile); ! if ( !source.writeSuccessful() ) { // restore backup dir.remove( outfileInfo.fileName() ); --- 501,506 ---- ItunesDBWriter writer( source ); writer.write(outfile); ! ITunesDB newDB( m_ipodSysInfo ); ! if ( !source.writeSuccessful() || ( filename.isEmpty() && !isDBConsistent( *this, newDB ) ) ) { // restore backup dir.remove( outfileInfo.fileName() ); |
From: Michael S. <fr...@us...> - 2007-12-16 12:25:41
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv13538/src Modified Files: Tag: branch_0_4 itunesdb.h Log Message: deprecation comment Index: itunesdb.h =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdb.h,v retrieving revision 1.79 retrieving revision 1.79.2.1 diff -C2 -d -r1.79 -r1.79.2.1 *** itunesdb.h 10 Dec 2007 23:01:07 -0000 1.79 --- itunesdb.h 16 Dec 2007 12:25:42 -0000 1.79.2.1 *************** *** 57,60 **** --- 57,61 ---- /** * Returns the file on the iPod this Track instance refers to. + * @deprecated this really is IPod business */ QString getFilePath() const; |