MumbleCommunicator.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include <cstring>
  2. #include <functional>
  3. #include "MumbleCommunicator.hpp"
  4. namespace mumble {
  5. class MumlibCallback : public mumlib::BasicCallback {
  6. public:
  7. std::shared_ptr<mumlib::Mumlib> mum;
  8. MumbleCommunicator *communicator;
  9. virtual void audio(
  10. int16_t *pcm_data,
  11. uint32_t pcm_data_size) {
  12. communicator->samplesBuffer.pushSamples(pcm_data, pcm_data_size);
  13. }
  14. };
  15. }
  16. mumble::MumbleCommunicator::MumbleCommunicator(
  17. boost::asio::io_service &ioService,
  18. ISamplesBuffer &samplesBuffer,
  19. std::string user,
  20. std::string password,
  21. std::string host,
  22. int port) : ioService(ioService),
  23. samplesBuffer(samplesBuffer),
  24. logger(log4cpp::Category::getInstance("MumbleCommunicator")) {
  25. quit = false;
  26. callback.reset(new MumlibCallback());
  27. mum.reset(new mumlib::Mumlib(*callback, ioService));
  28. callback->communicator = this;
  29. callback->mum = mum;
  30. mum->connect(host, port, user, password);
  31. }
  32. mumble::MumbleCommunicator::~MumbleCommunicator() {
  33. mum->disconnect();
  34. }
  35. //
  36. //void mumble::MumbleCommunicator::senderThreadFunction() {
  37. // while (!quit) {
  38. //
  39. // }
  40. //}