diff --git a/FlippR-Driver/networking/FlippRServer.cpp b/FlippR-Driver/networking/FlippRServer.cpp index 112b405..2fc5f75 100644 --- a/FlippR-Driver/networking/FlippRServer.cpp +++ b/FlippR-Driver/networking/FlippRServer.cpp @@ -173,7 +173,9 @@ HTTPServer* FlippRServer::build_output_server() unsigned short port = (unsigned short) config().getInt("HTTPTimeServer.port", this->output_port); // todo XDG_RUNTIME_DIR - SocketAddress address; + std::string runtime_dir = this->get_runtime_dir(); + + SocketAddress address(runtime_dir + SOCKET_NAME); ServerSocket server_socket(address); return new HTTPServer(new OutputRequestHandlerFactory(this->output_driver), server_socket, new HTTPServerParams); @@ -184,7 +186,8 @@ TCPServer* FlippRServer::build_input_server() unsigned short port = (unsigned short) config().getInt("HTTPTimeServer.port", this->output_port); //TODO adapt path - SocketAddress address; + std::string runtime_dir = this->get_runtime_dir(); + SocketAddress address(runtime_dir + SOCKET_NAME); ServerSocket server_socket(address); return new TCPServer(new input::InputSocketHandlerFactory(this->input_driver), port); @@ -299,6 +302,14 @@ void FlippRServer::handle_help(const std::string& name, const std::string& value stopOptionsProcessing(); help_requested = true; } +std::string FlippRServer::get_runtime_dir() +{ + std::string runtime_dir = std::getenv("XDG_RUNTIME_DIR"); + if(runtime_dir == "") + { + runtime_dir = DEFAULT_RUNTIME_DIR; + } +} } } \ No newline at end of file diff --git a/FlippR-Driver/networking/FlippRServer.h b/FlippR-Driver/networking/FlippRServer.h index 8a987b2..0ebf711 100644 --- a/FlippR-Driver/networking/FlippRServer.h +++ b/FlippR-Driver/networking/FlippRServer.h @@ -37,11 +37,14 @@ private: void initialize_input_driver(); void parse_server_config_file(); + std::string get_runtime_dir(); Poco::Net::HTTPServer* build_output_server(); Poco::Net::TCPServer* build_input_server(); private: + const std::string DEFAULT_RUNTIME_DIR = "/tmp/flippR_driver-runtime/"; + const std::string SOCKET_NAME = "S.flippR_driver"; int input_port; int output_port; diff --git a/cli/FlippR_Networking.py b/cli/FlippR_Networking.py index 7604abe..782a951 100644 --- a/cli/FlippR_Networking.py +++ b/cli/FlippR_Networking.py @@ -40,3 +40,5 @@ class Networking: def writeDisplayScore(self, display, score): self.get("/displays" + display + "/write_score/" + str(score)) + def getInputEvent(self): + pass diff --git a/cli/main.py b/cli/main.py index 8628571..879b698 100644 --- a/cli/main.py +++ b/cli/main.py @@ -2,6 +2,7 @@ from cursesmenu import * from cursesmenu.items import * import argparse as ap from FlippR_Networking import Networking +import keyboard networking = {} @@ -28,11 +29,16 @@ def create_menu(): lamp_menu_item = SubmenuItem("Lamps", display_menu, menu) menu.append_item(lamp_menu_item) - # todo inputs + input_item = FunctionItem("Print Input", print_input) + menu.append_item(input_item) menu.show() +def print_input(): + while(not keyboard.is_pressed('q')): + print(networking.getInputEvent()) + def create_lamps_submenu(lamps): menu = CursesMenu("Output", "Lamps") for lamp in lamps: @@ -75,8 +81,10 @@ def create_submenu(title, items, fun): def main(): argparser = ap.ArgumentParser() - argparser.add_argument("input_socket", help="path to the input socket") argparser.add_argument("output_socket", help="path to the output socket") - argparser.parse_args() - networking = Networking(argparser.output_socket, argparser.input_socket) + argparser.add_argument("input_socket", help="path to the input socket") + args = argparser.parse_args() + networking = Networking(args.output_socket, args.input_socket) create_menu() + +main() \ No newline at end of file