added argparse
This commit is contained in:
parent
ec72e8888b
commit
5567ad0df0
3 changed files with 30 additions and 1 deletions
|
@ -6,12 +6,18 @@ set(CMAKE_CXX_STANDARD 20)
|
|||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
|
||||
include(FetchContent)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
|
||||
|
||||
FetchContent_Declare(argparse GIT_REPOSITORY https://github.com/p-ranav/argparse.git)
|
||||
FetchContent_MakeAvailable(argparse)
|
||||
pkg_check_modules(MPG123 REQUIRED libmpg123)
|
||||
pkg_check_modules(PORTAUDIO REQUIRED portaudio-2.0)
|
||||
pkg_check_modules(OpenSSL REQUIRED openssl)
|
||||
|
||||
|
||||
|
||||
add_executable(M2-PT-DRP
|
||||
source/main.cpp
|
||||
source/packets/audio/AudioPacketData.hpp
|
||||
|
@ -53,6 +59,7 @@ target_include_directories(M2-PT-DRP PRIVATE
|
|||
${OPENSSL_INCLUDE_DIRS}
|
||||
)
|
||||
target_link_libraries(M2-PT-DRP PRIVATE
|
||||
argparse
|
||||
${MPG123_LIBRARIES}
|
||||
${PORTAUDIO_LIBRARIES}
|
||||
${OPENSSL_LIBRARIES}
|
||||
|
|
|
@ -23,6 +23,9 @@
|
|||
|
||||
|
||||
EventManager::EventManager(const std::string& address, const std::string& port, const bool useIpv6) {
|
||||
std::cout << "address: " << address << " (" << (useIpv6 ? "IPv6" : "IPv4") << ")" << std::endl;
|
||||
std::cout << "port: " << port << std::endl;
|
||||
|
||||
// register the different events type
|
||||
this->eventRegistry = {
|
||||
{drp::event::EventType::PONG, std::make_shared<drp::event::PongEvent>()},
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include <mpg123.h>
|
||||
#include <portaudio.h>
|
||||
#include <stdexcept>
|
||||
#include "argparse/argparse.hpp"
|
||||
#include "EventManager.hpp"
|
||||
|
||||
|
||||
|
@ -13,10 +14,28 @@ int main(int argc, char* argv[]) {
|
|||
if (Pa_Initialize() != paNoError)
|
||||
throw std::runtime_error("Could not initialize PortAudio.");
|
||||
|
||||
EventManager eventManager = EventManager("127.0.0.1", "15650", false);
|
||||
argparse::ArgumentParser parser("Program");
|
||||
parser.add_argument("-h", "--host").help("Host address").default_value(std::string("127.0.0.1"));
|
||||
parser.add_argument("-p", "--port").help("Port").default_value(std::string("15650"));
|
||||
parser.add_argument("-6", "--ipv6").help("Use IPv6").flag();
|
||||
|
||||
try {
|
||||
parser.parse_args(argc, argv);
|
||||
} catch (const std::exception& exception) {
|
||||
std::cerr << exception.what() << std::endl;
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
auto eventManager = EventManager(
|
||||
parser.get<std::string>("--host"),
|
||||
parser.get<std::string>("--port"),
|
||||
parser.get<bool>("-6")
|
||||
);
|
||||
eventManager.loop();
|
||||
|
||||
// terminate the libraries
|
||||
Pa_Terminate();
|
||||
mpg123_exit();
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue