diff --git a/src/shared/config.cpp b/src/shared/config.cpp index d809353..398c817 100644 --- a/src/shared/config.cpp +++ b/src/shared/config.cpp @@ -420,6 +420,7 @@ shutdown addr 0x55b494 wait addr 0x55a39c getInstance addr 0x54eeac notify addr 0x558464 +waveformClass str EPFramebuffer::Waveform )CONF"; diff --git a/src/shared/swtfb.cpp b/src/shared/swtfb.cpp index b0a86ab..f66d4bc 100644 --- a/src/shared/swtfb.cpp +++ b/src/shared/swtfb.cpp @@ -22,6 +22,8 @@ class SwtFB { const int maxWidth = 1404; const int maxHeight = 1872; + std::string WAVEFORM_MODE = ""; + public: SwtFB() : config(read_config()) {} @@ -38,6 +40,17 @@ class SwtFB { void* address = std::get(search->second); f_getInstance = (uint32_t * (*)(void)) address; std::cerr << "getInstance() at address: " << address << '\n'; + + + auto waveformMode = config.find("waveformClass"); + if (waveformMode != config.end()) { + std::cerr << "Found waveform class " << std::endl; + WAVEFORM_MODE = std::get(waveformMode->second); + } else { + WAVEFORM_MODE = string{"EPFramebuffer::WaveformMode"}; + } + std::cerr << "Using waveform mode " << WAVEFORM_MODE << std::endl; + return true; } @@ -64,7 +77,7 @@ class SwtFB { void SendUpdate(const QRect &rect, int waveform, int flags) const { // Method idx == 1 - QGenericArgument argWaveform("EPFramebuffer::WaveformMode", &waveform); + QGenericArgument argWaveform(WAVEFORM_MODE.c_str(), &waveform); QGenericArgument argUpdateMode("EPFramebuffer::UpdateFlags", &flags); QMetaObject::invokeMethod(instance, "sendUpdate", Qt::DirectConnection, Q_ARG(QRect, rect), argWaveform, argUpdateMode);