diff --git a/client/controller.cpp b/client/controller.cpp new file mode 100644 index 00000000..3277e550 --- /dev/null +++ b/client/controller.cpp @@ -0,0 +1,59 @@ +#include "controller.h" +#include +#include + + +using namespace std; + + +Controller::Controller() : MessageReceiver(), active_(false) +{ +} + + +void Controller::onMessageReceived(BaseMessage* message) +{ + if (message->type == message_type::payload) + { +/* if (decoder.decode((PcmChunk*)message)) + stream_->addChunk((PcmChunk*)message); + else +*/ delete message; +//cout << ", decoded: " << chunk->payloadSize << ", Duration: " << chunk->getDuration() << ", sec: " << chunk->tv_sec << ", usec: " << chunk->tv_usec/1000 << ", type: " << chunk->type << "\n"; + } + else if (message->type == message_type::header) + { +// decoder.setHeader((HeaderMessage*)message); + } + else if (message->type == message_type::sampleformat) + { + SampleFormat* sampleFormat = (SampleFormat*)message; + cout << "SampleFormat rate: " << sampleFormat->rate << ", bits: " << sampleFormat->bits << ", channels: " << sampleFormat->channels << "\n"; + delete sampleFormat; + } +} + + +void Controller::start() +{ + + controllerThread = new thread(&Controller::worker, this); +} + + +void Controller::stop() +{ + active_ = false; +} + + +void Controller::worker() +{ + active_ = true; + while (active_) + { + usleep(10000); + } +} + + diff --git a/client/controller.h b/client/controller.h new file mode 100644 index 00000000..218c293d --- /dev/null +++ b/client/controller.h @@ -0,0 +1,26 @@ +#ifndef CONTROLLER_H +#define CONTROLLER_H + +#include +#include +#include +#include "serverConnection.h" + + +class Controller : public MessageReceiver +{ +public: + Controller(); + void start(); + void stop(); + virtual void onMessageReceived(BaseMessage* message); + +private: + void worker(); + std::atomic active_; + std::thread* controllerThread; +}; + + +#endif + diff --git a/client/controller.o b/client/controller.o new file mode 100644 index 00000000..8377ed65 Binary files /dev/null and b/client/controller.o differ