2017-10-29 14:47:36 +03:00
|
|
|
#include "song.h"
|
2017-11-09 23:09:59 +03:00
|
|
|
|
2017-11-13 23:05:59 +03:00
|
|
|
namespace syncLib{
|
|
|
|
|
|
|
|
SongHeader::SongHeader()
|
2017-10-29 14:47:36 +03:00
|
|
|
{
|
2017-11-20 00:37:12 +03:00
|
|
|
this->id = -1;
|
2017-10-29 14:47:36 +03:00
|
|
|
this->name = "";
|
|
|
|
this->size = 0;
|
|
|
|
}
|
|
|
|
|
2017-11-13 23:05:59 +03:00
|
|
|
SongHeader& SongHeader::operator =(const SongHeader& right){
|
2017-10-29 14:47:36 +03:00
|
|
|
this->id = right.id;
|
|
|
|
this->name = right.name;
|
|
|
|
this->size = right.size;
|
|
|
|
return *this;
|
|
|
|
}
|
|
|
|
|
2017-11-13 23:05:59 +03:00
|
|
|
bool SongHeader::operator ==(const SongHeader& right){
|
2017-10-29 14:47:36 +03:00
|
|
|
return this->name == right.name && this->size == right.size;
|
|
|
|
}
|
|
|
|
|
2017-11-13 23:05:59 +03:00
|
|
|
unsigned int SongHeader::getSize() const{
|
2017-11-06 13:20:52 +03:00
|
|
|
QByteArray size;
|
2017-11-13 23:05:59 +03:00
|
|
|
QDataStream stream(size);
|
2017-11-06 13:20:52 +03:00
|
|
|
stream << id << name << this->size;
|
|
|
|
return size.size();
|
|
|
|
}
|
2017-10-29 14:47:36 +03:00
|
|
|
|
2017-12-02 14:35:39 +03:00
|
|
|
bool SongHeader::isValid() const{
|
|
|
|
|
|
|
|
return id > -1 && !name.isEmpty() && size > 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
SongHeader::~SongHeader(){}
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-13 23:05:59 +03:00
|
|
|
Song::Song():
|
|
|
|
SongHeader()
|
2017-10-29 14:47:36 +03:00
|
|
|
{
|
|
|
|
source.clear();
|
|
|
|
}
|
|
|
|
|
2017-11-13 23:05:59 +03:00
|
|
|
QDataStream& operator << (QDataStream& stream, const SongHeader& song){
|
2017-11-06 13:20:52 +03:00
|
|
|
stream << song.id;
|
|
|
|
stream << song.name;
|
|
|
|
stream << song.size;
|
|
|
|
return stream;
|
|
|
|
}
|
2017-11-13 23:05:59 +03:00
|
|
|
QDataStream& operator >> (QDataStream& stream, SongHeader& song){
|
2017-11-06 13:20:52 +03:00
|
|
|
stream >> song.id;
|
|
|
|
stream >> song.name;
|
|
|
|
stream >> song.size;
|
|
|
|
return stream;
|
|
|
|
}
|
|
|
|
|
2017-11-13 23:05:59 +03:00
|
|
|
Song::Song(const SongHeader& from)
|
|
|
|
:Song::Song()
|
2017-10-29 14:47:36 +03:00
|
|
|
{
|
|
|
|
this->id = from.id;
|
|
|
|
this->name = from.name;
|
|
|
|
this->size = from.size;
|
|
|
|
}
|
|
|
|
|
2017-11-13 23:05:59 +03:00
|
|
|
void Song::clear(){
|
2017-11-06 01:33:16 +03:00
|
|
|
source.clear();
|
|
|
|
}
|
|
|
|
|
2017-11-13 23:05:59 +03:00
|
|
|
unsigned int Song::getSize() const{
|
|
|
|
return SongHeader::getSize() + source.size();
|
2017-11-06 13:20:52 +03:00
|
|
|
}
|
|
|
|
|
2017-12-02 14:35:39 +03:00
|
|
|
bool Song::isValid() const{
|
|
|
|
|
|
|
|
return SongHeader::isValid() && source.size() == size;
|
|
|
|
}
|
|
|
|
|
|
|
|
Song::~Song(){
|
|
|
|
source.clear();
|
|
|
|
}
|
|
|
|
|
2017-11-13 23:05:59 +03:00
|
|
|
QDataStream& operator << (QDataStream& stream,const Song& song){
|
|
|
|
stream << static_cast<const SongHeader&>(song);
|
2017-11-06 13:20:52 +03:00
|
|
|
stream << song.source;
|
2017-11-13 23:05:59 +03:00
|
|
|
return stream;
|
2017-11-06 13:20:52 +03:00
|
|
|
}
|
|
|
|
|
2017-11-13 23:05:59 +03:00
|
|
|
QDataStream& operator >> (QDataStream& stream, Song& song){
|
|
|
|
stream >> static_cast<SongHeader&>(song);
|
2017-11-06 13:20:52 +03:00
|
|
|
stream >> song.source;
|
2017-11-13 23:05:59 +03:00
|
|
|
return stream;
|
|
|
|
}
|
|
|
|
|
2017-11-06 13:20:52 +03:00
|
|
|
}
|