Stanislav Shwartsman
de7aa70c23
fixed more warning from msvc
2017-03-18 19:28:02 +00:00
Volker Ruppert
e9495af59a
Set up VGA palette entries for gui console to make sure the text is visible.
2017-03-03 12:43:20 +00:00
Volker Ruppert
ff43979e08
Fixed compilation when using a config with the win32 gui only.
2017-02-20 18:18:44 +00:00
Volker Ruppert
f33093549b
Modified plugin system to support the new PLUGTYPE_GUI.
...
- Changed the name of the entry point of the gui plugin code to
lib{gui_name}_gui_plugin_init(). It is used when loading plugin with the new
type. Added gui init code for the non-plugin version in plugin.cc.
- Some related changes for the "wx" case.
- The function load_and_init_display_lib() now only returns 1 on success.
- Minor other changes.
2017-02-18 16:28:04 +00:00
Volker Ruppert
4502478b50
Changed a lot of malloc() / free() calls to C++ style new / delete.
2017-02-18 11:13:56 +00:00
Volker Ruppert
a53b99f5e1
Implemented Bochs BIOS option "fastboot" for skipping the boot menu delay.
...
Prepared "biosdetect" option in the harddrv code.
TODO #1 : Add support for a comma-separated list of BIOS options.
TODO #2 : Implement support for at least "biosdetect=none" in the Bochs BIOS.
2017-02-16 21:43:52 +00:00
Volker Ruppert
458f747b48
Removed unused argc and argv parameters from plugin init functions.
2017-01-28 09:52:09 +00:00
Volker Ruppert
65dc62883c
Added symbol to fix the compilation of MSVC plugins.
2017-01-28 00:22:28 +00:00
Volker Ruppert
f59eaa2602
Simplified immediate shutdown code by using BX_FATAL.
2017-01-24 21:52:19 +00:00
Volker Ruppert
628d9db140
X11 gui code cleanup
...
- Changed the order of functions and methods and added some useful comments.
- TODO: Do the same with the code of other guis if necessary.
2017-01-15 12:57:06 +00:00
Volker Ruppert
1546c8803b
Bochs gui code cleanup
...
- Only keep the comments for the specific gui methods in nogui.cc and add
references to this file in all other gui sources.
- Changed the order of methods and added some useful comments in gui.cc / gui.h.
- Minor other cleanups
2017-01-15 11:44:43 +00:00
Volker Ruppert
ffd7c4c492
Using names different from "classic" Bochs headerbar fixes compilation and
...
win32 specific toolbar handling.
2017-01-14 15:11:14 +00:00
Volker Ruppert
787307790f
Moved event processing of the "classic" Bochs headerbar to the common gui code
...
and modified the gui code of rfb, sdl, sdl2, vncsrv and x to use it.
2017-01-14 13:10:20 +00:00
Volker Ruppert
5cd321dd02
Enabled gui console support for sdl2 using SDL_TEXTINPUT event.
2017-01-13 21:37:06 +00:00
Volker Ruppert
f18bb743be
Added new symbol BX_USE_GUI_CONSOLE and set it to 1 for all guis with support
...
for the VGA to be used for textconfig at runtime.
2017-01-13 15:57:36 +00:00
Volker Ruppert
d7fd586451
In the save/restore handler change the display mode to "config". This fixes the
...
keyboard usage in the legacy sdl gui after saving state. Now the rfb and vncsrv
guis can also use this feature (dialog capabilities set to default).
2017-01-12 18:11:38 +00:00
Volker Ruppert
28d43a91a6
On Windows only use the runtime config dialog box if the gui console is not
...
enabled. The rfb and vncsrv guis show the textconfig console instead.
2017-01-10 21:40:05 +00:00
Volker Ruppert
111158750d
Added gui console support to the legacy SDL gui.
...
TODO: Implement this feature in SDL2 (needs special keyboard handling).
2017-01-07 10:11:57 +00:00
Volker Ruppert
ff776d7c3a
Some work on the gui console support for the text runtime configuration.
...
- Added gui console support to the rfb and vncsrv guis.
- Started preparing the legacy SDL gui for console support.
- TODO: The sdl and sdl2 guis need a special keyboard handling for shifted keys.
2017-01-05 18:20:47 +00:00
Volker Ruppert
48ae057bc9
Some work on the SDL2 gui
...
- Added support for get/set clipboard text.
- Continued preparing SDL2 gui for console support (TODO: keyboard input).
2017-01-04 22:24:33 +00:00
Volker Ruppert
8e2803f98a
Bochs gui code cleanup
...
- Moved helper function reverse_bitorder to the common gui code.
- In console_refresh() call flush() after text_update().
- Started preparing rfb, sdl, sdl2 and vncsrv gui for using the console.
- Some other small cleanups.
2017-01-03 20:59:59 +00:00
Volker Ruppert
c0f6caa03b
Some work on the gui console support for the text runtime configuration.
...
- vncserv.cc: Fixed sdl font issue.
- Don't check for mouse toggle event if console is active.
- Added support for blinking cursor.
- Added stubs in the gui code to reduce BX_USE_TEXTCONIG usage in x.cc.
2017-01-02 19:11:23 +00:00
Volker Ruppert
5f5f40e3d6
Changing data type sdl fonts to "static const Bit8u" fixes conflict and
...
simplifies code. The gui code only needs the sdl font for the VGA console.
2017-01-01 19:37:26 +00:00
Volker Ruppert
eff3664fec
Implemented VGA console support in the common gui code and the X11 specific
...
code. Now the runtime configuration runs in the Bochs window instead of
console / xterm. The simulation screen is restored when the
simulation continues. This feature can be implemented for all guis
without gui dialog box support (e.g. sdl2/sdl2 on non-win32 platforms, rfb).
2017-01-01 17:45:06 +00:00
Volker Ruppert
90597c2e61
X11 message box dialog rewritten to use it for both the ask dialog and the
...
yes/no dialog. The ask dialog function now also handles the "warn" and "quit"
cases.
2016-12-29 23:36:15 +00:00
Volker Ruppert
b9b9082e86
Rewrite of the "ask" and "warn" dialog framework.
...
- Added new symbol BX_SYNC_EVT_LOG_DLG and method log_dlg() in siminterface to
handle the cases "ask", "warn" and "quit".
- Added support to change action from "warn" to "report in the "warn" dialog
(sdl2, win32 and wx).
- TODO: Add quit message box for the log action "fatal" and add BX_FATAL()
macro for all cases where continuing after BX_PANIC would be dangerous.
2016-12-29 09:47:07 +00:00
Volker Ruppert
85fcabbd8f
diff -urNX /home/volker/exclude-bochs /home/volker/bochs/bochs/bochs.h ./bochs.h
...
--- /home/volker/bochs/bochs/bochs.h 2016-08-12 19:06:18.803209189 +0200
+++ ./bochs.h 2016-12-28 00:41:20.000627252 +0100
@@ -2,7 +2,7 @@
// $Id: bochs.h 12935 2016-08-12 17:06:14Z vruppert $
/////////////////////////////////////////////////////////////////////////
//
-// Copyright (C) 2001-2015 The Bochs Project
+// Copyright (C) 2001-2016 The Bochs Project
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
@@ -276,8 +276,9 @@
void error(const char *fmt, ...) BX_CPP_AttrPrintf(2, 3);
void panic(const char *fmt, ...) BX_CPP_AttrPrintf(2, 3);
void ldebug(const char *fmt, ...) BX_CPP_AttrPrintf(2, 3);
- void fatal (const char *prefix, const char *fmt, va_list ap, int exit_status);
- void ask (int level, const char *prefix, const char *fmt, va_list ap);
+ void fatal(const char *prefix, const char *fmt, va_list ap, int exit_status);
+ void warn(int level, const char *prefix, const char *fmt, va_list ap);
+ void ask(int level, const char *prefix, const char *fmt, va_list ap);
void put(const char *p);
void put(const char *n, const char *p);
void setio(class iofunctions *);
@@ -334,7 +335,8 @@
void set_log_action(int loglevel, int action);
const char *getlevel(int i) const;
const char *getaction(int i) const;
-
+ int isaction(const char *val) const;
+
protected:
int n_logfn;
#define MAX_LOGFNS 512
diff -urNX /home/volker/exclude-bochs /home/volker/bochs/bochs/CHANGES ./CHANGES
--- /home/volker/bochs/bochs/CHANGES 2016-12-26 10:45:44.000000000 +0100
+++ ./CHANGES 2016-12-28 15:54:25.127088081 +0100
@@ -1,5 +1,8 @@
Changes after 2.6.8 release:
+- General
+ - Added new log action "warn", designed to show a message box on error events.
+
- Configure and compile
- Added Android host platform support.
diff -urNX /home/volker/exclude-bochs /home/volker/bochs/bochs/config.cc ./config.cc
--- /home/volker/bochs/bochs/config.cc 2016-05-03 21:15:09.158016000 +0200
+++ ./config.cc 2016-12-27 19:53:10.461420368 +0100
@@ -2062,15 +2062,8 @@
actstr = strtok(NULL, "");
if (actstr != NULL) {
def_action = !strcmp(module, "action");
- if (!strcmp(actstr, "fatal"))
- action = ACT_FATAL;
- else if (!strcmp (actstr, "report"))
- action = ACT_REPORT;
- else if (!strcmp (actstr, "ignore"))
- action = ACT_IGNORE;
- else if (!strcmp (actstr, "ask"))
- action = ACT_ASK;
- else {
+ action = SIM->is_action_name(actstr);
+ if (action < ACT_IGNORE) {
PARSE_ERR(("%s: %s directive malformed.", context, params[0]));
free(param);
return -1;
diff -urNX /home/volker/exclude-bochs /home/volker/bochs/bochs/gui/sdl2.cc ./gui/sdl2.cc
--- /home/volker/bochs/bochs/gui/sdl2.cc 2016-08-12 19:06:18.811209142 +0200
+++ ./gui/sdl2.cc 2016-12-28 12:33:39.534288819 +0100
@@ -2,7 +2,7 @@
// $Id: sdl2.cc 12935 2016-08-12 17:06:14Z vruppert $
/////////////////////////////////////////////////////////////////////////
//
-// Copyright (C) 2014-2015 The Bochs Project
+// Copyright (C) 2014-2016 The Bochs Project
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
@@ -1478,20 +1478,16 @@
SDL_MessageBoxData msgboxdata;
SDL_MessageBoxButtonData buttondata[4];
int level, retcode;
-#if BX_DEBUGGER || BX_GDBSTUB
- int defbtn = 3;
-#else
- int defbtn = 2;
-#endif
char message[512];
level = event->u.logmsg.level;
- sprintf(message, "%s %s", event->u.logmsg.prefix, event->u.logmsg.msg);
+ sprintf(message, "Device: %s\nMessage: %s", event->u.logmsg.prefix,
+ event->u.logmsg.msg);
msgboxdata.flags = SDL_MESSAGEBOX_ERROR;
msgboxdata.window = window;
msgboxdata.title = SIM->get_log_level_name(level);
msgboxdata.message = message;
- msgboxdata.numbuttons = defbtn + 1;
+ msgboxdata.numbuttons = 2;
msgboxdata.buttons = buttondata;
msgboxdata.colorScheme = NULL;
buttondata[0].flags = 0;
@@ -1500,14 +1496,18 @@
buttondata[1].flags = 0;
buttondata[1].buttonid = BX_LOG_ASK_CHOICE_CONTINUE_ALWAYS;
buttondata[1].text = "Alwayscont";
+ if (event->u.logmsg.flag == BX_LOG_ASK_ASKDLG) {
+ msgboxdata.numbuttons = 3;
+ buttondata[2].flags = SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT;
+ buttondata[2].buttonid = BX_LOG_ASK_CHOICE_DIE;
+ buttondata[2].text = "Quit";
#if BX_DEBUGGER || BX_GDBSTUB
- buttondata[2].flags = 0;
- buttondata[2].buttonid = BX_LOG_ASK_CHOICE_ENTER_DEBUG;
- buttondata[2].text = "Debugger";
-#endif
- buttondata[defbtn].flags = SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT;
- buttondata[defbtn].buttonid = BX_LOG_ASK_CHOICE_DIE;
- buttondata[defbtn].text = "Quit";
+ msgboxdata.numbuttons = 4;
+ buttondata[3].flags = 0;
+ buttondata[3].buttonid = BX_LOG_ASK_CHOICE_ENTER_DEBUG;
+ buttondata[3].text = "Debugger";
+#endif
+ }
if (SDL_ShowMessageBox(&msgboxdata, &retcode) < 0) {
return -1;
} else {
diff -urNX /home/volker/exclude-bochs /home/volker/bochs/bochs/gui/siminterface.cc ./gui/siminterface.cc
--- /home/volker/bochs/bochs/gui/siminterface.cc 2016-12-05 19:56:56.729685000 +0100
+++ ./gui/siminterface.cc 2016-12-28 11:14:02.004075717 +0100
@@ -2,7 +2,7 @@
// $Id: siminterface.cc 12981 2016-12-05 18:56:56Z sshwarts $
/////////////////////////////////////////////////////////////////////////
//
-// Copyright (C) 2002-2015 The Bochs Project
+// Copyright (C) 2002-2016 The Bochs Project
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
@@ -100,6 +100,7 @@
virtual int get_log_action(int mod, int level);
virtual void set_log_action(int mod, int level, int action);
virtual const char *get_action_name(int action);
+ virtual int is_action_name(const char *val);
virtual int get_default_log_action(int level) {
return logfunctions::get_default_action(level);
}
@@ -123,6 +124,7 @@
virtual void set_notify_callback(bxevent_handler func, void *arg);
virtual void get_notify_callback(bxevent_handler *func, void **arg);
virtual BxEvent* sim_to_ci_event(BxEvent *event);
+ virtual int log_warn(const char *prefix, int level, const char *msg);
virtual int log_ask(const char *prefix, int level, const char *msg);
virtual void log_msg(const char *prefix, int level, const char *msg);
virtual void set_log_viewer(bx_bool val) { bx_log_viewer = val; }
@@ -420,6 +422,11 @@
return io->getaction(action);
}
+int bx_real_sim_c::is_action_name(const char *val)
+{
+ return io->isaction(val);
+}
+
const char *bx_real_sim_c::get_log_level_name(int level)
{
return io->getlevel(level);
@@ -575,6 +582,21 @@
}
}
+int bx_real_sim_c::log_warn(const char *prefix, int level, const char *msg)
+{
+ BxEvent be;
+ be.type = BX_SYNC_EVT_LOG_ASK;
+ be.u.logmsg.prefix = prefix;
+ be.u.logmsg.level = level;
+ be.u.logmsg.msg = msg;
+ be.u.logmsg.flag = BX_LOG_ASK_MSGBOX_WARN;
+ // default return value in case something goes wrong.
+ be.retcode = BX_LOG_NOTIFY_FAILED;
+ // calling notify
+ sim_to_ci_event(&be);
+ return be.retcode;
+}
+
// returns 0 for continue, 1 for alwayscontinue, 2 for die.
int bx_real_sim_c::log_ask(const char *prefix, int level, const char *msg)
{
@@ -583,6 +605,7 @@
be.u.logmsg.prefix = prefix;
be.u.logmsg.level = level;
be.u.logmsg.msg = msg;
+ be.u.logmsg.flag = BX_LOG_ASK_ASKDLG;
// default return value in case something goes wrong.
be.retcode = BX_LOG_NOTIFY_FAILED;
// calling notify
@@ -1157,16 +1180,10 @@
} else if (!strncmp(string, "PANIC=", 6)) {
type = LOGLEV_PANIC;
}
- if (!strcmp(string+j, "ignore")) {
- action = ACT_IGNORE;
- } else if (!strcmp(string+j, "report")) {
- action = ACT_REPORT;
- } else if (!strcmp(string+j, "ask")) {
- action = ACT_ASK;
- } else if (!strcmp(string+j, "fatal")) {
- action = ACT_FATAL;
+ action = is_action_name(string+j);
+ if (action >= ACT_IGNORE) {
+ set_log_action(dev, type, action);
}
- set_log_action(dev, type, action);
} else {
if (i == 1) {
BX_ERROR(("restore_logopts(): log module '%s' not found", devname));
diff -urNX /home/volker/exclude-bochs /home/volker/bochs/bochs/gui/siminterface.h ./gui/siminterface.h
--- /home/volker/bochs/bochs/gui/siminterface.h 2016-03-31 19:24:37.451025427 +0200
+++ ./gui/siminterface.h 2016-12-28 11:11:21.036683362 +0100
@@ -168,6 +168,7 @@
typedef enum {
ACT_IGNORE = 0,
ACT_REPORT,
+ ACT_WARN,
ACT_ASK,
ACT_FATAL,
N_ACT
@@ -178,11 +179,11 @@
// normally all action choices are available for all event types. The exclude
// expression allows some choices to be eliminated if they don't make any
// sense. For example, it would be stupid to ignore a panic.
-#define BX_LOG_OPTS_EXCLUDE(type, choice) ( \
- /* can't die or ask, on debug or info events */ \
- (type <= LOGLEV_INFO && (choice == ACT_ASK || choice == ACT_FATAL)) \
- /* can't ignore panics */ \
- || (type == LOGLEV_PANIC && choice == ACT_IGNORE) \
+#define BX_LOG_OPTS_EXCLUDE(type, choice) ( \
+ /* can't die, ask or warn, on debug or info events */ \
+ (type <= LOGLEV_INFO && (choice >= ACT_WARN)) \
+ /* can't ignore panics */ \
+ || (type == LOGLEV_PANIC && choice == ACT_IGNORE) \
)
// floppy / cdrom media status
@@ -392,6 +393,7 @@
// synchronizing threads, etc. for each.
typedef struct {
Bit8u level;
+ Bit8u flag;
const char *prefix;
const char *msg;
} BxLogMsgEvent;
@@ -419,6 +421,12 @@
BX_LOG_NOTIFY_FAILED
};
+enum {
+ BX_LOG_ASK_ASKDLG,
+ BX_LOG_ASK_MSGBOX_WARN,
+ BX_LOG_ASK_MSGBOX_QUIT
+};
+
// Event type: BX_SYNC_EVT_GET_DBG_COMMAND
//
// This is a synchronous event sent from the simulator to the debugger
@@ -675,6 +683,7 @@
virtual int get_default_log_action(int level) {return -1;}
virtual void set_default_log_action(int level, int action) {}
virtual const char *get_action_name(int action) {return NULL;}
+ virtual int is_action_name(const char *val) {return -1;}
virtual const char *get_log_level_name(int level) {return NULL;}
virtual int get_max_log_level() {return -1;}
@@ -715,6 +724,9 @@
// send an event from the simulator to the CI.
virtual BxEvent* sim_to_ci_event(BxEvent *event) {return NULL;}
+ // called from simulator when it hits errors, to warn the user
+ // before continuing simulation
+ virtual int log_warn(const char *prefix, int level, const char *msg) {return -1;}
// called from simulator when it hits serious errors, to ask if the user
// wants to continue or not
virtual int log_ask(const char *prefix, int level, const char *msg) {return -1;}
diff -urNX /home/volker/exclude-bochs /home/volker/bochs/bochs/gui/textconfig.cc ./gui/textconfig.cc
--- /home/volker/bochs/bochs/gui/textconfig.cc 2016-12-05 20:15:59.112637000 +0100
+++ ./gui/textconfig.cc 2016-12-28 12:44:43.079411258 +0100
@@ -2,7 +2,7 @@
// $Id: textconfig.cc 12983 2016-12-05 19:15:59Z sshwarts $
/////////////////////////////////////////////////////////////////////////
//
-// Copyright (C) 2002-2013 The Bochs Project
+// Copyright (C) 2002-2016 The Bochs Project
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
@@ -552,8 +552,8 @@
}
static const char *log_options_prompt1 = "Enter the ID of the device to edit, or -1 to return: [-1] ";
-static const char *log_level_choices[] = { "ignore", "report", "ask", "fatal", "no change" };
-static int log_level_n_choices_normal = 4;
+static const char *log_level_choices[N_ACT+1] = { "ignore", "report", "warn", "ask", "fatal", "no change" };
+static int log_level_n_choices_normal = N_ACT;
void bx_log_options(int individual)
{
@@ -589,7 +589,7 @@
bx_print_log_action_table();
for (int level=0; level<SIM->get_max_log_level(); level++) {
char prompt[1024];
- int action, default_action = 4; // default to no change
+ int action, default_action = N_ACT; // default to no change
sprintf(prompt, "Enter action for %s event on all devices: [no change] ", SIM->get_log_level_name(level));
// do show the no change choice (choices=4)
if (ask_menu(prompt, "", log_level_n_choices_normal+1, log_level_choices, default_action, &action)<0)
@@ -718,47 +718,50 @@
event->retcode = event->u.param.param->text_ask(stdin, stderr);
return event;
case BX_SYNC_EVT_LOG_ASK:
- {
- int level = event->u.logmsg.level;
- fprintf(stderr, "========================================================================\n");
- fprintf(stderr, "Event type: %s\n", SIM->get_log_level_name (level));
- fprintf(stderr, "Device: %s\n", event->u.logmsg.prefix);
- fprintf(stderr, "Message: %s\n\n", event->u.logmsg.msg);
- fprintf(stderr, "A %s has occurred. Do you want to:\n", SIM->get_log_level_name (level));
- fprintf(stderr, " cont - continue execution\n");
- fprintf(stderr, " alwayscont - continue execution, and don't ask again.\n");
- fprintf(stderr, " This affects only %s events from device %s\n", SIM->get_log_level_name (level), event->u.logmsg.prefix);
- fprintf(stderr, " die - stop execution now\n");
- fprintf(stderr, " abort - dump core %s\n",
- BX_HAVE_ABORT ? "" : "(Disabled)");
+ if (event->u.logmsg.flag == BX_LOG_ASK_ASKDLG) {
+ int level = event->u.logmsg.level;
+ fprintf(stderr, "========================================================================\n");
+ fprintf(stderr, "Event type: %s\n", SIM->get_log_level_name (level));
+ fprintf(stderr, "Device: %s\n", event->u.logmsg.prefix);
+ fprintf(stderr, "Message: %s\n\n", event->u.logmsg.msg);
+ fprintf(stderr, "A %s has occurred. Do you want to:\n", SIM->get_log_level_name (level));
+ fprintf(stderr, " cont - continue execution\n");
+ fprintf(stderr, " alwayscont - continue execution, and don't ask again.\n");
+ fprintf(stderr, " This affects only %s events from device %s\n", SIM->get_log_level_name (level), event->u.logmsg.prefix);
+ fprintf(stderr, " die - stop execution now\n");
+ fprintf(stderr, " abort - dump core %s\n",
+ BX_HAVE_ABORT ? "" : "(Disabled)");
#if BX_DEBUGGER
- fprintf(stderr, " debug - continue and return to bochs debugger\n");
+ fprintf(stderr, " debug - continue and return to bochs debugger\n");
#endif
#if BX_GDBSTUB
- fprintf(stderr, " debug - hand control to gdb\n");
+ fprintf(stderr, " debug - hand control to gdb\n");
#endif
- int choice;
+ int choice;
ask:
- if (ask_menu("Choose one of the actions above: [%s] ", "",
- log_action_n_choices, log_action_ask_choices, 2, &choice) < 0)
- event->retcode = -1;
- // return 0 for continue, 1 for alwayscontinue, 2 for die, 3 for debug.
- if (!BX_HAVE_ABORT && choice==BX_LOG_ASK_CHOICE_DUMP_CORE) goto ask;
- fflush(stdout);
- fflush(stderr);
- event->retcode = choice;
- }
- return event;
- case BX_ASYNC_EVT_REFRESH:
- case BX_ASYNC_EVT_DBG_MSG:
- case BX_ASYNC_EVT_LOG_MSG:
- // The text mode interface does not use these events, so just ignore
- // them.
- return event;
- default:
- fprintf(stderr, "textconfig: notify callback called with event type %04x\n", event->type);
- return event;
+ if (ask_menu("Choose one of the actions above: [%s] ", "",
+ log_action_n_choices, log_action_ask_choices, 2, &choice) < 0)
+ event->retcode = -1;
+ // return 0 for continue, 1 for alwayscontinue, 2 for die, 3 for debug.
+ if (!BX_HAVE_ABORT && choice==BX_LOG_ASK_CHOICE_DUMP_CORE) goto ask;
+ fflush(stdout);
+ fflush(stderr);
+ event->retcode = choice;
+ } else {
+ // warning prompt not implemented
+ event->retcode = 0;
+ }
+ return event;
+ case BX_ASYNC_EVT_REFRESH:
+ case BX_ASYNC_EVT_DBG_MSG:
+ case BX_ASYNC_EVT_LOG_MSG:
+ // The text mode interface does not use these events, so just ignore
+ // them.
+ return event;
+ default:
+ fprintf(stderr, "textconfig: notify callback called with event type %04x\n", event->type);
+ return event;
}
assert(0); // switch statement should return
}
diff -urNX /home/volker/exclude-bochs /home/volker/bochs/bochs/gui/win32dialog.cc ./gui/win32dialog.cc
--- /home/volker/bochs/bochs/gui/win32dialog.cc 2014-06-20 11:32:02.034026376 +0200
+++ ./gui/win32dialog.cc 2016-12-28 12:50:14.148888740 +0100
@@ -2,7 +2,7 @@
// $Id: win32dialog.cc 12381 2014-06-20 09:31:56Z vruppert $
/////////////////////////////////////////////////////////////////////////
//
-// Copyright (C) 2003-2014 The Bochs Project
+// Copyright (C) 2003-2016 The Bochs Project
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
@@ -27,7 +27,7 @@
#include "win32res.h"
#include "win32paramdlg.h"
-const char log_choices[5][16] = {"ignore", "log", "ask user", "end simulation", "no change"};
+const char log_choices[N_ACT+1][16] = {"ignore", "log", "warn user", "ask user", "end simulation", "no change"};
HWND GetBochsWindow()
{
@@ -97,12 +97,16 @@
SetWindowText(GetDlgItem(hDlg, IDASKMSG), event->u.logmsg.msg);
SendMessage(GetDlgItem(hDlg, IDASKLIST), LB_ADDSTRING, 0, (LPARAM)"Continue");
SendMessage(GetDlgItem(hDlg, IDASKLIST), LB_ADDSTRING, 0, (LPARAM)"Continue and don't ask again");
- SendMessage(GetDlgItem(hDlg, IDASKLIST), LB_ADDSTRING, 0, (LPARAM)"Kill simulation");
- SendMessage(GetDlgItem(hDlg, IDASKLIST), LB_ADDSTRING, 0, (LPARAM)"Abort (dump core)");
+ if (event->u.logmsg.flag == BX_LOG_ASK_ASKDLG) {
+ SendMessage(GetDlgItem(hDlg, IDASKLIST), LB_ADDSTRING, 0, (LPARAM)"Kill simulation");
+ SendMessage(GetDlgItem(hDlg, IDASKLIST), LB_ADDSTRING, 0, (LPARAM)"Abort (dump core)");
#if BX_DEBUGGER
- SendMessage(GetDlgItem(hDlg, IDASKLIST), LB_ADDSTRING, 0, (LPARAM)"Continue and return to debugger");
+ SendMessage(GetDlgItem(hDlg, IDASKLIST), LB_ADDSTRING, 0, (LPARAM)"Continue and return to debugger");
#endif
- SendMessage(GetDlgItem(hDlg, IDASKLIST), LB_SETCURSEL, 2, 0);
+ SendMessage(GetDlgItem(hDlg, IDASKLIST), LB_SETCURSEL, 2, 0);
+ } else {
+ SendMessage(GetDlgItem(hDlg, IDASKLIST), LB_SETCURSEL, 0, 0);
+ }
SetFocus(GetDlgItem(hDlg, IDASKLIST));
return FALSE;
case WM_CLOSE:
diff -urNX /home/volker/exclude-bochs /home/volker/bochs/bochs/gui/wxdialog.cc ./gui/wxdialog.cc
--- /home/volker/bochs/bochs/gui/wxdialog.cc 2015-01-07 17:17:40.447882000 +0100
+++ ./gui/wxdialog.cc 2016-12-27 20:30:44.997609007 +0100
@@ -2,7 +2,7 @@
// $Id: wxdialog.cc 12594 2015-01-07 16:17:40Z sshwarts $
/////////////////////////////////////////////////////////////////
//
-// Copyright (C) 2002-2014 The Bochs Project
+// Copyright (C) 2002-2016 The Bochs Project
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
@@ -208,7 +208,6 @@
: wxDialog(parent, id, wxT(""), wxDefaultPosition, wxDefaultSize,
wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
{
- //static int integers[LOG_OPTS_N_CHOICES_NORMAL] = {0, 1, 2, 3};
static wxString names[] = ADVLOG_OPTS_TYPE_NAMES;
SetTitle(ADVLOG_OPTS_TITLE);
vertSizer = new wxBoxSizer(wxVERTICAL);
@@ -1563,7 +1562,7 @@
bool includeNoChange)
{
static wxString choices[] = LOG_OPTS_CHOICES;
- static int integers[LOG_OPTS_N_CHOICES] = {0, 1, 2, 3, 4};
+ static int integers[LOG_OPTS_N_CHOICES] = {0, 1, 2, 3, 4, 5};
wxChoice *control = new wxChoice(parent, id, wxDefaultPosition, wxDefaultSize);
int lastChoice = 0; // remember index of last choice
int nchoice = includeNoChange? LOG_OPTS_N_CHOICES : LOG_OPTS_N_CHOICES_NORMAL;
diff -urNX /home/volker/exclude-bochs /home/volker/bochs/bochs/gui/wxdialog.h ./gui/wxdialog.h
--- /home/volker/bochs/bochs/gui/wxdialog.h 2014-12-23 20:30:12.896090221 +0100
+++ ./gui/wxdialog.h 2016-12-27 20:34:28.518389938 +0100
@@ -2,7 +2,7 @@
// $Id: wxdialog.h 12576 2014-12-23 19:30:03Z vruppert $
////////////////////////////////////////////////////////////////////
//
-// Copyright (C) 2002-2014 The Bochs Project
+// Copyright (C) 2002-2016 The Bochs Project
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
@@ -354,10 +354,10 @@
#define LOG_OPTS_PROMPT wxT("How should Bochs respond to each type of event?")
#define LOG_OPTS_TYPE_NAMES { wxT("Debug events"), wxT("Info events"), wxT("Error events"), wxT("Panic events") }
#define LOG_OPTS_N_TYPES 4
-#define LOG_OPTS_CHOICES { wxT("ignore"), wxT("log"), wxT("ask user"), wxT("end simulation"), wxT("no change") }
-#define LOG_OPTS_N_CHOICES_NORMAL 4
-#define LOG_OPTS_N_CHOICES 5 // number of choices, including "no change"
-#define LOG_OPTS_NO_CHANGE 4 // index of "no change"
+#define LOG_OPTS_CHOICES { wxT("ignore"), wxT("log"), wxT("warn user"), wxT("ask user"), wxT("end simulation"), wxT("no change") }
+#define LOG_OPTS_N_CHOICES_NORMAL 5
+#define LOG_OPTS_N_CHOICES 6 // number of choices, including "no change"
+#define LOG_OPTS_NO_CHANGE 5 // index of "no change"
#define LOG_OPTS_ADV wxT("For additional control over how each device responds to events, use the menu option \"Log ... By Device\".")
wxFlexGridSizer *gridSizer;
wxChoice *action[LOG_OPTS_N_TYPES];
diff -urNX /home/volker/exclude-bochs /home/volker/bochs/bochs/gui/wxmain.cc ./gui/wxmain.cc
--- /home/volker/bochs/bochs/gui/wxmain.cc 2016-12-26 17:12:57.470174541 +0100
+++ ./gui/wxmain.cc 2016-12-28 12:15:26.035961463 +0100
@@ -2,7 +2,7 @@
// $Id: wxmain.cc 13006 2016-12-26 16:12:54Z vruppert $
/////////////////////////////////////////////////////////////////
//
-// Copyright (C) 2002-2014 The Bochs Project
+// Copyright (C) 2002-2016 The Bochs Project
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
@@ -1158,6 +1158,10 @@
#if !BX_DEBUGGER && !BX_GDBSTUB
dlg.EnableButton(dlg.DEBUG, FALSE);
#endif
+ if (be->u.logmsg.flag != BX_LOG_ASK_ASKDLG) {
+ dlg.EnableButton(dlg.DIE, FALSE);
+ dlg.EnableButton(dlg.DUMP, FALSE);
+ }
dlg.SetContext(wxString(be->u.logmsg.prefix, wxConvUTF8));
dlg.SetMessage(wxString(be->u.logmsg.msg, wxConvUTF8));
int n = dlg.ShowModal();
diff -urNX /home/volker/exclude-bochs /home/volker/bochs/bochs/gui/x.cc ./gui/x.cc
--- /home/volker/bochs/bochs/gui/x.cc 2016-12-27 17:26:59.622665119 +0100
+++ ./gui/x.cc 2016-12-28 12:03:10.963351647 +0100
@@ -2687,11 +2687,7 @@
} else {
size_x = 30 + maxlen * 6;
}
- if (lines < 3) {
- size_y = 90;
- } else {
- size_y = 60 + lines * 15;
- }
+ size_y = 70 + lines * 15;
x11_dialog_c *xdlg = new x11_dialog_c(name, size_x, size_y,
(mode == XDLG_SIMPLE) ? 1 : 2);
ypos = 34;
@@ -2729,11 +2725,21 @@
bx_param_string_c *sparam;
bx_param_enum_c *eparam;
bx_list_c *list;
+ char message[256];
switch (event->type)
{
case BX_SYNC_EVT_LOG_ASK:
- event->retcode = x11_ask_dialog(event);
+ if (event->u.logmsg.flag == BX_LOG_ASK_ASKDLG) {
+ event->retcode = x11_ask_dialog(event);
+ } else if (event->u.logmsg.flag == BX_LOG_ASK_MSGBOX_WARN) {
+ const char *title = SIM->get_log_level_name(event->u.logmsg.level);
+ sprintf(message, "Device: %s\n\nMessage: %s", event->u.logmsg.prefix,
+ event->u.logmsg.msg);
+ bx_param_bool_c bparam(NULL, "warn", title, message, 1);
+ x11_message_box(&bparam, XDLG_SIMPLE);
+ event->retcode = 0;
+ }
return event;
case BX_SYNC_EVT_ASK_PARAM:
param = event->u.param.param;
diff -urNX /home/volker/exclude-bochs /home/volker/bochs/bochs/logio.cc ./logio.cc
--- /home/volker/bochs/bochs/logio.cc 2015-05-10 08:55:18.678940963 +0200
+++ ./logio.cc 2016-12-28 00:40:40.395736643 +0100
@@ -2,7 +2,7 @@
// $Id: logio.cc 12759 2015-05-10 06:55:16Z vruppert $
/////////////////////////////////////////////////////////////////////////
//
-// Copyright (C) 2001-2014 The Bochs Project
+// Copyright (C) 2001-2016 The Bochs Project
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
@@ -50,11 +50,25 @@
else return "?";
}
+static const char *act_name[N_ACT] = { "ignore", "report", "warn", "ask", "fatal" };
+
const char* iofunctions::getaction(int i) const
{
- static const char *name[] = { "ignore", "report", "ask", "fatal" };
assert (i>=ACT_IGNORE && i<N_ACT);
- return name[i];
+ return act_name[i];
+}
+
+int iofunctions::isaction(const char *val) const
+{
+ int action = -1;
+
+ for (int i = 0; i < N_ACT; i++) {
+ if (!strcmp(val, act_name[i])) {
+ action = ACT_IGNORE + i;
+ break;
+ }
+ }
+ return action;
}
void iofunctions::flush(void)
@@ -414,6 +428,11 @@
logio->out(LOGLEV_ERROR, prefix, fmt, ap);
va_end(ap);
+ if (onoff[LOGLEV_ERROR] == ACT_WARN) {
+ va_start(ap, fmt);
+ warn(LOGLEV_ERROR, prefix, fmt, ap);
+ va_end(ap);
+ }
if (onoff[LOGLEV_ERROR] == ACT_ASK) {
va_start(ap, fmt);
ask(LOGLEV_ERROR, prefix, fmt, ap);
@@ -438,6 +457,11 @@
logio->out(LOGLEV_PANIC, prefix, fmt, ap);
va_end(ap);
+ if (onoff[LOGLEV_PANIC] == ACT_WARN) {
+ va_start(ap, fmt);
+ warn(LOGLEV_PANIC, prefix, fmt, ap);
+ va_end(ap);
+ }
if (onoff[LOGLEV_PANIC] == ACT_ASK) {
va_start(ap, fmt);
ask(LOGLEV_PANIC, prefix, fmt, ap);
@@ -465,6 +489,36 @@
// the actions ask() and fatal() are not supported here
}
+void logfunctions::warn(int level, const char *prefix, const char *fmt, va_list ap)
+{
+ // Guard against reentry on warn() function. The danger is that some
+ // function that's called within warn() could trigger another
+ // BX_ERROR that could call warn() again, leading to infinite
+ // recursion and infinite asks.
+ static char in_warn_already = 0;
+ char buf1[1024];
+ if (in_warn_already) {
+ fprintf(stderr, "logfunctions::warn() should not reenter!!\n");
+ return;
+ }
+ in_warn_already = 1;
+ vsnprintf(buf1, sizeof(buf1), fmt, ap);
+ // FIXME: facility set to 0 because it's unknown.
+
+ // update vga screen. This is useful because sometimes useful messages
+ // are printed on the screen just before a panic. It's also potentially
+ // dangerous if this function calls ask again... That's why I added
+ // the reentry check above.
+ SIM->refresh_vga();
+
+ // ensure the text screen is showing
+ SIM->set_display_mode(DISP_MODE_CONFIG);
+ SIM->log_warn(prefix, level, buf1);
+ // return to simulation mode
+ SIM->set_display_mode(DISP_MODE_SIM);
+ in_warn_already = 0;
+}
+
void logfunctions::ask(int level, const char *prefix, const char *fmt, va_list ap)
{
// Guard against reentry on ask() function. The danger is that some
2016-12-28 15:06:34 +00:00
Volker Ruppert
b5b0ec503c
Some work on the X11 dialogs
...
- Rewrite of the existing yes/no dialog to support more button options. Now it
can be used with OK/Cancel buttons or as a simple message box with OK or
Cancel. This message box that can be used to show error messages with a
new action "warn" or for critical panics when continuing would be dangerous
("BX_FATAL"). These features are not implemented yet.
- Partial rewrite of the button handling code (e.g. new method add_button()).
- some malloc/free to new/delete changes.
2016-12-27 16:26:57 +00:00
Volker Ruppert
97a4909b73
When reading configuration from the wx gui, an error no longer closes the whole
...
app. Now only the bochsrc parsing terminates with an error. Improved message box
shown at this point.
2016-12-26 16:12:54 +00:00
Volker Ruppert
974c8d5124
Fixed compilation errors that occur with debugger enabled.
2016-12-06 18:07:05 +00:00
Stanislav Shwartsman
7ccc859b00
static code analysis: remove redundant include
2016-12-05 19:15:59 +00:00
Stanislav Shwartsman
98c69ce6ae
c++ better to use new/delete and not malloc
2016-12-05 19:05:31 +00:00
Stanislav Shwartsman
0059d33102
c++ better to use new/delete and not malloc
2016-12-05 18:56:56 +00:00
Stanislav Shwartsman
20efa2ddec
c++ better to use new/delete and not malloc
2016-12-05 18:49:22 +00:00
Stanislav Shwartsman
40609d3ab2
c++ better to use delete and not malloc
2016-12-05 18:41:35 +00:00
Stanislav Shwartsman
1283292613
static code analysis fixes - what if file didn't open?
2016-12-05 18:17:22 +00:00
Volker Ruppert
f303bd4912
Applied some more changes for Android.
...
- fixed mouse in fullscreen mode (sdl)
- fixed / updated build script for current SVN
2016-08-16 16:15:12 +00:00
Volker Ruppert
f906963c45
Another fix for Bochs on Android.
2016-08-14 16:55:05 +00:00
Volker Ruppert
cd68194269
Added Android host platform support to Bochs based on SF patch #534 .
...
- added Android case to the configure script.
- renamed file memory.h to memory-bochs.h to fix conflict with NDK.
- fixed Android issues in some files.
2016-08-12 17:06:14 +00:00
Stanislav Shwartsman
dff5e9587b
fixed SMP mode compilation err
2016-05-05 14:15:17 +00:00
Stanislav Shwartsman
3ffe5d3d87
parse params from string using bx_param method - avoid unnecessary switch walking over param types
2016-05-03 19:15:09 +00:00
Stanislav Shwartsman
b5d1b30f3d
rename variable to avoid conflict with std::string class
2016-04-30 20:44:10 +00:00
Volker Ruppert
45232b1860
Added standard bus mouse support and inproved existing InPort mouse support
...
(Ben Lunt). Added new mouse type choice 'inport' for the existing one and changed
'bus' type to the new standard bus mouse,
2016-03-31 17:24:34 +00:00
Volker Ruppert
7c0d93884e
Fixed array size (rfb) and added comment (win32).
2015-10-25 09:22:43 +00:00
Volker Ruppert
cbd147fca3
Fixed and improved text mode CO40.
...
- vgacore: double font and screen width at half dot clock.
- X gui: improved font bitmap generation to support width > 9.
- win32 gui: adjust values to use existing stretching feature.
- guis rfb, sdl, sdl2, vncsrv and wx: double pixels if font width > 9.
2015-10-24 22:03:51 +00:00
Volker Ruppert
1a3bf9419c
SDL/SDL2: increase status item width to show max. 6 characters
2015-10-23 18:39:38 +00:00
Volker Ruppert
9bc8651328
Extended functionality of class bx_shadow_data_c to simplify saving small byte
...
arrays. Changed register_state() code in a few devices to use this feature.
TODO: Use this feature in all devices with small byte arrays.
2015-10-05 18:09:58 +00:00
Volker Ruppert
2dbfae1b1c
Fixes and improvements for the USB cdrom runtime options.
...
- Add a special list to the MSD state and add pointers to the runtime-only
options for the cdrom. The restore handler of this list calls runtime_config()
to make sure the media path and status are correctly updated.
- Registering a runtime config handler for the USB cdrom is not necessary since
runtime_config() is always called from the hub it is connected to.
- Restore a string parameter value only if it's different from the initial one.
2015-08-29 14:02:13 +00:00
Volker Ruppert
7da8cfa4b0
Fixed save/restore support of the USB subsystem when using an external hub
...
with devices conected at runtime.
- Added restore handler support for the bx_list_c class. If a handler is
registered, it will be called after restoring all of the list's members.
- USB hub: add special lists to the port state and add pointers to the
runtime-only options for each port. The restore handler of this list calls
init_device() to make sure all connected devices can be restored.
- Call restore_logopts() after restoring hardware to make sure all saved
modules have been created.
- TODO: the USB cdrom also needs a fix for it's runtime-only options.
2015-08-28 17:37:38 +00:00
Volker Ruppert
38fbdaa7e8
Added runtime config handler for the USB cdrom and modified parameter handling
...
similar to the ATAPI implementation (including locked tray case).
Fixed status indicator activity and minor other changes.
2015-08-23 16:09:24 +00:00
Volker Ruppert
1df014a8ae
Implemented unregister mechanism for runtime config handlers.
...
TODO: use it for removable devices with removable media (USB floppy / cdrom).
2015-08-23 07:04:56 +00:00
Volker Ruppert
639f361d02
Fix the fix: force a status bar update after registering an item, too.
2015-08-11 17:48:18 +00:00
Volker Ruppert
16fb8317bd
Fixed parameter handler issues found with runtime changes while cdrom tray locked.
...
- bx_param_num_c: set the value returned from the handler.
- bx_param_string_c: set the new value after processing the handler.
- harddrv param handler: check lock state of cdrom and modify value if true.
2015-08-10 18:44:16 +00:00
Volker Ruppert
46d2c0adad
Started implementing save/restore support for the USB floppy.
...
Fixed status indicator handling in case of connect failure.
2015-07-28 18:44:08 +00:00
Volker Ruppert
87d40fe673
Some work on the status LED support for removable devices.
...
- Force a status bar update after unregistering an item.
- Added status indicators for USB disk and cdrom.
- Handle USB device disconnect in the runtime config handler, too.
2015-07-13 21:57:09 +00:00
Volker Ruppert
3986a0b703
Extended status bar LED feature to support dynamic indicators for removable
...
devices like USB disk, cdrom or floppy. Using this feature for the new USB
floppy. Removed static indicators for port activity from the USB HC code.
TODO: Implement status LEDs for USB disk and cdrom.
2015-07-13 16:56:06 +00:00
Volker Ruppert
f838b04dd1
Attempt to fix the compilation failure on OpenBSD with debugger enabled
...
(stdin and stdout cannot be modified on this platform).
2015-05-09 17:01:24 +00:00
Volker Ruppert
8db4261869
The win32ParamDialog now can handle bx_param_num_c values with full Bit64s size.
2015-04-23 18:44:51 +00:00
Volker Ruppert
727fbd23af
Fixed possible deadlock when pressing user shortcut or save/restore button.
...
The button handlers must be placed outside of the critical section.
2015-04-11 10:21:03 +00:00
Volker Ruppert
3e54ff2e36
Added Oracle(tm) VM VirtualBox image support (VDI version 1.1). Patch written
...
by Ben Lunt plus some additions (bximage fixes, big endian support).
TODO: update MSVC workspace files.
2015-03-29 14:27:32 +00:00
Volker Ruppert
924201f694
Added capability to handle floating point values with save/restore.
...
Improved OPL3 save/restore support.
2015-03-13 21:28:40 +00:00
Volker Ruppert
cbfbaaacb7
Added BX_HAVE_SOUND_* definitions to simplify code.
2015-02-23 21:32:34 +00:00
Volker Ruppert
3135e6a4eb
Changed sound driver parameter type to bx_param_enum_c.
...
TODO: Add sound driver selection per service (waveout, wavein, midiout).
2015-02-22 20:29:58 +00:00
Stanislav Shwartsman
b5a603c8c7
fixed %d->%u format found by cppcheck (patch by Maxim Derbasov)
2015-01-25 21:24:13 +00:00
Volker Ruppert
55f7c7542b
Implemented yes/no dialog for SDL2 (e.g. for VVFAT commit).
2015-01-19 20:32:20 +00:00
Volker Ruppert
3dca0bd8cf
Some work in the soundmod beep code and multithreading improvements.
...
- Beep thread now only started one per simulation.
- Added some more multithreading macros and use them in rfb, vncsrv and soundmod.
- TODO: implement mixer thread and remove beep thread.
2015-01-17 19:53:03 +00:00
Stanislav Shwartsman
055da948a0
fixed problems found by cppcheck tool (patch by Maxim Derbasov) - second round
2015-01-07 16:17:40 +00:00
Volker Ruppert
0c205fce26
Some work in the lowlevel sound code.
...
- Added framework for polling wave data and use it for beep output in sdl.
- Some work in the beep thread code (to be continued).
- Moved macros required for multithreading to bochs.h.
2015-01-04 21:12:41 +00:00
Volker Ruppert
2357175d79
Show mouse messages only if capture status changes.
2015-01-03 17:13:54 +00:00
Volker Ruppert
33a633cbd2
Partial rewrite of the win32 mouse motion handling.
...
- If the mouse is captured, use ClipCursor() to keep the cursor in the window.
- After handling mouse motion event in relative mode, move the cursor back to
the window center (similar to other guis).
2014-12-30 16:31:17 +00:00
Volker Ruppert
2f893a76ff
Small code cleanup
2014-12-29 18:50:03 +00:00
Volker Ruppert
ee5a416228
Now build rules for all gui and device plugins supported by MSVC nmake depend
...
on the related configure options.
2014-12-28 19:13:02 +00:00
Volker Ruppert
e50a0c517a
Key auto-release feature changed: now release the pressed keys when the Bochs
...
window is losing the keyboard focus. This feature is now also supported by the
win32 gui.
2014-12-27 15:57:30 +00:00
Volker Ruppert
65d2bb11eb
Release all pressed keys when the Bochs window gets back the keyboard focus.
...
- feature implemented in the wxWidgets gui
- feature not required for legacy SDL (releases keys on focus change)
- removed duplicate code in keyboard.cc
- TODO: implement feature in the win32 gui if required
2014-12-27 09:43:05 +00:00
Volker Ruppert
227da0c6de
Release all pressed keys when the simulation window gets back the keyboard
...
focus. This change will fix some keyboard-related bug reports (DONE for the
x and sdl2 guis / TODO for all others).
2014-12-26 20:25:27 +00:00
Volker Ruppert
b18ed8e2b1
Applied Debian patch for wxWidgets 3.0 compatibility.
2014-12-23 19:30:03 +00:00
Volker Ruppert
f2c9a503d1
Added debugger support for the term gui using a pseudo-terminal. The command-line
...
debugger appears on main terminal and Bochs screen on pseudo-terminal connected
to minicom (based on SF patch #522 ).
2014-12-18 20:29:37 +00:00
Volker Ruppert
19b3d52934
Fixed possible crash when the GTK+ debugger is enabled (based on SF patch by
...
Dawn Teschendorf).
2014-12-16 19:48:50 +00:00
Volker Ruppert
a1851e7f38
Enclose string literal in wxT() macros to fix unicode version.
2014-12-06 23:10:11 +00:00
Volker Ruppert
c8ef526143
Fixed some warnings.
2014-12-01 17:06:00 +00:00
Volker Ruppert
bea4a02b18
Save and restore GTK font setting using INI file.
2014-11-09 19:09:11 +00:00
Volker Ruppert
a2886318d8
Save/restore GTK debugger window size and position using INI file.
...
TODO: handle GTK font selection.
2014-11-07 18:59:59 +00:00
Volker Ruppert
e6be902c56
Maximize debugger window if upper-left edge is outside of desktop.
...
Fixed font selection: disable "italic" flag before calling dialog.
2014-11-06 19:02:34 +00:00
Volker Ruppert
10a016194c
Save proportions of the Reg, Asm and Dump windows to INI file.
...
TODO: handle font selection and main window size/position in the GTK version.
2014-11-06 17:13:27 +00:00
Volker Ruppert
d70ee1e99b
Fixed font setup after reading from INI file.
2014-11-04 21:09:18 +00:00
Volker Ruppert
aad31f7767
Added support for save/restore of the debugger main window size and position
...
using the INI file.
TODO: handle child windows, implement font/window handling in the GTK version.
2014-10-31 19:35:57 +00:00
Volker Ruppert
56a1f53de7
Rewrite of the font selection code to support save/restore of font settings
...
using the INI file.
2014-10-28 18:54:48 +00:00
Volker Ruppert
59f5a03af6
Rewrite of the virtual timer code to support both modes at the same timer.
...
The timers now have a new member 'realtime' and they are driven by the
selected engine. The VGA update timer and the status LED timer now always use
the realtime mode, but the PIT and CMOS RTC depend on the clock options.
2014-10-19 08:54:16 +00:00
Stanislav Shwartsman
8d1e3b2ac1
Added statistics collection infrastructure in Bochs and
...
implemented important CPU statistics which were used for Bochs CPU model performance analysis.
old statistics code from paging.cc and cpu.cc is replaced with new infrastructure.
In order to enale statitics collection in Bochs CPU:
- Enable statistics @ compilation time in cpu/cpustats.h
- Dump statistics periodically by adding -dumpstats N into Bochs command line
2014-10-14 15:59:10 +00:00
Volker Ruppert
91937748fa
Added "DockOrder" setting to gui debugger INI file.
...
Prepared handling of platform-specific settings (e.g. fonts, window sizes).
2014-09-14 19:36:13 +00:00
Volker Ruppert
d12858ab31
Add one more common setting to gui debugger INI file.
...
TODO: add platform-specific settings (font, window size/position)
Disable log viewer on debugger exit.
textconfig: minor fixes found while testing gui debugger.
2014-09-01 16:47:26 +00:00
Volker Ruppert
34d4983cba
Compile enhanced gui debugger core only if enabled.
2014-08-31 17:08:58 +00:00
Volker Ruppert
d30d9bc667
Handle some more settings in gui debugger INI file.
2014-08-31 08:18:43 +00:00
Volker Ruppert
9b3b792c73
Gui debugger: handle some more settings in INI file
...
Slirp: fixed copy-and-paste error
2014-08-30 07:14:19 +00:00
Volker Ruppert
7ba82cab9f
Write enhanced debugger gui settings to config file on exit and read them in
...
the init code. Started with the SeeReg[] array values. Some other setting could
be added later. The parser code is based on the slirp config parser.
Slirp: fixed possible segfault if the value for a parameter is missing.
2014-08-24 14:28:42 +00:00
Volker Ruppert
36aa1ae6d2
Close enhanced gui debugger in gui exit() method if necessary.
...
TODO: read / write enhanced gui debugger settings in init / close functions
2014-08-17 12:48:05 +00:00
Volker Ruppert
ad27a15023
Enclose 2 string literals in wxT() macros to fix unicode version (SF bug #1351 )
2014-07-27 14:47:55 +00:00
Volker Ruppert
494ed30e95
Some fixes for plugin support with VS2013Ex
...
- creating extra manifest for bochs.exe no longer needed
- cleaning up temporary manifest files no longer necessary
2014-07-26 06:54:34 +00:00
Volker Ruppert
afb771f08e
Optimize drawing in some functions.
...
Mention SDL2 bug in fullscreen mode: surface dimensions not updated after
resolution change.
2014-07-14 07:58:42 +00:00
Volker Ruppert
e1fe9ee332
Determine display dimensions similar to other guis
2014-07-11 07:20:36 +00:00
Volker Ruppert
cf58d7ac2d
Determine maximum host resolution (similar to sdl2 and win32 guis)
2014-07-10 10:31:51 +00:00
Stanislav Shwartsman
e2e549c675
fixed MSVCPP warning
2014-07-09 15:39:47 +00:00
Volker Ruppert
0e14966b06
Determine desktop dimensions in constructor (fixes maximum resolution of Bochs
...
VBE support).
2014-07-08 16:51:38 +00:00
Volker Ruppert
a565b67293
Moved SDL2 init to constructor to make sure 'sdl_maxres' is initialized before
...
calling get_capabilities() (fixes Bochs VBE support).
2014-07-08 15:46:46 +00:00
Volker Ruppert
894e66574a
Rewrite of the userbutton shortcut handling: now parsing shortcut string in
...
gui init and string paramter handler. The shortcut keys are now stored in an
array of BX_KEY* values in the gui object.
siminterface.h: Fixed some default return values.
2014-07-08 14:30:27 +00:00
Volker Ruppert
cb8d81defd
Added new user shortcut "scrlck" (SDL/SDL2 using "Scroll Lock" for fullscreen toggle).
...
Cleanups and improvements in the userbutton shortcut code.
Documentation update (mention SDL2, updated userbutton list)
2014-07-07 07:29:08 +00:00
Volker Ruppert
20cc91a7d8
Fixed SVN Id line
2014-07-06 18:30:24 +00:00
Volker Ruppert
df9cd2fdbb
Added SVN Id and revision to keymap files
2014-07-06 18:29:06 +00:00
Volker Ruppert
0ddb6600c7
Added new keymaps for SDL2 (U.S. and German keyboard layout)
2014-07-06 18:17:05 +00:00
Volker Ruppert
04ae9e60aa
Updated makefile dependencies after adding SDL2 gui
2014-07-06 17:13:53 +00:00
Volker Ruppert
edb3a8b936
SB_Edges array must be of type Bit32s (fixes status bar in Cygwin64)
2014-07-06 14:17:18 +00:00
Volker Ruppert
a1f7fe26ed
SDL/SDL2 fullscreen mouse fixes
...
- SDL/SDL2: fixed mouse movement in absolute x/y mode
- SDL2: always capture mouse in fullscreen mode (like legacy SDL gui)
- SDL: don't handle headerbar click in fullscreen mode
- SDL/SDL2 code sync
2014-07-05 08:00:01 +00:00
Volker Ruppert
2bfd78fa45
SDL2: added experimental fullscreen mode support
2014-07-03 20:17:19 +00:00
Volker Ruppert
c7ae0310ac
SDL2: fixed link failure caused by the SDL font usage in the 'rfb and 'vncsrv'' guis
2014-07-02 21:08:54 +00:00
Volker Ruppert
d9b3c3b91b
Added simple 'ask' dialog box for the SDL2 gui on non-Windows platforms
2014-06-29 07:37:58 +00:00
Volker Ruppert
3e2acd21ac
Fixes for the SDL2 gui on Windows
2014-06-28 23:49:10 +00:00
Volker Ruppert
a2ee3b4931
Some more work on the new SDL2 gui
...
- added keyboard mapping support (TODO: update keymap files)
- added simple application icon
- minor mouse handling fix
2014-06-28 13:25:52 +00:00
Volker Ruppert
36842943f5
Some work on the new SDL2 gui
...
- fixed compilation with gui debugger enabled
- added mouse wheel support
- added gui option "nokeyrepeat"
2014-06-28 08:18:26 +00:00
Volker Ruppert
a643105a9c
Added initial SDL2 gui code, use --with-sdl2 to enable it.
...
TODO list:
- fullscreen mode, keyboard mapping, mouse wheel support
- take advantage of new SDL2 features
- Windows port not yet tested
2014-06-27 20:53:20 +00:00
Volker Ruppert
ccc66ad4d7
Cleaned up SDL gui code (no functional changes - SDL2 support will appear in
...
a separate file)
2014-06-27 20:26:03 +00:00
Volker Ruppert
3c0ad43092
Continued preparing Bochs for SDL2 support
...
- added new symbol BX_WITH_SDL2 and prepared build system
- TODO #1 : add new option --with-sdl2 to configure script
- TODO #2 : add new file sdl2.cc (porting seems hard to do - writing from scratch
might be better)
2014-06-23 19:37:58 +00:00
Volker Ruppert
c188a6ba5d
Started preparing Bochs for SDL2 support. Set up GUI_LINK_OPTS_SDL in the
...
configure script (SDL2 uses 'sdl2-config' instead of 'sdl-config').
2014-06-21 08:22:22 +00:00
Volker Ruppert
5602e1b676
Added new symbol BX_USE_WIN32CONFIG in config.h and cleaned up related code
2014-06-20 09:31:56 +00:00
Volker Ruppert
773ac518b3
Fixed broken MSVC plugins support (many CDECL additions required)
...
TODO: check for remaining CDECL issues (hdimage mode 'dll') and update project files
2014-06-08 08:40:08 +00:00
Volker Ruppert
4f2a23602b
Fixed ugly side effect of the win32 fullscreen changes
...
- don't try to resize the simulation window if minimized (iconic)
- handle window size correction in the gui event handler and by calling
resize_main_window(FALSE), since fullscreen mode is not always required
2014-06-05 20:12:44 +00:00
Volker Ruppert
0c833ad58f
Some changes in dimension_update()
...
- switching to a resolution > desktop size now causes a BX_ERROR
- stretch VBE demo mode 320x200 to double size
2014-05-30 10:12:13 +00:00
Volker Ruppert
42afaef2ba
Load floppy plugin after the display plugin and simplified related init gui code.
2014-05-26 17:04:02 +00:00
Volker Ruppert
acea38455b
Continued work on win32 fullscreen rewrite
...
- fixed screen flickering after entering fullscreen for the second time
- now using resize_main_window() directly for leaving fullscreen mode
- dimension_update() now only used for guest display mode change
- TODO: more testing to find cases that can make Bochs crash
2014-05-23 19:28:23 +00:00
Volker Ruppert
a15bc4acc4
Some more work on the win32 fullscreen mode
...
- moved fullscreen mode enable/disable stuff to a new function
- now only use dimension_update() for leaving fullscreen mode
- fixed fullscreen issues in text mode
- TODO: check if guest display is too large and add a proper handling for this case
2014-05-22 19:06:01 +00:00
Volker Ruppert
255198baa8
Added some workarounds for the win32 fullscreen mode
...
- changing from window mode to fullscreen and back now looks okay
- changing guest resolution in fullscreen mode now also works
- TODO #1 : rewrite of the window / fullscreen code to avoid using dimension_update()
to toggle the internal mode
- TODO #2 : add size checks in dimension_update() to avoid crash. We could panic
at this point or compress screen to desktop size.
2014-05-20 18:42:36 +00:00
Volker Ruppert
fdbbdf254f
Initial win32 fullscreen fixes
...
- send lost ALT keyup event after closing notification message box
- disable border of simulation window in fullscreen mode
- TODO #1 : fix window sizes after leaving fullscreen mode
- TODO #2 : add screen size checks to avoid crash
2014-05-18 19:13:35 +00:00
Volker Ruppert
0a6274c2af
Fixed bx_shadow_bool_c method set() to make it work with initial value "1".
...
This fixes the floppy malfunction after restore and maybe other issues. The
buggy code failed to clear the DMA controller mask bits and the floppy DMA
requests never arrived at the CPU.
2014-05-13 21:10:31 +00:00
Volker Ruppert
6616afa7a9
Fixes and improvements log options save/restore methods
...
- device prefix size needed update, but now using log function name instead
- don't use overlapping strcpy() (increment pointer and one single strcpy())
- now using get_logfn_id() to simplify code
TODO: fix floppy access failure after restore
2014-05-12 17:30:05 +00:00
Volker Ruppert
ed41df332a
Support for compiling plugin version of Bochs with MSVC nmake now complete.
...
- embedding combined manifest makes BOCHS.EXE usable
- list of DLL plugins now depends on the pci and debugger options
- 'make clean' now removes the generated manifest files
- renamed variable for external rules
- documentation update
2014-05-03 10:58:10 +00:00
Volker Ruppert
bb8444fdb1
The ask() method now returns even in the "quit" case. The calling method then
...
terminates the simulation with fatal().
X11 ask dialog: increase string size for device prefix.
TODO: the "format string vulnerability" in fatal() is still not fixed.
2014-05-01 14:34:32 +00:00
Volker Ruppert
900c0fddc4
Temporarily added targets for MSVC nmake plugins in network, sound and usb
...
sections. A better solution must be found for the basic set of device plugins
in iodev that don't require special rules.
Switched back to the original gui macro naming for linking plugins.
2014-04-27 07:46:33 +00:00
Volker Ruppert
95346323af
Added MSVC nmake support for the gui plugins nogui, rfb and win32.
...
Updated comments about DLL plugins in makefiles
2014-04-25 16:07:26 +00:00
Volker Ruppert
eb484919fe
Next step for plugin support with MSVC nmake: device plugins that need special
...
rules can be built now (keyboard, pit, gameport, serial, vga, svga_cirrus,
hdimage, netmod, soundmod, usb_common). The generated DLLs are usable with the
BOCHS.EXE built with the IDE, but the nmake won't work at all yet.
2014-04-21 18:43:22 +00:00
Volker Ruppert
3273a24c1e
Use realtime mode for the "LED auto-off" timer if enabled
2014-04-07 17:37:07 +00:00
Volker Ruppert
994f908438
Fixed memory leaks found with valgrind
2014-04-06 19:01:38 +00:00
Volker Ruppert
2777ac0dc5
Added separate target for MSVC plugins (causing an error for now)
2014-04-06 07:22:16 +00:00
Volker Ruppert
76a03aa1f0
Networking-related fixes
...
- bx_param_string_c method isempty() didn't work for raw byte strings. Now using
it to check whether or not the current value matches the initial one. The
parameter handling of the network adapters now use this method to check if
the MAC address is already initialized to avoid incorrect BX_ERRORs.
- small documentation update
2014-03-10 19:05:46 +00:00
Volker Ruppert
7ec9adbb2d
Switch to Winsock2 library for all Windows cases
2014-02-15 12:18:15 +00:00
Volker Ruppert
cf93269380
Define WIN32_LEAN_AND_MEAN to make using Winsock2 possible (for vncsrv and slirp).
...
TODO: change include statements to winsock2.h and link with ws2_32.dll.
2014-02-15 00:23:36 +00:00
Stanislav Shwartsman
09414f2f4b
implemented access to opmask AVX-512 registers from debugger, fixed enhdbg buffer overflow with EVEX enabled
2014-02-11 20:51:18 +00:00
Volker Ruppert
63cb7f93bf
Small bugfix for Windows: set / clear menu item check mark for log viewer
2014-01-13 22:04:39 +00:00
Volker Ruppert
4c6481578d
Added capability to use the gui debugger output window as a log viewer
2014-01-13 21:31:14 +00:00
Volker Ruppert
05de03bf59
Small optimization in the log viewer code
2014-01-13 18:03:40 +00:00
Volker Ruppert
71feea84ed
Implemented log viewer dialog for the wx gui
...
- added new class LogViewDialog based on the already removed DebugLogDialog
- log output is only sent to the viewer if visible to avoid performance trouble
- text buffer is limited to 48k, older lines are removed if necessary
- red text color is used for error and panic messages and black for others
- minor related code cleanups
2014-01-12 19:27:01 +00:00
Volker Ruppert
bace4d0c6b
Prepared siminterface and logio code for the implementation of a log viewer
...
for watching the log output at simulation time. This feature has been prepared
and described in the code (BX_ASYNC_EVT_LOG_MSG), but it was never implemented.
A viewer window could be implemented easily in wx. The gui debugger could also
have an option to view the log output while debugging.
2014-01-12 08:26:04 +00:00
Volker Ruppert
63a86148bf
wxWidgets toolbar fixes
...
- moving ToggleMouse() call to the gui thread fixes two issue: possible deadlock
in wxGTK after showing message box, mouse cursor not hidden in wxMSW
- don't add undefined toolbar events to the queue
- removed unused / unhandled cases from the toolbar code
2014-01-05 19:38:57 +00:00
Volker Ruppert
23a2ded526
Fixed build process without libtool and plugins
2014-01-03 21:58:04 +00:00
Volker Ruppert
8c66e91f81
Some work on wx dialogs
...
- disable log file options at runtime
- fixed vertical alignment of label text
- added license, tab2space and minor other changes
2014-01-03 20:46:59 +00:00
Volker Ruppert
401321d500
Added symbol BX_NULL_PREFIX and fixed textconfig log options table.
...
If log module name not specified, use device log prefix converted to lower
case as the name and simplified setting up some short prefixes.
2013-12-31 09:20:08 +00:00
Volker Ruppert
443f04703c
Added / modified device log prefixes
2013-12-29 12:56:52 +00:00
Volker Ruppert
acc4c6c2c8
Some fixes and cleanups
...
- in wx we had two logfunctions for the siminterface (removed duplicate init)
- renamed siminterface prefix to "SIM"
- moved variable "pluginlog" to the plugin interface
- fixed / removed some forward declarations
2013-12-29 08:45:28 +00:00
Volker Ruppert
49c639e00d
Removed obsolete stuff from the gui code
2013-12-26 20:51:46 +00:00
Volker Ruppert
bd89ed053d
Some work on the wx toolbar
...
- disable most of the buttons if no simulation is running
- save/restore button calls restore function at configuration time
- disable code related to the config button
2013-12-26 08:37:51 +00:00
Volker Ruppert
a603fe4471
Added mouse wheel support to the rfb and vncsrv guis
2013-12-25 09:48:53 +00:00
Volker Ruppert
bb90270b8d
Use WIN32 thread functions for Cygwin, too.
2013-12-24 22:43:49 +00:00
Volker Ruppert
1ce8d5de2f
Several wxWidgets fixes and improvements
...
- send wheel data to the PS/2 mouse emulation (wx mouse wheel support works now)
- show selected mouse toggle method in toolbar help and message box
- added capability to start the simulation with the power button
2013-12-24 17:18:46 +00:00
Volker Ruppert
8f5408e653
Fixed some gcc 4.8.1 warnings
2013-12-23 11:31:32 +00:00
Stanislav Shwartsman
52c80539ef
fixed uninitialzied variable which caused unpredictable behavior in some cases (randomly ignoring params during loading .bochsrc)
2013-12-22 20:47:30 +00:00
Volker Ruppert
e3862e34e5
Fixed compilation with Cygwin
...
- reverted changes in SVN revision 10985 (-DWIN32 now works again with Cygwin)
- don't link Bochs.exe or RFB gui with wsock32.dll in the Cygwin case
- the win32 gui doesn't need to be linked wsock32.dll at all
2013-12-22 12:17:28 +00:00
Volker Ruppert
11571f0ecf
Improvements and cleanups for the textconfig runtime menu
...
- added menu item for saving configuration
- use existing cdrom runtime menu instead of hardcoded items
- some code cleanups after cdrom option changes
2013-12-20 17:53:00 +00:00
Volker Ruppert
58019a1649
Renamed "ltdl.h" to "ltdl-bochs.h" to avoid conflicts with the include file
...
that is a part of the libtool package. Updated Makefile dependencies.
TODO: check if we can get rid of the ltdl*.* files (this would be possible if
the ltdl library is always available if libtool is present).
2013-12-17 19:57:40 +00:00
Volker Ruppert
ba748560d6
Added basic scroll window support for wx ParamDialog
2013-12-10 19:34:56 +00:00
Volker Ruppert
f534e8f6f6
win32ParamDialog: added separate functions for handling child windows and buttons
...
floppy dialog: update controls after setting path with the browse button
2013-12-09 20:23:23 +00:00
Volker Ruppert
eebeb7a06a
Replaced floppy dialog by a new implementation based on win32ParamDialog
...
- DONE: create image feature
- DONE: OK button forces a media change
- TODO: set status and media type after browse button
win32ParamDialog changes:
- changed base IDs for dialog child items
- set enum and bool parameters only if modified
- several changes for the floppy dialog
2013-12-08 21:22:50 +00:00
Volker Ruppert
f008f0989f
Simplified floppy parameter handling
...
wx floppy dialog now forces a media change by clicking OK (same as win32dialog)
wxdialog.cc: one more whitespace cleanup
wxdialog.h: removed unused members
2013-12-08 11:32:13 +00:00
Volker Ruppert
a3de279d3a
Floppy runtime config dialog parameter handling rewritten
...
TODO: use modified version of win32ParamDialog for floppy config (similar to wx)
2013-12-07 22:58:41 +00:00
Volker Ruppert
495dd21691
Added wxWidgets mouse wheel support
2013-12-03 20:08:30 +00:00
Volker Ruppert
73b2402538
Fixed some runtime config issues
...
- es1370: fixed wave file parameter name
- wx cdrom dialog: use the first item of the cdrom runtime parameter list
- wx ParamDialog: always pause the simulation thread while setting parameters
- wx ParamDialog: call SIM->update_runtime_options() before continuing simulation
2013-12-01 16:02:31 +00:00
Volker Ruppert
7f3552614d
Some wxWidgets fixes
...
- Fixed ParamDialog::isGeneratediD() (browse button of last item could fail)
- Disable menu items without runtime options
- Partial whitespace cleanup
2013-11-29 16:37:50 +00:00
Volker Ruppert
0be25b75fe
Fixed some runtime dialog issues
...
- Show disabled runtime parameters
- Don't do anything if a dependent parameter's control ID is not found
- process dependent lists only for a few control notification messages
- Added second try to find the control ID for a parameter (browse all lists)
2013-11-26 20:09:01 +00:00
Volker Ruppert
84b088c0c0
Revert a change I did only for testing
2013-11-25 21:14:26 +00:00
Volker Ruppert
f3a6fbd235
Simplified setup of special runtime menus / dialogs
...
- If the runtime flag of a bx_list_c object is set, all it's items are set up
as runtime options.
- Set the runtime parameter for all top-level runtime-only lists. Setting up
each single parameter is no longer needed.
2013-11-25 21:07:39 +00:00
Volker Ruppert
375b033117
wxWidgets keyboard / mouse fixes:
...
- Release mouse capture on simulation exit
- Don't handle keyboard / mouse events if the simulation is not running
2013-11-24 19:36:47 +00:00
Stanislav Shwartsman
f66a49a570
fixed some msdev warnings
2013-11-10 17:36:13 +00:00
Volker Ruppert
b9944b43b5
Some small fixes
...
- bochs.h: fixed gcc 4.8 warning
- config.h.in: fixed newline
- extplugin.h: fixed VS2008Ex plugins compilation
- gui.cc: fixed tooltip
2013-11-07 19:38:23 +00:00
Volker Ruppert
f8ea396a2c
Several fixes for compiling Bochs successfully in Cygwin64
2013-11-01 18:19:52 +00:00
Volker Ruppert
7f19435887
Fixed some gcc 4.8.1 warnings
2013-10-27 15:13:19 +00:00
Stanislav Shwartsman
b6c39a3176
merge AVX and SSE .bochsrc options to single SIMD option which will configure SSE and AVX together
2013-09-16 19:50:36 +00:00
Stanislav Shwartsman
40f02e0bfb
fixed msdev warnings, update msdev workspaces - add vapic.cc and cpudb new defs
2013-06-26 19:03:00 +00:00
Volker Ruppert
3193de9516
Minor fixes in rfbSetPixelFormat message handling
...
- fixed error message for unsuported pixel format
- removed useless assignments
2013-06-09 17:16:16 +00:00
Volker Ruppert
38e292a261
Make shared data access thread-safe
...
- use LibVNCServer macros for pthread mutex support in the keyboard / mouse code
- workaround for WIN32: use critical section stuff instead (not yet present in
LibVNCServer)
2013-06-08 06:47:52 +00:00
Volker Ruppert
9cb610464d
Several RFB changes
...
- don't quit simulation on client disconnect (reverted to original behavior)
- don't wait for client connection on startup if timeout is set to 0
- RFB color handling rewritten to fix headerbar and statusbar colors in 8 bpp
graphics modes (they no longer depend on VGA palette)
- set maximum resolution to 1280x1024 (same as vncsrv)
- minor other changes
2013-06-05 20:25:44 +00:00
Volker Ruppert
e824499639
Removed recently added "noclient" code to let vncsrv always work this way
...
TODO: Fix RFB gui to make work the same again
2013-06-04 19:10:40 +00:00
Volker Ruppert
e06b44c866
minor fixes in dimension_update(): snapshot.bmp now correctly saved on server
2013-06-03 21:27:22 +00:00
Volker Ruppert
e276742d56
vncsrv "noclient" mode and some vncsrv / rfb fixes and cleanups
...
- vncsrv: noclient mode: simulation run even without client connected
- vncsrv / rfb: parse specific options before starting server thread
- vncsrv / rfb: panic on invalid timeout value
- vncsrv: don't wait for client connection if timeout value is 0
- vncsrv / rfb: removed unnecessary newlines
2013-06-02 20:56:46 +00:00
Volker Ruppert
536887aee2
vncsrv gui code cleanup with small addition
...
- quit simulation if the client has disconnected
- changed the order of methods and function in the file
2013-06-02 14:32:45 +00:00
Volker Ruppert
9325db1b55
RFB code cleanup and small additions
...
- quit simulation if the client has disconnected
- moved update region checks to new function rfbAddUpdateRegion
- changed the order of methods and function in the file
2013-06-02 09:21:11 +00:00
Volker Ruppert
21feca3767
Some work on the new 'vncsrv' gui
...
- use the CXXFLAGS and link options provided by the libvncserver-config script
- added Windows support for MinGW/MSYS (compiles fine, but crashes sometimes)
2013-05-31 16:46:15 +00:00
Volker Ruppert
17b7b87a61
Added new experimental gui 'vncsrv" using the LibVNCServer library. It supports
...
higher resolutions and > 8 bpp graphics modes. The RFB gui with limited
capabilities is still available.
TODO:
- fix random segfaults in dimension_update()
- Windows (MinGW) support
- fixes for clients not supporting 'rfbEncodingNewFBSize'
- fix cursor shape after dimension update()
2013-05-30 17:18:30 +00:00
Volker Ruppert
dc1dd06794
Prepare the RFB sources for the implementation of a new gui based on the
...
LibVNVServer library. The include files will be used for both guis.
2013-05-30 09:31:21 +00:00
Volker Ruppert
b04df59367
RFB code cleanup (no functional changes)
...
Updated version strings after release
TODO: implement new RFB(VNC) gui using LibVNCServer
2013-05-29 17:35:19 +00:00
Volker Ruppert
180d8a295e
initialize scroll position in WM_CREATE
...
reduce virtual window height
2013-03-19 19:26:04 +00:00
Volker Ruppert
900ac609c7
fixed disabling of dialog items in a scroll window
...
added mouse wheel support to the scroll window
minor cleanups
TODO: update workspace files, scroll window support for wx
2013-03-19 17:44:19 +00:00
Stanislav Shwartsman
2bb620844f
added scrollwin.cc into Makefile
2013-03-18 20:40:21 +00:00
Volker Ruppert
a4a275848f
initial implementation of scrollable dialog items on WIN32
...
- scroll window has 16 visible items and the virtual size is not limited
- CPUID parameter list now using this feature
- FIXME #1 : scroll window is not resized if browse button column is present
- FIXME #2 : only one scroll window per dialog is supported
2013-03-18 19:08:26 +00:00