This commit is contained in:
Herwig Birke
2018-03-06 14:55:33 +01:00
parent 01dd222abe
commit 1a3d43ca99
10 changed files with 231 additions and 75 deletions
+21 -2
View File
@@ -1,4 +1,5 @@
#include "calbum.h" #include "calbum.h"
#include "ctrack.h"
cAlbum::cAlbum(const QString& szAlbum, const QString &szLeadArtist) : cAlbum::cAlbum(const QString& szAlbum, const QString &szLeadArtist) :
@@ -27,15 +28,33 @@ QString cAlbum::leadArtist()
return(m_szLeadArtist); return(m_szLeadArtist);
} }
cTrack* cAlbum::addTrack(const QString& szTitle, const qint16& trackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate &recordingTime)
{
return(m_trackList.add(this, szTitle, trackNumber, szPartOfSet, szBand, szComposer, recordingTime));
}
cTrackList cAlbum::trackList()
{
return(m_trackList);
}
cAlbum* cAlbumList::add(const QString& szAlbum, const QString& szLeadArtist) cAlbum* cAlbumList::add(const QString& szAlbum, const QString& szLeadArtist)
{ {
QString szAlbum1 = szAlbum;
QString szLeadArtist1 = szLeadArtist;
if(szAlbum1.isEmpty())
szAlbum1 = "*** NO ALBUM ***";
if(szLeadArtist1.isEmpty())
szLeadArtist1 = "*** NO LEAD ARTIST ***";
for(int x = 0;x < count();x++) for(int x = 0;x < count();x++)
{ {
if(at(x)->album() == szAlbum && at(x)->leadArtist() == szLeadArtist) if(at(x)->album() == szAlbum1 && at(x)->leadArtist() == szLeadArtist1)
return(at(x)); return(at(x));
} }
cAlbum* lpAlbumNew = new cAlbum(szAlbum, szLeadArtist); cAlbum* lpAlbumNew = new cAlbum(szAlbum1, szLeadArtist1);
append(lpAlbumNew); append(lpAlbumNew);
return(lpAlbumNew); return(lpAlbumNew);
} }
+9
View File
@@ -2,11 +2,16 @@
#define CALBUM_H #define CALBUM_H
#include "ctrack.h"
#include <QMetaType> #include <QMetaType>
#include <QString> #include <QString>
#include <QList> #include <QList>
class cTrack;
class cTrackList;
class cAlbum class cAlbum
{ {
public: public:
@@ -17,9 +22,13 @@ public:
void setLeadArtist(const QString& szLeadArtist); void setLeadArtist(const QString& szLeadArtist);
QString leadArtist(); QString leadArtist();
cTrack* addTrack(const QString& szTitle, const qint16& trackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate& recordingTime);
cTrackList trackList();
private: private:
QString m_szAlbum; QString m_szAlbum;
QString m_szLeadArtist; QString m_szLeadArtist;
cTrackList m_trackList;
}; };
Q_DECLARE_METATYPE(cAlbum*) Q_DECLARE_METATYPE(cAlbum*)
+1 -3
View File
@@ -71,9 +71,7 @@ int cDatabase::initDB()
" fileName TEXT, " " fileName TEXT, "
" fileSize INTEGER, " " fileSize INTEGER, "
" fileDate DATE, " " fileDate DATE, "
" fileType1 INTEGER, "
" fileType TEXT, " " fileType TEXT, "
" length1 INTEGER, "
" length INTEGER, " " length INTEGER, "
" bitrate INTEGER, " " bitrate INTEGER, "
" sampleRate INTEGER, " " sampleRate INTEGER, "
@@ -95,7 +93,7 @@ int cDatabase::initDB()
" album TEXT, " " album TEXT, "
" title TEXT, " " title TEXT, "
" copyright TEXT, " " copyright TEXT, "
" tracknumber TEXT, " " tracknumber INTEGER, "
" contentGroupDescription TEXT, " " contentGroupDescription TEXT, "
" subTitle TEXT, " " subTitle TEXT, "
" originalAlbum TEXT, " " originalAlbum TEXT, "
+19 -8
View File
@@ -23,12 +23,14 @@ qDebug() << szFile;
cMediaInfo* lpMediaInfo = new cMediaInfo; cMediaInfo* lpMediaInfo = new cMediaInfo;
lpMediaInfo->readFromFile(szFile); lpMediaInfo->readFromFile(szFile);
if(lpMediaInfo->isValid()) if(lpMediaInfo->isValid())
{ {
m_lpDB->getDB().transaction(); m_lpDB->getDB().transaction();
lpMediaInfo->writeToDB(); lpMediaInfo->writeToDB();
m_lpDB->getDB().commit(); m_lpDB->getDB().commit();
} }
delete lpMediaInfo; delete lpMediaInfo;
} }
@@ -105,7 +107,7 @@ cMainWindow::cMainWindow(QWidget *parent) :
// addPath("C:/Users/vet0572/Music"); // addPath("C:/Users/vet0572/Music");
// addPath("C:/Temp/Musik"); // addPath("C:/Temp/Musik");
// addPath("C:/Users/birkeh/Music"); // addPath("C:/Users/birkeh/Music");
// addFile("C:/Users/vet0572/Music/Amy MacDonald/Under Stars (Deluxe)/01 - Dream On.mp3"); // addFile("C:/Users/vet0572/Music/Amy MacDonald/Life In A Beautiful Light/CD1/Amy Macdonald - Life In A Beautiful Light - 18 - Slow It Down (Singalong Instrumental Version).mp3");
} }
cMainWindow::~cMainWindow() cMainWindow::~cMainWindow()
@@ -135,7 +137,7 @@ void cMainWindow::loadDB()
QString szAlbum; QString szAlbum;
QString szTitle; QString szTitle;
qint16 iTrackNumber; qint16 iTrackNumber;
qint16 iPartOfSet; QString szPartOfSet;
QString szLeadArtist; QString szLeadArtist;
QString szBand; QString szBand;
QString szComposer; QString szComposer;
@@ -155,7 +157,7 @@ void cMainWindow::loadDB()
szAlbum = query.value("album").toString(); szAlbum = query.value("album").toString();
szTitle = query.value("title").toString(); szTitle = query.value("title").toString();
iTrackNumber = query.value("trackNumber").toInt(); iTrackNumber = query.value("trackNumber").toInt();
iPartOfSet = query.value("partOfSet").toInt(); szPartOfSet = query.value("partOfSet").toString();
szLeadArtist = query.value("leadArtist").toString(); szLeadArtist = query.value("leadArtist").toString();
szBand = query.value("band").toString(); szBand = query.value("band").toString();
szComposer = query.value("composer").toString(); szComposer = query.value("composer").toString();
@@ -166,8 +168,11 @@ void cMainWindow::loadDB()
szOldLeadArtist = szLeadArtist; szOldLeadArtist = szLeadArtist;
szOldAlbum = szAlbum; szOldAlbum = szAlbum;
cAlbum* lpAlbum = m_albumList.add(szAlbum, szLeadArtist); lpAlbum = m_albumList.add(szAlbum, szLeadArtist);
} }
if(lpAlbum)
lpAlbum->addTrack(szTitle, iTrackNumber, szPartOfSet, szBand, szComposer, recordingTime);
} }
} }
@@ -217,10 +222,16 @@ void cMainWindow::displayDB()
lpLeadArtistItem.at(0)->appendRow(lpAlbumItem); lpLeadArtistItem.at(0)->appendRow(lpAlbumItem);
} }
QList<QStandardItem*> lpTrackItem; cTrackList trackList = lpAlbum->trackList();
lpTrackItem.append(new QStandardItem("track 1")); for(int y = 0;y < trackList.count();y++)
lpTrackItem.append(new QStandardItem("track 1")); {
lpAlbumItem.at(0)->appendRow(lpTrackItem); cTrack* lpTrack = trackList.at(y);
QList<QStandardItem*> lpTrackItem;
lpTrackItem.append(new QStandardItem(lpTrack->title()));
lpTrackItem.append(new QStandardItem(lpTrack->title()));
lpAlbumItem.at(0)->appendRow(lpTrackItem);
}
} }
} }
+1
View File
@@ -5,6 +5,7 @@
#include "cdatabase.h" #include "cdatabase.h"
#include "calbum.h" #include "calbum.h"
#include "ctrack.h"
#include <QMainWindow> #include <QMainWindow>
+16 -55
View File
@@ -487,16 +487,14 @@ qint32 cMediaInfo::writeFilename()
} }
if(query.next()) if(query.next())
query.prepare("UPDATE file SET fileType1=:fileType1, fileType=:fileType, length1=:length1, length=:length, bitrate=:bitrate, sampleRate=:sampleRate, channels=:channels, bitsPerSample=:bitsPerSample, layer=:layer, version=:version, sampleWidth=:sampleWidth, sampleFrames=:sampleFrames, isEncrypted=:isEncrypted, trackGain=:trackGain, albumGain=:albumGain, trackPeak=:trackPeak, albumPeak=:albumPeak, protectionEnabled=:protectionEnabled, channelMode=:channelMode, isCopyrighted=:isCopyrighted, isOriginal=:isOriginal, album=:album, title=:title, copyright=:copyright, tracknumber=:tracknumber, contentGroupDescription=:contentGroupDescription, subTitle=:subTitle, originalAlbum=:originalAlbum, partOfSet=:partOfSet, subTitleOfSet=:subTitleOfSet, internationalStandardRecordingCode=:internationalStandardRecordingCode, leadArtist=:leadArtist, band=:band, conductor=:conductor, interpret=:interpret, originalArtist=:originalArtist, textWriter=:textWriter, originalTextWriter=:originalTextWriter, composer=:composer, encodedBy=:encodedBy, beatsPerMinute=:beatsPerMinute, language=:language, contentType=:contentType, mediaType=:mediaType, mood=:mood, producedNotice=:producedNotice, publisher=:publisher, fileOwner=:fileOwner, internetRadioStationName=:internetRadioStationName, internetRadioStationOwner=:internetRadioStationOwner, originalFilename=:originalFilename, playlistDelay=:playlistDelay, encodingTime=:encodingTime, originalReleaseTime=:originalReleaseTime, recordingTime=:recordingTime, releaseTime=:releaseTime, taggingTime=:taggingTime, swhwSettings=:swhwSettings, albumSortOrder=:albumSortOrder, performerSortOrder=:performerSortOrder, titleSortOrder=:titleSortOrder, synchronizedLyrics=:synchronizedLyrics, unsynchronizedLyrics=:unsynchronizedLyrics WHERE filename=:filename AND filesize=:filesize AND filedate=:filedate;"); query.prepare("UPDATE file SET fileType=:fileType, length=:length, bitrate=:bitrate, sampleRate=:sampleRate, channels=:channels, bitsPerSample=:bitsPerSample, layer=:layer, version=:version, sampleWidth=:sampleWidth, sampleFrames=:sampleFrames, isEncrypted=:isEncrypted, trackGain=:trackGain, albumGain=:albumGain, trackPeak=:trackPeak, albumPeak=:albumPeak, protectionEnabled=:protectionEnabled, channelMode=:channelMode, isCopyrighted=:isCopyrighted, isOriginal=:isOriginal, album=:album, title=:title, copyright=:copyright, tracknumber=:tracknumber, contentGroupDescription=:contentGroupDescription, subTitle=:subTitle, originalAlbum=:originalAlbum, partOfSet=:partOfSet, subTitleOfSet=:subTitleOfSet, internationalStandardRecordingCode=:internationalStandardRecordingCode, leadArtist=:leadArtist, band=:band, conductor=:conductor, interpret=:interpret, originalArtist=:originalArtist, textWriter=:textWriter, originalTextWriter=:originalTextWriter, composer=:composer, encodedBy=:encodedBy, beatsPerMinute=:beatsPerMinute, language=:language, contentType=:contentType, mediaType=:mediaType, mood=:mood, producedNotice=:producedNotice, publisher=:publisher, fileOwner=:fileOwner, internetRadioStationName=:internetRadioStationName, internetRadioStationOwner=:internetRadioStationOwner, originalFilename=:originalFilename, playlistDelay=:playlistDelay, encodingTime=:encodingTime, originalReleaseTime=:originalReleaseTime, recordingTime=:recordingTime, releaseTime=:releaseTime, taggingTime=:taggingTime, swhwSettings=:swhwSettings, albumSortOrder=:albumSortOrder, performerSortOrder=:performerSortOrder, titleSortOrder=:titleSortOrder, synchronizedLyrics=:synchronizedLyrics, unsynchronizedLyrics=:unsynchronizedLyrics WHERE filename=:filename AND filesize=:filesize AND filedate=:filedate;");
else else
query.prepare("INSERT INTO file (fileName, fileSize, fileDate, fileType1, fileType, length1, length, bitrate, sampleRate, channels, bitsPerSample, layer, version, sampleWidth, sampleFrames, isEncrypted, trackGain, albumGain, trackPeak, albumPeak, protectionEnabled, channelMode, isCopyrighted, isOriginal, album, title, copyright, tracknumber, contentGroupDescription, subTitle, originalAlbum, partOfSet, subTitleOfSet, internationalStandardRecordingCode, leadArtist, band, conductor, interpret, originalArtist, textWriter, originalTextWriter, composer, encodedBy, beatsPerMinute, language, contentType, mediaType, mood, producedNotice, publisher, fileOwner, internetRadioStationName, internetRadioStationOwner, originalFilename, playlistDelay, encodingTime, originalReleaseTime, recordingTime, releaseTime, taggingTime, swhwSettings, albumSortOrder, performerSortOrder, titleSortOrder, synchronizedLyrics, unsynchronizedLyrics) VALUES (:fileName, :fileSize, :fileDate, :fileType1, :fileType, :length1, :length, :bitrate, :sampleRate, :channels, :bitsPerSample, :layer, :version, :sampleWidth, :sampleFrames, :isEncrypted, :trackGain, :albumGain, :trackPeak, :albumPeak, :protectionEnabled, :channelMode, :isCopyrighted, :isOriginal, :album, :title, :copyright, :tracknumber, :contentGroupDescription, :subTitle, :originalAlbum, :partOfSet, :subTitleOfSet, :internationalStandardRecordingCode, :leadArtist, :band, :conductor, :interpret, :originalArtist, :textWriter, :originalTextWriter, :composer, :encodedBy, :beatsPerMinute, :language, :contentType, :mediaType, :mood, :producedNotice, :publisher, :fileOwner, :internetRadioStationName, :internetRadioStationOwner, :originalFilename, :playlistDelay, :encodingTime, :originalReleaseTime, :recordingTime, :releaseTime, :taggingTime, :swhwSettings, :albumSortOrder, :performerSortOrder, :titleSortOrder, :synchronizedLyrics, :unsynchronizedLyrics);"); query.prepare("INSERT INTO file (fileName, fileSize, fileDate, fileType, length, bitrate, sampleRate, channels, bitsPerSample, layer, version, sampleWidth, sampleFrames, isEncrypted, trackGain, albumGain, trackPeak, albumPeak, protectionEnabled, channelMode, isCopyrighted, isOriginal, album, title, copyright, tracknumber, contentGroupDescription, subTitle, originalAlbum, partOfSet, subTitleOfSet, internationalStandardRecordingCode, leadArtist, band, conductor, interpret, originalArtist, textWriter, originalTextWriter, composer, encodedBy, beatsPerMinute, language, contentType, mediaType, mood, producedNotice, publisher, fileOwner, internetRadioStationName, internetRadioStationOwner, originalFilename, playlistDelay, encodingTime, originalReleaseTime, recordingTime, releaseTime, taggingTime, swhwSettings, albumSortOrder, performerSortOrder, titleSortOrder, synchronizedLyrics, unsynchronizedLyrics) VALUES (:fileName, :fileSize, :fileDate, :fileType, :length, :bitrate, :sampleRate, :channels, :bitsPerSample, :layer, :version, :sampleWidth, :sampleFrames, :isEncrypted, :trackGain, :albumGain, :trackPeak, :albumPeak, :protectionEnabled, :channelMode, :isCopyrighted, :isOriginal, :album, :title, :copyright, :tracknumber, :contentGroupDescription, :subTitle, :originalAlbum, :partOfSet, :subTitleOfSet, :internationalStandardRecordingCode, :leadArtist, :band, :conductor, :interpret, :originalArtist, :textWriter, :originalTextWriter, :composer, :encodedBy, :beatsPerMinute, :language, :contentType, :mediaType, :mood, :producedNotice, :publisher, :fileOwner, :internetRadioStationName, :internetRadioStationOwner, :originalFilename, :playlistDelay, :encodingTime, :originalReleaseTime, :recordingTime, :releaseTime, :taggingTime, :swhwSettings, :albumSortOrder, :performerSortOrder, :titleSortOrder, :synchronizedLyrics, :unsynchronizedLyrics);");
query.bindValue(":fileName", fileName()); query.bindValue(":fileName", fileName());
query.bindValue(":fileSize", fileSize()); query.bindValue(":fileSize", fileSize());
query.bindValue(":fileDate", fileDate()); query.bindValue(":fileDate", fileDate());
query.bindValue(":fileType1", fileType1());
query.bindValue(":fileType", fileType()); query.bindValue(":fileType", fileType());
query.bindValue(":length1", length1());
query.bindValue(":length", length()); query.bindValue(":length", length());
query.bindValue(":bitrate", bitrate()); query.bindValue(":bitrate", bitrate());
query.bindValue(":sampleRate", sampleRate()); query.bindValue(":sampleRate", sampleRate());
@@ -628,18 +626,23 @@ bool cMediaInfo::writeToDB()
void cMediaInfo::readTagV1(ID3v1::Tag* lpTag) void cMediaInfo::readTagV1(ID3v1::Tag* lpTag)
{ {
QString szTmp; QString szTmp;
m_szAlbum = QString::fromStdWString(lpTag->album().toWString());
if(m_szAlbum.isEmpty())
m_szAlbum = QString::fromStdWString(lpTag->album().toWString());
szTmp = QString::fromStdWString(lpTag->artist().toWString()); szTmp = QString::fromStdWString(lpTag->artist().toWString());
if(!szTmp.isEmpty()) if(!szTmp.isEmpty() && m_szArtistList.isEmpty())
m_szArtistList = szTmp.split("\n"); m_szArtistList = szTmp.split("\n");
m_szAlbum = QString::fromStdWString(lpTag->album().toWString()); if(m_szComment.isEmpty())
m_szComment = QString::fromStdWString(lpTag->comment().toWString()); m_szComment = QString::fromStdWString(lpTag->comment().toWString());
szTmp = QString::fromStdWString(lpTag->genre().toWString()); szTmp = QString::fromStdWString(lpTag->genre().toWString());
if(!szTmp.isEmpty()) if(!szTmp.isEmpty() && m_szGenreList.isEmpty())
m_szGenreList = szTmp.split("\n"); m_szGenreList = szTmp.split("\n");
m_szTitle = QString::fromStdWString(lpTag->title().toWString()); if(m_szTitle.isEmpty())
m_szTrackNumber = QString("%1").arg(lpTag->track()); m_szTitle = QString::fromStdWString(lpTag->title().toWString());
m_iYear = lpTag->year(); if(m_szTrackNumber.isEmpty())
m_szTrackNumber = QString("%1").arg(lpTag->track());
if(m_iYear == 0)
m_iYear = lpTag->year();
} }
void cMediaInfo::readTagV2(ID3v2::Tag* lpTag) void cMediaInfo::readTagV2(ID3v2::Tag* lpTag)
@@ -876,48 +879,11 @@ QDateTime cMediaInfo::fileDate()
return(fileInfo.created()); return(fileInfo.created());
} }
cMediaInfo::MEDIA_TYPE cMediaInfo::fileType1() cMediaInfo::MEDIA_TYPE cMediaInfo::fileType()
{ {
return(m_fileType); return(m_fileType);
} }
QString cMediaInfo::fileType1Text()
{
switch(m_fileType)
{
case MEDIA_TYPE_APE:
return("APE");
case MEDIA_TYPE_ASF:
return("ASF");
case MEDIA_TYPE_FLAC:
return("FLAC");
case MEDIA_TYPE_MP4:
return("MP4");
case MEDIA_TYPE_MPC:
return("MPC");
case MEDIA_TYPE_MPEG:
return("MPEG");
case MEDIA_TYPE_TRUEAUDIO:
return("TrueAudio");
case MEDIA_TYPE_WAVPACK:
return("WavPack");
case MEDIA_TYPE_WAV:
return("Wave");
default:
return("unknown");
}
}
qint32 cMediaInfo::length1()
{
return(m_iLength);
}
QString cMediaInfo::length1Text()
{
return("not implemented");
}
qint16 cMediaInfo::bitrate() qint16 cMediaInfo::bitrate()
{ {
return(m_iBitrate); return(m_iBitrate);
@@ -1170,11 +1136,6 @@ QStringList cMediaInfo::contentType()
return(m_szContentType); return(m_szContentType);
} }
QString cMediaInfo::fileType()
{
return(m_szFileType);
}
QStringList cMediaInfo::mediaType() QStringList cMediaInfo::mediaType()
{ {
return(m_szMediaType); return(m_szMediaType);
+2 -5
View File
@@ -80,12 +80,9 @@ public:
QString fileName(); QString fileName();
qint64 fileSize(); qint64 fileSize();
QDateTime fileDate(); QDateTime fileDate();
MEDIA_TYPE fileType1(); cMediaInfo::MEDIA_TYPE fileType();
QString fileType1Text();
// //
qint32 length1();
QString length1Text();
qint16 bitrate(); qint16 bitrate();
QString bitrateText(); QString bitrateText();
qint32 sampleRate(); qint32 sampleRate();
@@ -143,7 +140,7 @@ public:
// TKEY // TKEY
QStringList language(); // TLAN QStringList language(); // TLAN
QStringList contentType(); // TCON QStringList contentType(); // TCON
QString fileType(); // TFLT // QString fileType(); // TFLT
QStringList mediaType(); // TMED QStringList mediaType(); // TMED
QString mood(); // TMOO QString mood(); // TMOO
+101
View File
@@ -0,0 +1,101 @@
#include "ctrack.h"
cTrack::cTrack(cAlbum* lpAlbum, const QString& szTitle, const qint16& trackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate& recordingTime) :
m_lpAlbum(lpAlbum),
m_szTitle(szTitle),
m_iTrackNumber(trackNumber),
m_szPartOfSet(szPartOfSet),
m_szBand(szBand),
m_szComposer(szComposer),
m_recordingTime(recordingTime)
{
}
void cTrack::setAlbum(cAlbum* lpAlbum)
{
m_lpAlbum = lpAlbum;
}
cAlbum* cTrack::album()
{
return(m_lpAlbum);
}
void cTrack::setTitle(const QString& szTitle)
{
m_szTitle = szTitle;
}
QString cTrack::title()
{
return(m_szTitle);
}
void cTrack::setTrackNumber(const qint16& trackNumber)
{
m_iTrackNumber = trackNumber;
}
qint16 cTrack::trackNumber()
{
return(m_iTrackNumber);
}
void cTrack::setPartOfSet(const QString& szPartOfSet)
{
m_szPartOfSet = szPartOfSet;
}
QString cTrack::partOfSet()
{
return(m_szPartOfSet);
}
void cTrack::setBand(const QString& szBand)
{
m_szBand = szBand;
}
QString cTrack::band()
{
return(m_szBand);
}
void cTrack::setComposer(const QString& szComposer)
{
m_szComposer = szComposer;
}
QString cTrack::composer()
{
return(m_szComposer);
}
void cTrack::setRecordingTime(const QDate& recordingTime)
{
m_recordingTime = recordingTime;
}
QDate cTrack::recordingTime()
{
return(m_recordingTime);
}
cTrack* cTrackList::add(cAlbum* lpAlbum, const QString& szTitle, const qint16& trackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate &recordingTime)
{
QString szTitle1 = szTitle;
QString szBand1 = szBand;
QString szComposer1 = szComposer;
if(szTitle1.isEmpty())
szTitle1 = "*** NO TITLE ***";
if(szBand1.isEmpty())
szBand1 = "*** NO BAND ***";
if(szComposer1.isEmpty())
szComposer1 = "*** NO COMPOSER ***";
cTrack* lpTrackNew = new cTrack(lpAlbum, szTitle1, trackNumber, szPartOfSet, szBand1, szComposer1, recordingTime);
append(lpTrackNew);
return(lpTrackNew);
}
+57
View File
@@ -0,0 +1,57 @@
#ifndef CTRACK_H
#define CTRACK_H
#include <QMetaType>
#include <QString>
#include <QDate>
#include <QList>
class cAlbum;
class cTrack
{
public:
cTrack(cAlbum* lpAlbum, const QString& szTitle, const qint16& trackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate& recordingTime);
void setAlbum(cAlbum* lpAlbum);
cAlbum* album();
void setTitle(const QString& szTitle);
QString title();
void setTrackNumber(const qint16& trackNumber);
qint16 trackNumber();
void setPartOfSet(const QString& szPartOfSet);
QString partOfSet();
void setBand(const QString& szBand);
QString band();
void setComposer(const QString& szComposer);
QString composer();
void setRecordingTime(const QDate &recordingTime);
QDate recordingTime();
private:
cAlbum* m_lpAlbum;
QString m_szTitle;
qint16 m_iTrackNumber;
QString m_szPartOfSet;
QString m_szBand;
QString m_szComposer;
QDate m_recordingTime;
};
Q_DECLARE_METATYPE(cTrack*)
class cTrackList : public QList<cTrack*>
{
public:
cTrack* add(cAlbum* lpAlbum, const QString& szTitle, const qint16& trackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate& recordingTime);
};
#endif // CTRACK_H
+4 -2
View File
@@ -46,7 +46,8 @@ SOURCES += main.cpp\
common.cpp \ common.cpp \
cpixmap.cpp \ cpixmap.cpp \
cmusicviewitemdelegate.cpp \ cmusicviewitemdelegate.cpp \
calbum.cpp calbum.cpp \
ctrack.cpp
HEADERS += cmainwindow.h \ HEADERS += cmainwindow.h \
cmediainfo.h \ cmediainfo.h \
@@ -56,6 +57,7 @@ HEADERS += cmainwindow.h \
common.h \ common.h \
cpixmap.h \ cpixmap.h \
cmusicviewitemdelegate.h \ cmusicviewitemdelegate.h \
calbum.h calbum.h \
ctrack.h
FORMS += cmainwindow.ui FORMS += cmainwindow.ui