mumlib_example.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "mumlib.hpp"
  2. #include "log4cpp/Category.hh"
  3. #include "log4cpp/FileAppender.hh"
  4. #include "log4cpp/OstreamAppender.hh"
  5. class MyCallback : public mumlib::BasicCallback {
  6. public:
  7. mumlib::Mumlib *mum;
  8. virtual void audio(int target,
  9. int sessionId,
  10. int sequenceNumber,
  11. int16_t *pcm_data,
  12. uint32_t pcm_data_size) override {
  13. mum->sendAudioData(pcm_data, pcm_data_size);
  14. }
  15. virtual void textMessage(
  16. uint32_t actor,
  17. std::vector<uint32_t> session,
  18. std::vector<uint32_t> channel_id,
  19. std::vector<uint32_t> tree_id,
  20. std::string message) override {
  21. mumlib::BasicCallback::textMessage(actor, session, channel_id, tree_id, message);
  22. mum->sendTextMessage("someone said: " + message);
  23. }
  24. };
  25. int main(int argc, char *argv[]) {
  26. log4cpp::Appender *appender1 = new log4cpp::OstreamAppender("console", &std::cout);
  27. appender1->setLayout(new log4cpp::BasicLayout());
  28. log4cpp::Category &logger = log4cpp::Category::getRoot();
  29. logger.setPriority(log4cpp::Priority::NOTICE);
  30. logger.addAppender(appender1);
  31. if (argc < 3) {
  32. logger.crit("Usage: %s {server} {password}", argv[0]);
  33. return 1;
  34. }
  35. MyCallback myCallback;
  36. mumlib::Mumlib mum(myCallback);
  37. myCallback.mum = &mum;
  38. mum.connect(argv[1], 64738, "mumlib_example", argv[2]);
  39. mum.run();
  40. return 0;
  41. }