123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #ifndef MUMSI_MUMBLECOMMUNICATOR_HPP
- #define MUMSI_MUMBLECOMMUNICATOR_HPP
- #include "AbstractCommunicator.hpp"
- extern "C" {
- #include "libmumble.h"
- }
- #include <string>
- #include <stdexcept>
- #include <opus.h>
- #include <log4cpp/Category.hh>
- #include <sndfile.hh>
- namespace mumble {
- constexpr unsigned int SAMPLE_RATE = 48000;
- class Exception : public std::runtime_error {
- public:
- Exception(const char *message) : std::runtime_error(message) { }
- };
- class MumbleCommunicator : public AbstractCommunicator {
- public:
- MumbleCommunicator(
- SoundSampleQueue<SOUND_SAMPLE_TYPE> &inputQueue,
- SoundSampleQueue<SOUND_SAMPLE_TYPE> &outputQueue,
- std::string user,
- std::string password,
- std::string host,
- int port = 0);
- ~MumbleCommunicator();
- void loop();
- void receiveAudioFrameCallback(uint8_t *audio_data, uint32_t audio_data_size);
- private:
- log4cpp::Category &logger;
- mumble_struct *mumble;
- OpusDecoder *opusDecoder;
- OpusEncoder *opusEncoder;
- int outgoingAudioSequenceNumber;
- SndfileHandle fileHandle;
- };
- }
- #endif //MUMSI_MUMBLECOMMUNICATOR_HPP
|