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)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
|
||||||
|
include(FetchContent)
|
||||||
find_package(PkgConfig REQUIRED)
|
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(MPG123 REQUIRED libmpg123)
|
||||||
pkg_check_modules(PORTAUDIO REQUIRED portaudio-2.0)
|
pkg_check_modules(PORTAUDIO REQUIRED portaudio-2.0)
|
||||||
pkg_check_modules(OpenSSL REQUIRED openssl)
|
pkg_check_modules(OpenSSL REQUIRED openssl)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
add_executable(M2-PT-DRP
|
add_executable(M2-PT-DRP
|
||||||
source/main.cpp
|
source/main.cpp
|
||||||
source/packets/audio/AudioPacketData.hpp
|
source/packets/audio/AudioPacketData.hpp
|
||||||
|
@ -53,6 +59,7 @@ target_include_directories(M2-PT-DRP PRIVATE
|
||||||
${OPENSSL_INCLUDE_DIRS}
|
${OPENSSL_INCLUDE_DIRS}
|
||||||
)
|
)
|
||||||
target_link_libraries(M2-PT-DRP PRIVATE
|
target_link_libraries(M2-PT-DRP PRIVATE
|
||||||
|
argparse
|
||||||
${MPG123_LIBRARIES}
|
${MPG123_LIBRARIES}
|
||||||
${PORTAUDIO_LIBRARIES}
|
${PORTAUDIO_LIBRARIES}
|
||||||
${OPENSSL_LIBRARIES}
|
${OPENSSL_LIBRARIES}
|
||||||
|
|
|
@ -23,6 +23,9 @@
|
||||||
|
|
||||||
|
|
||||||
EventManager::EventManager(const std::string& address, const std::string& port, const bool useIpv6) {
|
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
|
// register the different events type
|
||||||
this->eventRegistry = {
|
this->eventRegistry = {
|
||||||
{drp::event::EventType::PONG, std::make_shared<drp::event::PongEvent>()},
|
{drp::event::EventType::PONG, std::make_shared<drp::event::PongEvent>()},
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include <mpg123.h>
|
#include <mpg123.h>
|
||||||
#include <portaudio.h>
|
#include <portaudio.h>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
#include "argparse/argparse.hpp"
|
||||||
#include "EventManager.hpp"
|
#include "EventManager.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
@ -13,10 +14,28 @@ int main(int argc, char* argv[]) {
|
||||||
if (Pa_Initialize() != paNoError)
|
if (Pa_Initialize() != paNoError)
|
||||||
throw std::runtime_error("Could not initialize PortAudio.");
|
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();
|
eventManager.loop();
|
||||||
|
|
||||||
// terminate the libraries
|
// terminate the libraries
|
||||||
Pa_Terminate();
|
Pa_Terminate();
|
||||||
mpg123_exit();
|
mpg123_exit();
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue