added latency and volume to settings

This commit is contained in:
badaix 2015-08-31 23:38:02 +02:00
parent 128989ef98
commit 442263af31
2 changed files with 12 additions and 5 deletions

View file

@ -133,7 +133,7 @@ void Controller::worker()
msg::Request requestMsg(kServerSettings); msg::Request requestMsg(kServerSettings);
shared_ptr<msg::ServerSettings> serverSettings(NULL); shared_ptr<msg::ServerSettings> serverSettings(NULL);
while (active_ && !(serverSettings = clientConnection_->sendReq<msg::ServerSettings>(&requestMsg))); while (active_ && !(serverSettings = clientConnection_->sendReq<msg::ServerSettings>(&requestMsg)));
logO << "ServerSettings buffer: " << serverSettings->bufferMs << "\n"; logO << "ServerSettings buffer: " << serverSettings->bufferMs << ", latency: " << serverSettings->latency << ", volume: " << serverSettings->volume << "\n";
requestMsg.request = kSampleFormat; requestMsg.request = kSampleFormat;
while (active_ && !(sampleFormat_ = clientConnection_->sendReq<msg::SampleFormat>(&requestMsg))); while (active_ && !(sampleFormat_ = clientConnection_->sendReq<msg::SampleFormat>(&requestMsg)));
@ -168,6 +168,7 @@ void Controller::worker()
stream_->setBufferLen(serverSettings->bufferMs - latency_); stream_->setBufferLen(serverSettings->bufferMs - latency_);
Player player(pcmDevice_, stream_); Player player(pcmDevice_, stream_);
player.setVolume(serverSettings->volume);
player.start(); player.start();
msg::Command startStream("startStream"); msg::Command startStream("startStream");

View file

@ -28,7 +28,7 @@ namespace msg
class ServerSettings : public BaseMessage class ServerSettings : public BaseMessage
{ {
public: public:
ServerSettings() : BaseMessage(message_type::kServerSettings) ServerSettings() : BaseMessage(message_type::kServerSettings), bufferMs(0), latency(0), volume(1.0)
{ {
} }
@ -38,20 +38,26 @@ public:
virtual void read(std::istream& stream) virtual void read(std::istream& stream)
{ {
stream.read(reinterpret_cast<char *>(&bufferMs), sizeof(int32_t)); stream.read(reinterpret_cast<char*>(&bufferMs), sizeof(int32_t));
stream.read(reinterpret_cast<char*>(&latency), sizeof(int32_t));
stream.read(reinterpret_cast<char*>(&volume), sizeof(double));
} }
virtual uint32_t getSize() const virtual uint32_t getSize() const
{ {
return sizeof(int32_t); return sizeof(int32_t) + sizeof(int32_t) + sizeof(double);
} }
int32_t bufferMs; int32_t bufferMs;
int32_t latency;
double volume;
protected: protected:
virtual void doserialize(std::ostream& stream) const virtual void doserialize(std::ostream& stream) const
{ {
stream.write(reinterpret_cast<const char *>(&bufferMs), sizeof(int32_t)); stream.write(reinterpret_cast<const char*>(&bufferMs), sizeof(int32_t));
stream.write(reinterpret_cast<const char*>(&latency), sizeof(int32_t));
stream.write(reinterpret_cast<const char*>(&volume), sizeof(double));
} }
}; };