92 lines
1.9 KiB
C++
92 lines
1.9 KiB
C++
#include "Player.h"
|
|
|
|
#include <iostream>
|
|
#include <string>
|
|
|
|
namespace {
|
|
|
|
void printUsage() {
|
|
std::cout
|
|
<< "Usage:\n"
|
|
<< " sender file <audio-file> <port> <ip> [ip ...] [--no-local]\n"
|
|
<< " sender mic <port> <ip> [ip ...] [--no-local]\n";
|
|
}
|
|
|
|
bool configureTargets(Player& player, int startIndex, int argc, char** argv) {
|
|
bool hasTarget = false;
|
|
bool localPlayback = true;
|
|
|
|
for (int i = startIndex; i < argc; ++i) {
|
|
const std::string arg = argv[i];
|
|
if (arg == "--no-local") {
|
|
localPlayback = false;
|
|
continue;
|
|
}
|
|
|
|
player.addAddress(arg);
|
|
hasTarget = true;
|
|
}
|
|
|
|
if (!hasTarget) {
|
|
return false;
|
|
}
|
|
|
|
player.setLocalPlayback(localPlayback);
|
|
return true;
|
|
}
|
|
|
|
}
|
|
|
|
int main(int argc, char** argv) {
|
|
if (argc < 2) {
|
|
printUsage();
|
|
return 1;
|
|
}
|
|
|
|
const std::string mode = argv[1];
|
|
|
|
if (mode == "file") {
|
|
if (argc < 5) {
|
|
printUsage();
|
|
return 1;
|
|
}
|
|
|
|
Player player(std::stoi(argv[3]));
|
|
if (!configureTargets(player, 4, argc, argv)) {
|
|
printUsage();
|
|
return 1;
|
|
}
|
|
player.setFilePath(argv[2]);
|
|
player.playFile();
|
|
std::cout << "Press ENTER to stop\n";
|
|
std::cin.get();
|
|
player.stopPlayback();
|
|
}
|
|
else if (mode == "mic") {
|
|
if (argc < 4) {
|
|
printUsage();
|
|
return 1;
|
|
}
|
|
|
|
Player player(std::stoi(argv[2]));
|
|
if (!configureTargets(player, 3, argc, argv)) {
|
|
printUsage();
|
|
return 1;
|
|
}
|
|
if (!player.playMic()) {
|
|
return 1;
|
|
}
|
|
|
|
std::cout << "Press ENTER to stop\n";
|
|
std::cin.get();
|
|
player.stopPlayback();
|
|
}
|
|
else {
|
|
std::cerr << "Unknown mode\n";
|
|
printUsage();
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|