[Kpod-devel] cvs_commit libqtpod/src itunesdbparser.h,1.4,1.5 listitem.cpp,1.8,1.9 playlist.cpp,1.8,
Status: Beta
Brought to you by:
fry26
From: Michael S. <fr...@us...> - 2006-03-19 23:59:29
|
Update of /cvsroot/kpod/libqtpod/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15710/src Modified Files: itunesdbparser.h listitem.cpp playlist.cpp track.cpp Log Message: some fixes Index: track.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/track.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** track.cpp 18 Mar 2006 18:22:56 -0000 1.9 --- track.cpp 19 Mar 2006 23:59:13 -0000 1.10 *************** *** 19,43 **** ***************************************************************************/ - #include "track.h" - #include "containerutils.h" - #include <qdatastream.h> #include <qbuffer.h> #include <qdatetime.h> namespace itunesdb { TrackComparators::ByTitle TrackComparators::BY_TITLE = TrackComparators::ByTitle(); ! TrackComparators::ByArtist TrackComparators::BY_ARTIST = TrackComparators::ByArtist(); ! TrackComparators::ByAlbum TrackComparators::BY_ALBUM = TrackComparators::ByAlbum(); TrackComparators::ByFiletype TrackComparators::BY_FILETYPE = TrackComparators::ByFiletype(); TrackComparators::ByTrackLength TrackComparators::BY_TRACKLENGTH = TrackComparators::ByTrackLength(); TrackComparators::ByYear TrackComparators::BY_YEAR = TrackComparators::ByYear(); TrackComparators::ByComment TrackComparators::BY_COMMENT = TrackComparators::ByComment(); ! TrackComparators::ByComposer TrackComparators::BY_COMPOSER = TrackComparators::ByComposer(); TrackComparators::ByTrackNumber TrackComparators::BY_TRACKNUMBER = TrackComparators::ByTrackNumber(); TrackComparators::BySize TrackComparators::BY_SIZE = TrackComparators::BySize(); TrackComparators::ByTimeModified TrackComparators::BY_TIMEMODIFIED = TrackComparators::ByTimeModified(); ! TrackComparators::ByGenre TrackComparators::BY_GENRE = TrackComparators::ByGenre(); TrackComparators::ByBitrate TrackComparators::BY_BITRATE = TrackComparators::ByBitrate(); TrackComparators::BySampleRate TrackComparators::BY_SAMPLERATE = TrackComparators::BySampleRate(); --- 19,44 ---- ***************************************************************************/ #include <qdatastream.h> #include <qbuffer.h> #include <qdatetime.h> + #include "track.h" + #include "containerutils.h" + #include "itunesdbparser.h" + namespace itunesdb { TrackComparators::ByTitle TrackComparators::BY_TITLE = TrackComparators::ByTitle(); ! TrackComparators::ByArtist TrackComparators::BY_ARTISTONLY = TrackComparators::ByArtist(); ! TrackComparators::ByAlbum TrackComparators::BY_ALBUMONLY = TrackComparators::ByAlbum(); TrackComparators::ByFiletype TrackComparators::BY_FILETYPE = TrackComparators::ByFiletype(); TrackComparators::ByTrackLength TrackComparators::BY_TRACKLENGTH = TrackComparators::ByTrackLength(); TrackComparators::ByYear TrackComparators::BY_YEAR = TrackComparators::ByYear(); TrackComparators::ByComment TrackComparators::BY_COMMENT = TrackComparators::ByComment(); ! TrackComparators::ByComposer TrackComparators::BY_COMPOSERONLY = TrackComparators::ByComposer(); TrackComparators::ByTrackNumber TrackComparators::BY_TRACKNUMBER = TrackComparators::ByTrackNumber(); TrackComparators::BySize TrackComparators::BY_SIZE = TrackComparators::BySize(); TrackComparators::ByTimeModified TrackComparators::BY_TIMEMODIFIED = TrackComparators::ByTimeModified(); ! TrackComparators::ByGenre TrackComparators::BY_GENREONLY = TrackComparators::ByGenre(); TrackComparators::ByBitrate TrackComparators::BY_BITRATE = TrackComparators::ByBitrate(); TrackComparators::BySampleRate TrackComparators::BY_SAMPLERATE = TrackComparators::BySampleRate(); *************** *** 48,77 **** TrackComparators::ByCdNumber TrackComparators::BY_CDNUMBER = TrackComparators::ByCdNumber(); TrackComparators::ByRating TrackComparators::BY_RATING = TrackComparators::ByRating(); ! Track::Track( Q_UINT32 trackid ) ! : ListItem( ITEMTYPE_TRACK ) { - rating = 0; - compilation = 0; - vbr = 0; - type = 0; - lastmodified = 0; - file_size = 0; - tracklen = 0; - tracknum = 0; - numtracks = 0; - year = 0; - bitrate = 0; - samplerate = 0xAC440000; // hardwired for now - volumeadjust = 0; - playcount = 0; - last_played_at = 0; - cdnum = 0; - numcds = 0; - id = trackid; - date_added = QDateTime::currentDateTime().toTime_t()+ MAC_EPOCH_DELTA; - file_format_code = 0xC; - dbid = 0; - m_recentlyPlayed = false; setFDesc( QString( "MPEG audio file" ) ); // hardwired for now } --- 49,89 ---- TrackComparators::ByCdNumber TrackComparators::BY_CDNUMBER = TrackComparators::ByCdNumber(); TrackComparators::ByRating TrackComparators::BY_RATING = TrackComparators::ByRating(); + TrackComparators::ByReleaseDate TrackComparators::BY_RELEASEDATE = TrackComparators::ByReleaseDate(); ! TrackComparators::ComposingComparator TrackComparators::BY_ALBUM = ! TrackComparators::ComposingComparator( &BY_ALBUMONLY ).add( &BY_TRACKNUMBER ).add ( &BY_TITLE ); ! TrackComparators::ComposingComparator TrackComparators::BY_ARTIST = ! TrackComparators::ComposingComparator( &BY_ARTISTONLY ).add( &BY_ALBUM ); ! TrackComparators::ComposingComparator TrackComparators::BY_GENRE = ! TrackComparators::ComposingComparator( &BY_GENREONLY ).add( &BY_ARTIST ); ! TrackComparators::ComposingComparator TrackComparators::BY_COMPOSER = ! TrackComparators::ComposingComparator( &BY_COMPOSERONLY ).add( &BY_TITLE ); ! ! Track::Track( Q_UINT32 trackid ) : ! ListItem( ITEMTYPE_TRACK ), ! id( trackid ), ! lastmodified( 0 ), ! file_size( 0 ), ! tracklen( 0 ), ! tracknum( 0 ), ! numtracks( 0 ), ! year( 0 ), ! bitrate( 0 ), ! samplerate( 0xAC440000 ), // hardwired for now ! volumeadjust( 0 ), ! playcount( 0 ), ! last_played_at( 0 ), ! cdnum( 0 ), ! numcds( 0 ), ! file_format_code( 0xC ), ! date_added( QDateTime::currentDateTime().toTime_t()+ MAC_EPOCH_DELTA ), ! date_released( 0 ), ! rating ( 0 ), ! vbr( 0 ), ! type( 0 ), ! compilation( 0 ), ! dbid( 0 ), ! m_recentlyPlayed( false ) { setFDesc( QString( "MPEG audio file" ) ); // hardwired for now } *************** *** 130,134 **** stream << (Q_UINT32) 0; // unkown stream << (float) -getSamplerate(); // 0x88 - samplerate as floating point "-"?!? ! stream << (Q_UINT32) 0; // 0x8B - date/time added stream << (Q_UINT32) file_format_code; // 0x90 - unkown, but 0x0000000c for MP3 ? stream << (Q_UINT32) 0xffffffff; // 0x94 - unkown --- 142,146 ---- stream << (Q_UINT32) 0; // unkown stream << (float) -getSamplerate(); // 0x88 - samplerate as floating point "-"?!? ! stream << (Q_UINT32) date_released; // 0x8C - release date/time stream << (Q_UINT32) file_format_code; // 0x90 - unkown, but 0x0000000c for MP3 ? stream << (Q_UINT32) 0xffffffff; // 0x94 - unkown *************** *** 164,184 **** } ! // TODO rename to readTagInStream ! QDataStream & Track::readFromStream(QDataStream& instream) { Q_UINT32 dummy, blocklen; instream >> blocklen; ! ! // TODO make this more forgiving ! if(blocklen < 148) { // insufficient information QByteArray buffer( blocklen ); instream.readRawBytes(buffer.data(), blocklen - 8); ! return instream; } ! instream >> dummy; ! instream >> num_mhod; instream >> id; ! instream >> dummy; instream >> dummy; --- 176,194 ---- } ! bool Track::readFromStream(QDataStream& instream) { Q_UINT32 dummy, blocklen; instream >> blocklen; ! ! if(blocklen < 108) { // insufficient information QByteArray buffer( blocklen ); instream.readRawBytes(buffer.data(), blocklen - 8); ! return false; } ! instream >> dummy; ! instream >> dummy; // number of mhods doesn't really sound interesting instream >> id; ! instream >> dummy; instream >> dummy; *************** *** 190,194 **** lastmodified-= MAC_EPOCH_DELTA; instream >> file_size; ! instream >> tracklen; instream >> tracknum; --- 200,204 ---- lastmodified-= MAC_EPOCH_DELTA; instream >> file_size; ! instream >> tracklen; instream >> tracknum; *************** *** 196,200 **** instream >> year; instream >> bitrate; ! instream >> samplerate; instream >> volumeadjust; --- 206,210 ---- instream >> year; instream >> bitrate; ! instream >> samplerate; instream >> volumeadjust; *************** *** 202,206 **** instream >> dummy; instream >> dummy; ! instream >> playcount; instream >> dummy; --- 212,216 ---- instream >> dummy; instream >> dummy; ! instream >> playcount; instream >> dummy; *************** *** 209,249 **** instream >> cdnum; instream >> numcds; ! instream >> dummy; instream >> date_added; ! // 108 byte read so far ! if ( blocklen==156 ) // iTunes 4.7 ! { ! for (int i= 0; i< 9; i++) ! instream >> dummy; ! instream >> file_format_code; ! QByteArray buffer(8); ! instream.readRawBytes(buffer.data(), 8); ! } ! else ! { ! if ( blocklen==244 ) // iTunes 4.9 ! { ! instream >> dummy; ! instream >> dbid; ! for (int i= 0; i< 6; i++) ! instream >> dummy; ! instream >> file_format_code; ! QByteArray buffer(96); ! instream.readRawBytes(buffer.data(), 96); ! } ! else ! { ! // seek to the end of the block ! if (blocklen > 108) { ! QByteArray buffer(blocklen - 108); ! instream.readRawBytes(buffer.data(), blocklen - 108); ! } ! } } setDirty( false ); ! return instream; } --- 219,243 ---- instream >> cdnum; instream >> numcds; ! instream >> dummy; instream >> date_added; ! // 108 byte read so far ! if ( blocklen >= 148 ) { // iTunes >= 4.7 ! instream >> dummy; // 108 ! instream >> dbid; // 112 ! ItunesDBParser::seekRelative( instream, 20 ); ! instream >> date_released; // 140 ! instream >> file_format_code; // 144 ! ! // 148 byte read so far - ignore the rest for now ! ItunesDBParser::seekRelative( instream, blocklen - 148 ); ! } else { ! ItunesDBParser::seekRelative( instream, blocklen - 108 ); } + setDirty( false ); ! return true; } Index: itunesdbparser.h =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/itunesdbparser.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** itunesdbparser.h 12 Mar 2006 01:06:46 -0000 1.4 --- itunesdbparser.h 19 Mar 2006 23:59:13 -0000 1.5 *************** *** 75,81 **** static void seekRelative( QDataStream& stream, uint numbytes ) { if ( numbytes ) { ! char* buffer = new char[ numbytes ]; ! stream.readRawBytes( buffer, numbytes ); ! delete [] buffer; } } --- 75,80 ---- static void seekRelative( QDataStream& stream, uint numbytes ) { if ( numbytes ) { ! QByteArray buffer ( numbytes ); ! stream.readRawBytes( buffer.data(), numbytes ); } } Index: listitem.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/listitem.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** listitem.cpp 19 Mar 2006 00:08:35 -0000 1.8 --- listitem.cpp 19 Mar 2006 23:59:13 -0000 1.9 *************** *** 16,20 **** * along with this program; if not, write to the * * Free Software Foundation, Inc., * ! * 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307, USA. * ***************************************************************************/ #include "listitem.h" --- 16,20 ---- * along with this program; if not, write to the * * Free Software Foundation, Inc., * ! * 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307, USA. * ***************************************************************************/ #include "listitem.h" Index: playlist.cpp =================================================================== RCS file: /cvsroot/kpod/libqtpod/src/playlist.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** playlist.cpp 18 Mar 2006 18:22:56 -0000 1.8 --- playlist.cpp 19 Mar 2006 23:59:13 -0000 1.9 *************** *** 18,24 **** --- 18,28 ---- * 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307, USA. * ***************************************************************************/ + #include "playlist.h" + #include <qbuffer.h> + #include "itunesdbparser.h" + namespace itunesdb { *************** *** 62,67 **** int rest = blocklen - 48; if ( rest > 0 ) { ! QByteArray buffer( rest ); ! instream.readRawBytes( buffer.data(), rest ); } setDirty( false ); --- 66,70 ---- int rest = blocklen - 48; if ( rest > 0 ) { ! ItunesDBParser::seekRelative( instream, rest ); } setDirty( false ); |