From bf6d60363c3ca04aa4edd1c335f3cc04c0f44631 Mon Sep 17 00:00:00 2001 From: Joerg Hoppe Date: Thu, 19 Sep 2019 13:01:31 +0200 Subject: [PATCH] Reworked inputline() --- 10.03_app_demo/2_src/application.cpp | 12 +++++++----- 10.03_app_demo/2_src/application.hpp | 5 +++++ 10.03_app_demo/2_src/makefile | 2 +- 10.03_app_demo/2_src/menu_buslatches.cpp | 2 +- 10.03_app_demo/2_src/menu_ddrmem_slave_only.cpp | 2 +- 10.03_app_demo/2_src/menu_device_exercisers.cpp | 2 +- 10.03_app_demo/2_src/menu_devices.cpp | 8 ++++---- 10.03_app_demo/2_src/menu_gpio.cpp | 2 +- 10.03_app_demo/2_src/menu_interrupts.cpp | 2 +- 10.03_app_demo/2_src/menu_mailbox.cpp | 1 - 10.03_app_demo/2_src/menu_masterslave.cpp | 3 +-- 10.03_app_demo/2_src/menu_panel.cpp | 1 - 10.03_app_demo/2_src/menu_unibus_signals.cpp | 1 - 10.03_app_demo/2_src/menus.cpp | 4 ++-- 14 files changed, 25 insertions(+), 22 deletions(-) diff --git a/10.03_app_demo/2_src/application.cpp b/10.03_app_demo/2_src/application.cpp index b0b56f0..b757045 100644 --- a/10.03_app_demo/2_src/application.cpp +++ b/10.03_app_demo/2_src/application.cpp @@ -58,8 +58,8 @@ using namespace std; #include "logger.hpp" #include "getopt2.hpp" -#include "inputline.h" #include "kbhit.h" +#include "inputline.hpp" #include "pru.hpp" #include "mailbox.h" #include "gpios.hpp" @@ -72,6 +72,10 @@ using namespace std; #include "logger.hpp" #include "application.hpp" // own +// Singleton +application_c *app; + + application_c::application_c() { log_label = "APP"; } @@ -287,10 +291,10 @@ int application_c::run(int argc, char *argv[]) { FATAL("%s must be run as root to use prussdrv\n", argv[0]); } - inputline_init(); + inputline.init(); if (!opt_cmdfilename.empty()) { // read commands from file - if (!inputline_fopen((char*) opt_cmdfilename.c_str())) { + if (!inputline.openfile((char*) opt_cmdfilename.c_str())) { printf("%s\n", fileErrorText("Could not open command file \"%s\"", opt_cmdfilename.c_str())); @@ -316,8 +320,6 @@ int application_c::run(int argc, char *argv[]) { return 0; } -// Singleton -application_c *app; /* construct all singletons in proper order */ diff --git a/10.03_app_demo/2_src/application.hpp b/10.03_app_demo/2_src/application.hpp index 30fb385..d4ea383 100644 --- a/10.03_app_demo/2_src/application.hpp +++ b/10.03_app_demo/2_src/application.hpp @@ -37,6 +37,7 @@ #include "logsource.hpp" #include "getopt2.hpp" +#include "inputline.hpp" #include "pru.hpp" #include "parameter.hpp" #include "unibus.h" @@ -62,6 +63,7 @@ public: unsigned opt_linewidth = 80; string opt_cmdfilename; getopt_c getopt_parser; + inputline_c inputline ; void help(void); void commandline_error(void); void commandline_option_error(char *errtext, ...); @@ -110,5 +112,8 @@ public: }; +extern application_c *app; // Singleton + + #endif diff --git a/10.03_app_demo/2_src/makefile b/10.03_app_demo/2_src/makefile index 1c547f9..ac9c537 100644 --- a/10.03_app_demo/2_src/makefile +++ b/10.03_app_demo/2_src/makefile @@ -287,7 +287,7 @@ $(OBJDIR)/stringgrid.o : $(COMMON_SRC_DIR)/stringgrid.cpp $(COMMON_SRC_DIR)/str $(OBJDIR)/mcout.o : $(COMMON_SRC_DIR)/mcout.c $(COMMON_SRC_DIR)/mcout.h $(CC) $(CCFLAGS) -xc++ $< -o $@ -$(OBJDIR)/inputline.o : $(COMMON_SRC_DIR)/inputline.c $(COMMON_SRC_DIR)/inputline.h +$(OBJDIR)/inputline.o : $(COMMON_SRC_DIR)/inputline.cpp $(COMMON_SRC_DIR)/inputline.hpp $(CC) $(CCFLAGS) -xc++ $< -o $@ $(OBJDIR)/kbhit.o : $(COMMON_SRC_DIR)/kbhit.c $(COMMON_SRC_DIR)/kbhit.h diff --git a/10.03_app_demo/2_src/menu_buslatches.cpp b/10.03_app_demo/2_src/menu_buslatches.cpp index 65c87f5..0595cd1 100644 --- a/10.03_app_demo/2_src/menu_buslatches.cpp +++ b/10.03_app_demo/2_src/menu_buslatches.cpp @@ -30,7 +30,7 @@ #include #include "utils.hpp" -#include "inputline.h" +#include "inputline.hpp" #include "mcout.h" #include "application.hpp" // own #include "pru.hpp" diff --git a/10.03_app_demo/2_src/menu_ddrmem_slave_only.cpp b/10.03_app_demo/2_src/menu_ddrmem_slave_only.cpp index 8514aa5..9d66c84 100644 --- a/10.03_app_demo/2_src/menu_ddrmem_slave_only.cpp +++ b/10.03_app_demo/2_src/menu_ddrmem_slave_only.cpp @@ -28,7 +28,7 @@ #include #include -#include "inputline.h" +#include "inputline.hpp" #include "mcout.h" #include "application.hpp" // own diff --git a/10.03_app_demo/2_src/menu_device_exercisers.cpp b/10.03_app_demo/2_src/menu_device_exercisers.cpp index 9746536..a609794 100644 --- a/10.03_app_demo/2_src/menu_device_exercisers.cpp +++ b/10.03_app_demo/2_src/menu_device_exercisers.cpp @@ -28,7 +28,7 @@ #include #include -#include "inputline.h" +#include "inputline.hpp" #include "mcout.h" #include "stringgrid.hpp" diff --git a/10.03_app_demo/2_src/menu_devices.cpp b/10.03_app_demo/2_src/menu_devices.cpp index 39e9166..898619c 100644 --- a/10.03_app_demo/2_src/menu_devices.cpp +++ b/10.03_app_demo/2_src/menu_devices.cpp @@ -29,7 +29,7 @@ #include #include -#include "inputline.h" +#include "inputline.hpp" #include "mcout.h" #include "application.hpp" // own @@ -503,7 +503,7 @@ void application_c::menu_devices(bool with_CPU) { } if (!str_decode_escapes(buff, sizeof(buff), s)) { printf("Error in escape sequences.\n"); - inputline_init(); + inputline.init(); continue; } timeout.wait_ms(wait_ms); @@ -521,7 +521,7 @@ void application_c::menu_devices(bool with_CPU) { char buff[256]; if (!str_decode_escapes(buff, sizeof(buff), s_param[2])) { printf("Error in escape sequences.\n"); - inputline_init(); + inputline.init(); continue; } // while waiting echo to stdout, for diag @@ -536,7 +536,7 @@ void application_c::menu_devices(bool with_CPU) { printf( "\nPDP-11 did not xmt \"%s\" over DL11 within %u ms, aborting script\n", s_param[2], ms); - inputline_init(); + inputline.init(); } } else { printf("Unknown DL11 command \"%s\"!\n", s_choice); diff --git a/10.03_app_demo/2_src/menu_gpio.cpp b/10.03_app_demo/2_src/menu_gpio.cpp index ab53850..4058c8d 100644 --- a/10.03_app_demo/2_src/menu_gpio.cpp +++ b/10.03_app_demo/2_src/menu_gpio.cpp @@ -28,7 +28,7 @@ #include #include -#include "inputline.h" +#include "inputline.hpp" #include "mcout.h" #include "application.hpp" // own diff --git a/10.03_app_demo/2_src/menu_interrupts.cpp b/10.03_app_demo/2_src/menu_interrupts.cpp index dba9b77..5bae7cd 100644 --- a/10.03_app_demo/2_src/menu_interrupts.cpp +++ b/10.03_app_demo/2_src/menu_interrupts.cpp @@ -29,7 +29,7 @@ #include #include "utils.hpp" -#include "inputline.h" +#include "inputline.hpp" #include "mcout.h" #include "application.hpp" // own diff --git a/10.03_app_demo/2_src/menu_mailbox.cpp b/10.03_app_demo/2_src/menu_mailbox.cpp index 7878c45..11c30a8 100644 --- a/10.03_app_demo/2_src/menu_mailbox.cpp +++ b/10.03_app_demo/2_src/menu_mailbox.cpp @@ -28,7 +28,6 @@ #include #include -#include "inputline.h" #include "application.hpp" // own #include "pru.hpp" diff --git a/10.03_app_demo/2_src/menu_masterslave.cpp b/10.03_app_demo/2_src/menu_masterslave.cpp index f093558..0bc3942 100644 --- a/10.03_app_demo/2_src/menu_masterslave.cpp +++ b/10.03_app_demo/2_src/menu_masterslave.cpp @@ -31,7 +31,6 @@ #include #include // PATH_MAX -#include "inputline.h" #include "mcout.h" #include "application.hpp" // own @@ -150,7 +149,7 @@ void application_c::menu_masterslave(enum unibus_c::arbitration_mode_enum arbitr if (!strcasecmp(s_opcode, "q")) { ready = true; } else if (!strcasecmp(s_opcode, "<")) { - if (inputline_fopen(s_param[0])) + if (inputline.openfile(s_param[0])) printf("Now executing command from file \"%s\"\n", s_param[0]); else printf("%s\n", fileErrorText("Error opening command file \"%s\"!", s_param[0])); diff --git a/10.03_app_demo/2_src/menu_panel.cpp b/10.03_app_demo/2_src/menu_panel.cpp index 2227f93..2c4543e 100644 --- a/10.03_app_demo/2_src/menu_panel.cpp +++ b/10.03_app_demo/2_src/menu_panel.cpp @@ -28,7 +28,6 @@ #include #include -#include "inputline.h" #include "mcout.h" #include "application.hpp" // own diff --git a/10.03_app_demo/2_src/menu_unibus_signals.cpp b/10.03_app_demo/2_src/menu_unibus_signals.cpp index 3dc5485..6219751 100644 --- a/10.03_app_demo/2_src/menu_unibus_signals.cpp +++ b/10.03_app_demo/2_src/menu_unibus_signals.cpp @@ -30,7 +30,6 @@ #include #include "utils.hpp" -#include "inputline.h" #include "mcout.h" #include "application.hpp" // own #include "pru.hpp" diff --git a/10.03_app_demo/2_src/menus.cpp b/10.03_app_demo/2_src/menus.cpp index c516e9c..68c8802 100644 --- a/10.03_app_demo/2_src/menus.cpp +++ b/10.03_app_demo/2_src/menus.cpp @@ -30,7 +30,7 @@ #include #include -#include "inputline.h" +#include "inputline.hpp" #include "stringgrid.hpp" #include "unibus.h" @@ -138,7 +138,7 @@ char *application_c::getchoice(void) { do { printf("\n"); - inputline(s_choice, (int) sizeof(s_choice), ">>>"); + inputline.readline(s_choice, (int) sizeof(s_choice), ">>>"); //char *s; // do { // s_choice[0] = '\0'; // empty buffer.