made serversettings local

This commit is contained in:
badaix 2015-09-05 23:26:31 +02:00
parent 68b33c34b8
commit a484ff1b2d
3 changed files with 24 additions and 14 deletions

View file

@ -212,6 +212,8 @@ void Controller::worker()
logS(kLogErr) << "Exception in Controller::worker(): " << e.what() << endl; logS(kLogErr) << "Exception in Controller::worker(): " << e.what() << endl;
logO << "Stopping clientConnection" << endl; logO << "Stopping clientConnection" << endl;
clientConnection_->stop(); clientConnection_->stop();
if (player_ != nullptr)
player_->stop();
logO << "Deleting stream" << endl; logO << "Deleting stream" << endl;
if (stream_ != NULL) if (stream_ != NULL)
delete stream_; delete stream_;

View file

@ -34,7 +34,6 @@ using json = nlohmann::json;
StreamServer::StreamServer(const StreamServerSettings& streamServerSettings) : settings_(streamServerSettings), sampleFormat_(streamServerSettings.sampleFormat) StreamServer::StreamServer(const StreamServerSettings& streamServerSettings) : settings_(streamServerSettings), sampleFormat_(streamServerSettings.sampleFormat)
{ {
serverSettings_.bufferMs = settings_.bufferMs;
} }
@ -118,6 +117,8 @@ void StreamServer::onMessageReceived(ControlSession* connection, const std::stri
json response; json response;
ClientInfoPtr clientInfo = nullptr; ClientInfoPtr clientInfo = nullptr;
msg::ServerSettings serverSettings;
serverSettings.bufferMs = settings_.bufferMs;
if (request.method.find("Client.Set") == 0) if (request.method.find("Client.Set") == 0)
{ {
@ -148,21 +149,18 @@ void StreamServer::onMessageReceived(ControlSession* connection, const std::stri
} }
else if (request.method == "Client.SetVolume") else if (request.method == "Client.SetVolume")
{ {
serverSettings_.volume = request.getParam<uint16_t>("volume", 0, 100); clientInfo->volume.percent = request.getParam<uint16_t>("volume", 0, 100);
response = serverSettings_.volume; response = clientInfo->volume.percent;
clientInfo->volume.percent = serverSettings_.volume;
} }
else if (request.method == "Client.SetMute") else if (request.method == "Client.SetMute")
{ {
serverSettings_.muted = request.getParam<bool>("mute", false, true); clientInfo->volume.muted = request.getParam<bool>("mute", false, true);
response = serverSettings_.muted; response = clientInfo->volume.muted;
clientInfo->volume.muted = serverSettings_.muted;
} }
else if (request.method == "Client.SetLatency") else if (request.method == "Client.SetLatency")
{ {
serverSettings_.latency = request.getParam<int>("latency", -10000, serverSettings_.bufferMs); clientInfo->latency = request.getParam<int>("latency", -10000, settings_.bufferMs);
response = serverSettings_.latency; response = clientInfo->latency;
clientInfo->latency = serverSettings_.latency;
} }
else if (request.method == "Client.SetName") else if (request.method == "Client.SetName")
{ {
@ -174,9 +172,13 @@ void StreamServer::onMessageReceived(ControlSession* connection, const std::stri
if (clientInfo != nullptr) if (clientInfo != nullptr)
{ {
serverSettings.volume = clientInfo->volume.percent;
serverSettings.muted = clientInfo->volume.muted;
serverSettings.latency = clientInfo->latency;
ClientSession* session = getClientSession(request.getParam("client").get<string>()); ClientSession* session = getClientSession(request.getParam("client").get<string>());
if (session != NULL) if (session != NULL)
session->send(&serverSettings_); session->send(&serverSettings);
Config::instance().save(); Config::instance().save();
json notification = JsonNotification::getJson("Client.OnUpdate", clientInfo->toJson()); json notification = JsonNotification::getJson("Client.OnUpdate", clientInfo->toJson());
@ -216,8 +218,14 @@ void StreamServer::onMessageReceived(ClientSession* connection, const msg::BaseM
else if (requestMsg.request == kServerSettings) else if (requestMsg.request == kServerSettings)
{ {
std::unique_lock<std::mutex> mlock(mutex_); std::unique_lock<std::mutex> mlock(mutex_);
serverSettings_.refersTo = requestMsg.id; ClientInfoPtr clientInfo = Config::instance().getClientInfo(connection->macAddress, true);
connection->send(&serverSettings_); msg::ServerSettings serverSettings;
serverSettings.volume = clientInfo->volume.percent;
serverSettings.muted = clientInfo->volume.muted;
serverSettings.latency = clientInfo->latency;
serverSettings.refersTo = requestMsg.id;
serverSettings.bufferMs = settings_.bufferMs;
connection->send(&serverSettings);
} }
else if (requestMsg.request == kSampleFormat) else if (requestMsg.request == kSampleFormat)
{ {
@ -318,6 +326,7 @@ void StreamServer::start()
void StreamServer::stop() void StreamServer::stop()
{ {
controlServer->stop();
acceptor_->cancel(); acceptor_->cancel();
io_service_.stop(); io_service_.stop();
acceptThread_.join(); acceptThread_.join();

View file

@ -103,7 +103,6 @@ private:
StreamServerSettings settings_; StreamServerSettings settings_;
msg::SampleFormat sampleFormat_; msg::SampleFormat sampleFormat_;
msg::ServerSettings serverSettings_;
std::thread acceptThread_; std::thread acceptThread_;
Queue<std::shared_ptr<msg::BaseMessage>> messages_; Queue<std::shared_ptr<msg::BaseMessage>> messages_;
std::unique_ptr<ControlServer> controlServer; std::unique_ptr<ControlServer> controlServer;