Added code to save trace logger recording preferences to the config file (Qt GUI).

This commit is contained in:
mjbudd77 2021-05-04 21:06:28 -04:00
parent e12e41a093
commit d7ca6ccc18
2 changed files with 58 additions and 0 deletions

View File

@ -121,6 +121,22 @@ static int logFile = -1;
#endif
static char logFilePath[512] = { 0 };
//----------------------------------------------------
static void initLogOption( const char *name, int bitmask )
{
int opt;
g_config->getOption(name, &opt);
if ( opt )
{
logging_options |= bitmask;
}
else
{
logging_options &= ~bitmask;
}
}
//----------------------------------------------------
TraceLoggerDialog_t::TraceLoggerDialog_t(QWidget *parent)
: QDialog(parent, Qt::Window)
{
@ -263,6 +279,20 @@ TraceLoggerDialog_t::TraceLoggerDialog_t(QWidget *parent)
logInstrCountCbox = new QCheckBox(tr("Log Instructions Count"));
logBankNumCbox = new QCheckBox(tr("Log Bank Number"));
initLogOption("SDL.TraceLogRegisterState", LOG_REGISTERS );
initLogOption("SDL.TraceLogProcessorState", LOG_PROCESSOR_STATUS );
initLogOption("SDL.TraceLogNewInstructions", LOG_NEW_INSTRUCTIONS );
initLogOption("SDL.TraceLogNewData", LOG_NEW_DATA );
initLogOption("SDL.TraceLogFrameCount", LOG_FRAMES_COUNT );
initLogOption("SDL.TraceLogCycleCount", LOG_CYCLES_COUNT );
initLogOption("SDL.TraceLogInstructionCount", LOG_INSTRUCTIONS_COUNT );
initLogOption("SDL.TraceLogMessages", LOG_MESSAGES );
initLogOption("SDL.TraceLogBreakpointHits", LOG_BREAKPOINTS );
initLogOption("SDL.TraceLogBankNumber", LOG_BANK_NUMBER );
initLogOption("SDL.TraceLogSymbolic", LOG_SYMBOLIC );
initLogOption("SDL.TraceLogStackTabbing", LOG_CODE_TABBING );
initLogOption("SDL.TraceLogLeftDisassembly", LOG_TO_THE_LEFT );
logRegCbox->setChecked((logging_options & LOG_REGISTERS) ? true : false);
logFrameCbox->setChecked((logging_options & LOG_FRAMES_COUNT) ? true : false);
logEmuMsgCbox->setChecked((logging_options & LOG_MESSAGES) ? true : false);
@ -544,6 +574,7 @@ void TraceLoggerDialog_t::logRegStateChanged(int state)
{
logging_options |= LOG_REGISTERS;
}
g_config->setOption("SDL.TraceLogRegisterState", (logging_options & LOG_REGISTERS) ? 1 : 0 );
}
//----------------------------------------------------
void TraceLoggerDialog_t::logFrameStateChanged(int state)
@ -556,6 +587,7 @@ void TraceLoggerDialog_t::logFrameStateChanged(int state)
{
logging_options |= LOG_FRAMES_COUNT;
}
g_config->setOption("SDL.TraceLogFrameCount", (logging_options & LOG_FRAMES_COUNT) ? 1 : 0 );
}
//----------------------------------------------------
void TraceLoggerDialog_t::logEmuMsgStateChanged(int state)
@ -568,6 +600,7 @@ void TraceLoggerDialog_t::logEmuMsgStateChanged(int state)
{
logging_options |= LOG_MESSAGES;
}
g_config->setOption("SDL.TraceLogMessages", (logging_options & LOG_MESSAGES) ? 1 : 0 );
}
//----------------------------------------------------
void TraceLoggerDialog_t::symTraceEnaStateChanged(int state)
@ -580,6 +613,7 @@ void TraceLoggerDialog_t::symTraceEnaStateChanged(int state)
{
logging_options |= LOG_SYMBOLIC;
}
g_config->setOption("SDL.TraceLogSymbolic", (logging_options & LOG_SYMBOLIC) ? 1 : 0 );
}
//----------------------------------------------------
void TraceLoggerDialog_t::logProcStatFlagStateChanged(int state)
@ -592,6 +626,7 @@ void TraceLoggerDialog_t::logProcStatFlagStateChanged(int state)
{
logging_options |= LOG_PROCESSOR_STATUS;
}
g_config->setOption("SDL.TraceLogProcessorState", (logging_options & LOG_PROCESSOR_STATUS) ? 1 : 0 );
}
//----------------------------------------------------
void TraceLoggerDialog_t::logCyclesCountStateChanged(int state)
@ -604,6 +639,7 @@ void TraceLoggerDialog_t::logCyclesCountStateChanged(int state)
{
logging_options |= LOG_CYCLES_COUNT;
}
g_config->setOption("SDL.TraceLogCycleCount", (logging_options & LOG_CYCLES_COUNT) ? 1 : 0 );
}
//----------------------------------------------------
void TraceLoggerDialog_t::logBreakpointStateChanged(int state)
@ -616,6 +652,7 @@ void TraceLoggerDialog_t::logBreakpointStateChanged(int state)
{
logging_options |= LOG_BREAKPOINTS;
}
g_config->setOption("SDL.TraceLogBreakpointHits", (logging_options & LOG_BREAKPOINTS) ? 1 : 0 );
}
//----------------------------------------------------
void TraceLoggerDialog_t::useStackPointerStateChanged(int state)
@ -628,6 +665,7 @@ void TraceLoggerDialog_t::useStackPointerStateChanged(int state)
{
logging_options |= LOG_CODE_TABBING;
}
g_config->setOption("SDL.TraceLogStackTabbing", (logging_options & LOG_CODE_TABBING) ? 1 : 0 );
}
//----------------------------------------------------
void TraceLoggerDialog_t::toLeftDisassemblyStateChanged(int state)
@ -640,6 +678,7 @@ void TraceLoggerDialog_t::toLeftDisassemblyStateChanged(int state)
{
logging_options |= LOG_TO_THE_LEFT;
}
g_config->setOption("SDL.TraceLogLeftDisassembly", (logging_options & LOG_TO_THE_LEFT) ? 1 : 0 );
}
//----------------------------------------------------
void TraceLoggerDialog_t::logInstrCountStateChanged(int state)
@ -652,6 +691,7 @@ void TraceLoggerDialog_t::logInstrCountStateChanged(int state)
{
logging_options |= LOG_INSTRUCTIONS_COUNT;
}
g_config->setOption("SDL.TraceLogInstructionCount", (logging_options & LOG_INSTRUCTIONS_COUNT) ? 1 : 0 );
}
//----------------------------------------------------
void TraceLoggerDialog_t::logBankNumStateChanged(int state)
@ -664,6 +704,7 @@ void TraceLoggerDialog_t::logBankNumStateChanged(int state)
{
logging_options |= LOG_BANK_NUMBER;
}
g_config->setOption("SDL.TraceLogBankNumber", (logging_options & LOG_BANK_NUMBER) ? 1 : 0 );
}
//----------------------------------------------------
void TraceLoggerDialog_t::logNewMapCodeChanged(int state)
@ -676,6 +717,7 @@ void TraceLoggerDialog_t::logNewMapCodeChanged(int state)
{
logging_options |= LOG_NEW_INSTRUCTIONS;
}
g_config->setOption("SDL.TraceLogNewInstructions", (logging_options & LOG_NEW_INSTRUCTIONS) ? 1 : 0 );
}
//----------------------------------------------------
void TraceLoggerDialog_t::logNewMapDataChanged(int state)
@ -688,6 +730,7 @@ void TraceLoggerDialog_t::logNewMapDataChanged(int state)
{
logging_options |= LOG_NEW_DATA;
}
g_config->setOption("SDL.TraceLogNewData", (logging_options & LOG_NEW_DATA) ? 1 : 0 );
}
//----------------------------------------------------
traceRecord_t::traceRecord_t(void)

View File

@ -549,6 +549,21 @@ InitConfig()
config->addOption("autoSaveCDL" , "SDL.AutoSaveCDL", 1);
config->addOption("autoLoadCDL" , "SDL.AutoLoadCDL", 1);
config->addOption("autoResumeCDL", "SDL.AutoResumeCDL", 0);
// Trace Logger Options
config->addOption("SDL.TraceLogRegisterState", 1);
config->addOption("SDL.TraceLogProcessorState", 1);
config->addOption("SDL.TraceLogNewInstructions", 0);
config->addOption("SDL.TraceLogNewData", 0);
config->addOption("SDL.TraceLogFrameCount", 0);
config->addOption("SDL.TraceLogCycleCount", 0);
config->addOption("SDL.TraceLogInstructionCount", 0);
config->addOption("SDL.TraceLogMessages", 1);
config->addOption("SDL.TraceLogBreakpointHits", 1);
config->addOption("SDL.TraceLogBankNumber", 0);
config->addOption("SDL.TraceLogSymbolic", 0);
config->addOption("SDL.TraceLogStackTabbing", 1);
config->addOption("SDL.TraceLogLeftDisassembly", 1);
// overwrite the config file?
config->addOption("no-config", "SDL.NoConfig", 0);