From 44e2221107ea2f5f3c6831f08166e35fb9febe29 Mon Sep 17 00:00:00 2001 From: fduncanh Date: Mon, 2 Aug 2021 00:36:38 -0400 Subject: [PATCH] Add option -p [n] for setting network ports (use behind a firewall) (part 2) --- uxplay.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/uxplay.cpp b/uxplay.cpp index 1505f61..25fb4f3 100755 --- a/uxplay.cpp +++ b/uxplay.cpp @@ -45,6 +45,7 @@ int start_server(std::vector hw_addr, std::string name, unsigned short display_size[2], + unsigned short tcp[2], unsigned short udp[3], bool use_audio, bool debug_log); int stop_server(); @@ -194,6 +195,8 @@ int main(int argc, char *argv[]) { } else if (arg == "-h" || arg == "-v") { print_info(argv[0]); exit(0); + } else { + LOGI("unknown option %s, skipping\n",argv[i]); } } @@ -206,7 +209,7 @@ int main(int argc, char *argv[]) { parse_hw_addr(mac_address, server_hw_addr); } - if (start_server(server_hw_addr, server_name, display_size, use_audio, debug_log) != 0) { + if (start_server(server_hw_addr, server_name, display_size, tcp, udp, use_audio, debug_log) != 0) { return 1; } @@ -277,6 +280,7 @@ extern "C" void log_callback(void *cls, int level, const char *msg) { } int start_server(std::vector hw_addr, std::string name, unsigned short display_size[2], + unsigned short tcp[2], unsigned short udp[3], bool use_audio, bool debug_log) { raop_callbacks_t raop_cbs; memset(&raop_cbs, 0, sizeof(raop_cbs)); @@ -320,7 +324,11 @@ int start_server(std::vector hw_addr, std::string name, unsigned short dis /* write desired display pixel width, pixel height to raop (use 0 for default values) */ raop_set_display_size(raop, display_size[0], display_size[1]); - unsigned short port = 0; + /* network port selection (use value 0 for dynamic assignment) */ + raop_set_tcp_ports(raop, tcp); + raop_set_udp_ports(raop, udp); + + unsigned short port = raop_get_port(raop); raop_start(raop, &port); raop_set_port(raop, port);