mirror of
https://github.com/QuasarApp/SoundBand.git
synced 2025-05-20 19:09:33 +00:00
buidl fix
This commit is contained in:
parent
b7b4e3182b
commit
3acfbb5a10
@ -3,38 +3,39 @@
|
|||||||
#include "song.h"
|
#include "song.h"
|
||||||
#include <QDataStream>
|
#include <QDataStream>
|
||||||
|
|
||||||
|
namespace syncLib{
|
||||||
|
|
||||||
syncLib::package::package(){
|
package::package(){
|
||||||
type = syncLib::package::t_void;
|
type = package::t_void;
|
||||||
source.clear();
|
source.clear();
|
||||||
playdata.run = 0;
|
playdata.run = 0;
|
||||||
playdata.seek = 0;
|
playdata.seek = 0;
|
||||||
size = 0;
|
size = 0;
|
||||||
}
|
}
|
||||||
syncLib::package::package(const QByteArray &array):
|
package::package(const QByteArray &array):
|
||||||
syncLib::package::package(){
|
package::package(){
|
||||||
parseFrom(array);
|
parseFrom(array);
|
||||||
}
|
}
|
||||||
const Song& syncLib::package::getSong(){
|
const Song& package::getSong() const{
|
||||||
return source;
|
return source;
|
||||||
}
|
}
|
||||||
|
|
||||||
Syncer syncLib::package::getPlayData(){
|
Syncer package::getPlayData() const{
|
||||||
return playdata;
|
return playdata;
|
||||||
}
|
}
|
||||||
|
|
||||||
syncLib::package::TypePackage syncLib::package::getType(){
|
package::TypePackage package::getType() const{
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool syncLib::package::isValid(){
|
bool package::isValid() const{
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case package::t_void:
|
case package::t_void:
|
||||||
return false;
|
return false;
|
||||||
case package::t_close:
|
case package::t_close:
|
||||||
return true;
|
return true;
|
||||||
case package::t_sync:
|
case package::t_sync:
|
||||||
return Syncer.run > 0 && Syncer.seek > 0;
|
return playdata.run > 0 && playdata.seek > 0;
|
||||||
case package::t_song:
|
case package::t_song:
|
||||||
return source.size > 0;
|
return source.size > 0;
|
||||||
case package::t_stop:
|
case package::t_stop:
|
||||||
@ -44,9 +45,9 @@ bool syncLib::package::isValid(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray syncLib::package::parseTo(){
|
QByteArray package::parseTo(){
|
||||||
QByteArray temp;
|
QByteArray temp;
|
||||||
QDataStream stream(&temp);
|
QDataStream stream(temp);
|
||||||
temp.clear();
|
temp.clear();
|
||||||
if(isValid()){
|
if(isValid()){
|
||||||
switch (type) {
|
switch (type) {
|
||||||
@ -82,13 +83,13 @@ QByteArray syncLib::package::parseTo(){
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return temp;
|
|
||||||
}
|
}
|
||||||
|
return temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool syncLib::package::parseFrom(const QByteArray &array){
|
bool package::parseFrom(const QByteArray &array){
|
||||||
type = t_void;
|
type = t_void;
|
||||||
QDataStream stream(&array);
|
QDataStream stream(array);
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case package::t_void:
|
case package::t_void:
|
||||||
return false;
|
return false;
|
||||||
@ -108,51 +109,51 @@ bool syncLib::package::parseFrom(const QByteArray &array){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
syncLib::Node::Node():QTcpServer(){
|
Node::Node():QTcpServer(){
|
||||||
connect(this,SIGNAL(acceptError(QAbstractSocket::SocketError)),SLOT(acceptError_(QAbstractSocket::SocketError)));
|
connect(this,SIGNAL(acceptError(QAbstractSocket::SocketError)),SLOT(acceptError_(QAbstractSocket::SocketError)));
|
||||||
connect(this,SIGNAL(newConnection()),SLOT(newConnection_()));
|
connect(this,SIGNAL(newConnection()),SLOT(newConnection_()));
|
||||||
}
|
}
|
||||||
void syncLib::Node::acceptError_(QTcpSocket*c){
|
void Node::acceptError_(QTcpSocket*c){
|
||||||
c->close();
|
c->close();
|
||||||
clients.removeOne(c);
|
clients.removeOne(c);
|
||||||
emit ClientDisconnected(c);
|
emit ClientDisconnected(c);
|
||||||
delete c;
|
delete c;
|
||||||
}
|
}
|
||||||
QList<QTcpSocket*>* syncLib::Node::getClients(){
|
QList<QTcpSocket*>* Node::getClients(){
|
||||||
return &clients;
|
return &clients;
|
||||||
}
|
}
|
||||||
void syncLib::Node::newConnection_(){
|
void Node::newConnection_(){
|
||||||
QTcpSocket *newClient=new QTcpSocket(nextPendingConnection());
|
QTcpSocket *newClient=new QTcpSocket(nextPendingConnection());
|
||||||
clients.push_back(newClient);
|
clients.push_back(newClient);
|
||||||
connect(newClient,SIGNAL(Disconnected(ETcpSocket*)),this,SLOT(acceptError_(QTcpSocket*)));
|
connect(newClient,SIGNAL(Disconnected(ETcpSocket*)),this,SLOT(acceptError_(QTcpSocket*)));
|
||||||
connect(newClient,SIGNAL(Message(ETcpSocket*)),this,SLOT(readData(QTcpSocket*)));
|
connect(newClient,SIGNAL(Message(ETcpSocket*)),this,SLOT(readData(QTcpSocket*)));
|
||||||
emit ClientConnected(newClient);
|
emit ClientConnected(newClient);
|
||||||
}
|
}
|
||||||
void syncLib::Node::readData(QTcpSocket *c){
|
void Node::readData(QTcpSocket *c){
|
||||||
emit Message(c);
|
emit Message(c);
|
||||||
}
|
}
|
||||||
void syncLib::Node::WriteAll(const QByteArray &data){
|
void Node::WriteAll(const QByteArray &data){
|
||||||
for(QTcpSocket*i:clients){
|
for(QTcpSocket*i:clients){
|
||||||
i->write(data);
|
i->write(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void syncLib::Node::disconnectClient(QTcpSocket *c){
|
void Node::disconnectClient(QTcpSocket *c){
|
||||||
c->close();
|
c->close();
|
||||||
clients.removeOne(c);
|
clients.removeOne(c);
|
||||||
delete c;
|
delete c;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool syncLib::Node::addNode(const QString &node,int port){
|
bool Node::addNode(const QString &node,int port){
|
||||||
|
|
||||||
QTcpSocket *temp = new QTcpSocket;
|
QTcpSocket *temp = new QTcpSocket;
|
||||||
if(temp->bind(node,port) && temp->open(QIODevice::ReadWrite)){
|
if(temp->bind(QHostAddress(node),port) && temp->open(QIODevice::ReadWrite)){
|
||||||
clients.append(temp);
|
clients.append(temp);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool syncLib::Node::addNode(QTcpSocket *node){
|
bool Node::addNode(QTcpSocket *node){
|
||||||
if(node->isOpen()){
|
if(node->isOpen()){
|
||||||
clients.append(node);
|
clients.append(node);
|
||||||
return true;
|
return true;
|
||||||
@ -160,10 +161,14 @@ bool syncLib::Node::addNode(QTcpSocket *node){
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
syncLib::Node::~Node(){
|
Node::~Node(){
|
||||||
for(QTcpSocket *i:clients){
|
for(QTcpSocket *i:clients){
|
||||||
i->abort();
|
i->abort();
|
||||||
delete i;
|
delete i;
|
||||||
}
|
}
|
||||||
this->close();
|
this->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
#ifndef NODE_H
|
#ifndef NODE_H
|
||||||
#define NODE_H
|
#define NODE_H
|
||||||
#include <QTcpServer>
|
#include <QTcpServer>
|
||||||
#include "config.h"
|
#include <song.h>
|
||||||
class Song;
|
|
||||||
class Syncer;
|
class Syncer;
|
||||||
namespace syncLib {
|
namespace syncLib {
|
||||||
|
|
||||||
@ -57,9 +56,9 @@ public:
|
|||||||
* @return time of playning media data
|
* @return time of playning media data
|
||||||
*/
|
*/
|
||||||
Syncer getPlayData() const;
|
Syncer getPlayData() const;
|
||||||
unsigned char getType() const;
|
TypePackage getType() const;
|
||||||
bool isValid() const;
|
bool isValid() const;
|
||||||
QByteArray parseTo() const;
|
QByteArray parseTo();
|
||||||
bool parseFrom(const QByteArray& array);
|
bool parseFrom(const QByteArray& array);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,76 +1,81 @@
|
|||||||
#include "song.h"
|
#include "song.h"
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
syncLib::SongHeader::SongHeader()
|
namespace syncLib{
|
||||||
|
|
||||||
|
SongHeader::SongHeader()
|
||||||
{
|
{
|
||||||
this->id = 0;
|
this->id = 0;
|
||||||
this->name = "";
|
this->name = "";
|
||||||
this->size = 0;
|
this->size = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
syncLib::SongHeader& syncLib::SongHeader::operator =(const syncLib::SongHeader& right){
|
SongHeader& SongHeader::operator =(const SongHeader& right){
|
||||||
this->id = right.id;
|
this->id = right.id;
|
||||||
this->name = right.name;
|
this->name = right.name;
|
||||||
this->size = right.size;
|
this->size = right.size;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool syncLib::SongHeader::operator ==(const syncLib::SongHeader& right){
|
bool SongHeader::operator ==(const SongHeader& right){
|
||||||
return this->name == right.name && this->size == right.size;
|
return this->name == right.name && this->size == right.size;
|
||||||
}
|
}
|
||||||
|
|
||||||
syncLib::SongHeader::getSize(){
|
unsigned int SongHeader::getSize() const{
|
||||||
QByteArray size;
|
QByteArray size;
|
||||||
QDataStream stream(&size);
|
QDataStream stream(size);
|
||||||
stream << id << name << this->size;
|
stream << id << name << this->size;
|
||||||
return size.size();
|
return size.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
syncLib::Song::Song():
|
Song::Song():
|
||||||
syncLib::SongHeader()
|
SongHeader()
|
||||||
{
|
{
|
||||||
source.clear();
|
source.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
friend QDataStream& operator << (QDataStream& stream, const syncLib::SongHeader& song){
|
QDataStream& operator << (QDataStream& stream, const SongHeader& song){
|
||||||
stream << song.id;
|
stream << song.id;
|
||||||
stream << song.name;
|
stream << song.name;
|
||||||
stream << song.size;
|
stream << song.size;
|
||||||
return stream;
|
return stream;
|
||||||
}
|
}
|
||||||
friend QDataStream& operator >> (QDataStream& stream, syncLib::SongHeader& song){
|
QDataStream& operator >> (QDataStream& stream, SongHeader& song){
|
||||||
stream >> song.id;
|
stream >> song.id;
|
||||||
stream >> song.name;
|
stream >> song.name;
|
||||||
stream >> song.size;
|
stream >> song.size;
|
||||||
return stream;
|
return stream;
|
||||||
}
|
}
|
||||||
|
|
||||||
syncLib::Song::Song(const SongHeader& from)
|
Song::Song(const SongHeader& from)
|
||||||
:syncLib::Song::Song()
|
:Song::Song()
|
||||||
{
|
{
|
||||||
this->id = from.id;
|
this->id = from.id;
|
||||||
this->name = from.name;
|
this->name = from.name;
|
||||||
this->size = from.size;
|
this->size = from.size;
|
||||||
}
|
}
|
||||||
|
|
||||||
syncLib::Song::clear(){
|
void Song::clear(){
|
||||||
source.clear();
|
source.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
syncLib::Song::~Song(){
|
Song::~Song(){
|
||||||
source.clear();
|
source.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
syncLib::Song::getSize(){
|
unsigned int Song::getSize() const{
|
||||||
return syncLib::SongHeader::getSize() + source.size();
|
return SongHeader::getSize() + source.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
QDataStream operator << (QDataStream& stream,const syncLib::Song& song){
|
QDataStream& operator << (QDataStream& stream,const Song& song){
|
||||||
stream << (syncLib::SongHeader)(*this);
|
stream << static_cast<const SongHeader&>(song);
|
||||||
stream << song.source;
|
stream << song.source;
|
||||||
|
return stream;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDataStream operator << (QDataStream& stream, syncLib::Song& song){
|
QDataStream& operator >> (QDataStream& stream, Song& song){
|
||||||
stream >> (syncLib::SongHeader)(*this);
|
stream >> static_cast<SongHeader&>(song);
|
||||||
stream >> song.source;
|
stream >> song.source;
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
#include <QDataStream>
|
#include <QDataStream>
|
||||||
|
#include <config.h>
|
||||||
/**
|
/**
|
||||||
* @brief Time_point on nanosecunds (uint64_t)
|
* @brief Time_point on nanosecunds (uint64_t)
|
||||||
*/
|
*/
|
||||||
typedef uint64_t microseconds;
|
typedef quint64 microseconds;
|
||||||
|
|
||||||
namespace syncLib {
|
namespace syncLib {
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ public:
|
|||||||
SongHeader();
|
SongHeader();
|
||||||
SongHeader& operator = (const SongHeader& right);
|
SongHeader& operator = (const SongHeader& right);
|
||||||
bool operator == (const SongHeader& right);
|
bool operator == (const SongHeader& right);
|
||||||
virtual unsigned int getSize();
|
virtual unsigned int getSize()const;
|
||||||
virtual ~SongHeader();
|
virtual ~SongHeader();
|
||||||
friend QDataStream& operator << (QDataStream& stream, const SongHeader& song);
|
friend QDataStream& operator << (QDataStream& stream, const SongHeader& song);
|
||||||
friend QDataStream& operator >> (QDataStream& stream, SongHeader& song);
|
friend QDataStream& operator >> (QDataStream& stream, SongHeader& song);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user