overte/stack-manager/src/GlobalData.cpp
2015-11-19 18:27:58 -06:00

84 lines
3.6 KiB
C++

//
// GlobalData.cpp
// StackManagerQt/src
//
// Created by Mohammed Nafees on 6/25/14.
// Copyright (c) 2014 High Fidelity. All rights reserved.
//
#include "GlobalData.h"
#include "StackManagerVersion.h"
#include <QMutex>
#include <QStandardPaths>
#include <QDir>
#include <QDebug>
GlobalData& GlobalData::getInstance() {
static GlobalData staticInstance;
return staticInstance;
}
GlobalData::GlobalData() {
QString urlBase = URL_BASE;
#if defined Q_OS_OSX
_platform = "mac";
#elif defined Q_OS_WIN32
_platform = "win";
#elif defined Q_OS_LINUX
_platform = "linux";
#endif
_resourcePath = "resources/";
_assignmentClientExecutable = "assignment-client";
_domainServerExecutable = "domain-server";
QString applicationSupportDirectory = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
if (PR_BUILD) {
applicationSupportDirectory += "/pr-binaries";
}
_clientsLaunchPath = QDir::toNativeSeparators(applicationSupportDirectory + "/");
_clientsResourcePath = QDir::toNativeSeparators(applicationSupportDirectory + "/" + _resourcePath);
_assignmentClientExecutablePath = QDir::toNativeSeparators(_clientsLaunchPath + _assignmentClientExecutable);
if (_platform == "win") {
_assignmentClientExecutablePath.append(".exe");
}
_domainServerExecutablePath = QDir::toNativeSeparators(_clientsLaunchPath + _domainServerExecutable);
if (_platform == "win") {
_domainServerExecutablePath.append(".exe");
}
_requirementsURL = urlBase + "/binaries/" + _platform + "/requirements/requirements.zip";
_requirementsZipPath = _clientsLaunchPath + "requirements.zip";
_requirementsMD5URL = urlBase + "/binaries/" + _platform + "/requirements/requirements.md5";
_assignmentClientURL = urlBase + "/binaries/" + _platform + "/assignment-client" + (_platform == "win" ? "/assignment-client.exe" : "/assignment-client");
_domainServerResourcesURL = urlBase + "/binaries/" + _platform + "/domain-server/resources.zip";
_domainServerResourcesZipPath = _clientsLaunchPath + "resources.zip";
_domainServerResourcesMD5URL = urlBase + "/binaries/" + _platform + "/domain-server/resources.md5";
_domainServerURL = urlBase + "/binaries/" + _platform + "/domain-server" + (_platform == "win" ? "/domain-server.exe" : "/domain-server");
_assignmentClientMD5URL = urlBase + "/binaries/" + _platform + "/assignment-client/assignment-client.md5";
_domainServerMD5URL = urlBase + "/binaries/" + _platform + "/domain-server/domain-server.md5";
_defaultDomain = "localhost";
_logsPath = QDir::toNativeSeparators(_clientsLaunchPath + "logs/");
_availableAssignmentTypes.insert("audio-mixer", 0);
_availableAssignmentTypes.insert("avatar-mixer", 1);
_availableAssignmentTypes.insert("entity-server", 6);
// allow user to override path to binaries so that they can run their own builds
_hifiBuildDirectory = "";
_domainServerBaseUrl = "http://localhost:40100";
}
void GlobalData::setHifiBuildDirectory(const QString hifiBuildDirectory) {
_hifiBuildDirectory = hifiBuildDirectory;
_clientsLaunchPath = QDir::toNativeSeparators(_hifiBuildDirectory + "/assignment-client/");
_clientsResourcePath = QDir::toNativeSeparators(_clientsLaunchPath + "/" + _resourcePath);
_logsPath = QDir::toNativeSeparators(_clientsLaunchPath + "logs/");
_assignmentClientExecutablePath = QDir::toNativeSeparators(_clientsLaunchPath + _assignmentClientExecutable);
_domainServerExecutablePath = QDir::toNativeSeparators(_hifiBuildDirectory + "/domain-server/" + _domainServerExecutable);
}