snapcast/client/controller.h
(no author) 0a20924e66 code cleanup
git-svn-id: svn://elaine/murooma/trunk@337 d8a302eb-03bc-478d-80e4-98257eca68ef
2015-01-01 18:15:20 +00:00

37 lines
868 B
C++

#ifndef CONTROLLER_H
#define CONTROLLER_H
#include <thread>
#include <atomic>
#include "message/message.h"
#include "clientConnection.h"
#include "decoder.h"
#include "stream.h"
#include "pcmDevice.h"
class Controller : public MessageReceiver
{
public:
Controller();
void start(const PcmDevice& pcmDevice, const std::string& ip, size_t port, size_t latency);
void stop();
virtual void onMessageReceived(ClientConnection* connection, const msg::BaseMessage& baseMessage, char* buffer);
virtual void onException(ClientConnection* connection, const std::exception& exception);
private:
void worker();
std::atomic<bool> active_;
std::thread* controllerThread_;
ClientConnection* clientConnection_;
Stream* stream_;
std::string ip_;
std::shared_ptr<msg::SampleFormat> sampleFormat_;
Decoder* decoder_;
PcmDevice pcmDevice_;
size_t latency_;
};
#endif