mirror of
https://github.com/QuasarApp/SoundBand.git
synced 2025-05-06 12:09:34 +00:00
calc ping for sync
This commit is contained in:
parent
cd62c20e97
commit
d3d7cf66ff
@ -17,11 +17,10 @@
|
||||
#define DEFAULT_NRTWORK 0 // the network number from which the address will be taken.
|
||||
#define LOCAL_HOST "127.0.0.1"
|
||||
#define DEFAULT_PORT 1994
|
||||
#define MAX_SYNC_TIME 20 * 1000 // 10 sec on millisec
|
||||
#define RESYNC_TIME 1000 // 1 sec on millisec
|
||||
#define MAX_RESYNC_COUNT 3
|
||||
#define SYNC_TIME 5 * 1000 // 5 sec on millisec
|
||||
#define DEEP_SCANER_INTERVAL 10000 // 10 sec
|
||||
#define DEEP_SCANER_INTERVAL 1000 // 1 sec
|
||||
#define CHECK_PING_INTERVAL 5 * 60 *1000 // 5 minutes
|
||||
|
||||
// sync
|
||||
|
@ -25,6 +25,8 @@ Sync::Sync(const QString address, int port, const QString &datadir):
|
||||
|
||||
fbroadcaster = false;
|
||||
resyncCount = 0;
|
||||
lastSyncTime = 0;
|
||||
ping = 0;
|
||||
|
||||
sql = new MySql(datadir);
|
||||
sql->updateAvailableSongs(playList);
|
||||
@ -201,8 +203,11 @@ bool Sync::createPackage(Type type, package &pac){
|
||||
|
||||
pac.type = type;
|
||||
|
||||
if(type & TypePackage::t_sync && fbroadcaster){
|
||||
pac.playdata.seek = player->position();
|
||||
if(type & TypePackage::t_sync){
|
||||
if(lastSyncTime)
|
||||
pac.playdata.seek = player->position();
|
||||
else
|
||||
lastSyncTime = ChronoTime::now();
|
||||
|
||||
}
|
||||
|
||||
@ -253,16 +258,20 @@ void Sync::packageRender(ETcpSocket *socket){
|
||||
emit networkStateChange();
|
||||
}
|
||||
|
||||
// if(fbroadcaster == (pkg.getType() & t_brodcaster)){
|
||||
// throw BrodcastConflict();
|
||||
// socket->nextItem();
|
||||
// continue;
|
||||
// }
|
||||
|
||||
if(pkg.getType() & t_brodcaster){
|
||||
|
||||
// if requst from server
|
||||
if(pkg.getType() & t_sync && !sync(pkg.getPlayData(), 10)){
|
||||
|
||||
// calc ping for sync
|
||||
bool fFromRequst = false;
|
||||
if(lastSyncTime){
|
||||
ping = ChronoTime::now() - lastSyncTime;
|
||||
lastSyncTime = 0;
|
||||
fFromRequst = true;
|
||||
}
|
||||
|
||||
if(pkg.getType() & t_sync &&
|
||||
!sync(pkg.getPlayData(), (fFromRequst)? ping: ping/2)){
|
||||
|
||||
QTimer::singleShot(RESYNC_TIME, [=]() {
|
||||
package pac;
|
||||
|
@ -29,6 +29,8 @@ private:
|
||||
QList<ETcpSocket*> servers;
|
||||
bool fbroadcaster;
|
||||
int resyncCount;
|
||||
int lastSyncTime;
|
||||
int ping;
|
||||
LocalScanner deepScaner;
|
||||
MySql *sql;
|
||||
int port;
|
||||
|
Loading…
x
Reference in New Issue
Block a user