diff options
| author | Arisotura <thetotalworm@gmail.com> | 2020-04-27 23:58:29 +0200 | 
|---|---|---|
| committer | Arisotura <thetotalworm@gmail.com> | 2020-04-27 23:58:29 +0200 | 
| commit | 0913576ef598bee4d2ea3c4268a6a6f163cd90ef (patch) | |
| tree | bfc10a523169b8bfe1af6496a4c06572f57ee83b /src | |
| parent | a8aa834c16d5044c25f6d313f88a470cb79ffbfa (diff) | |
FPS counter is back
Diffstat (limited to 'src')
| -rw-r--r-- | src/frontend/qt_sdl/main.cpp | 32 | ||||
| -rw-r--r-- | src/frontend/qt_sdl/main.h | 7 | 
2 files changed, 28 insertions, 11 deletions
| diff --git a/src/frontend/qt_sdl/main.cpp b/src/frontend/qt_sdl/main.cpp index 33dad2b..e9b9122 100644 --- a/src/frontend/qt_sdl/main.cpp +++ b/src/frontend/qt_sdl/main.cpp @@ -60,6 +60,9 @@ EmuThread::EmuThread(QObject* parent) : QThread(parent)  {      EmuStatus = 0;      EmuRunning = 2; +    RunningSomething = false; + +    connect(this, SIGNAL(windowTitleChange(QString)), mainWindow, SLOT(onTitleUpdate(QString)));  }  void EmuThread::run() @@ -102,8 +105,6 @@ void EmuThread::run()      u32 nsamples = 0;      char melontitle[100]; -    SDL_mutex* titlemutex = SDL_CreateMutex(); -    void* titledata[2] = {melontitle, titlemutex};      while (EmuRunning != 0)      { @@ -207,6 +208,7 @@ void EmuThread::run()              uiAreaQueueRedrawAll(MainDrawArea);*/              mainWindow->update(); +            bool fastforward = false;              /*bool fastforward = HotkeyDown(HK_FastForward);              if (Config::AudioSync && !fastforward) @@ -218,7 +220,7 @@ void EmuThread::run()                      if (ret == SDL_MUTEX_TIMEDOUT) break;                  }                  SDL_UnlockMutex(AudioSyncLock); -            } +            }*/              float framerate = (1000.0f * nlines) / (60.0f * 263.0f); @@ -265,11 +267,9 @@ void EmuThread::run()                  if (framerate < 1) fpstarget = 999;                  else fpstarget = 1000.0f/framerate; -                SDL_LockMutex(titlemutex);                  sprintf(melontitle, "[%d/%.0f] melonDS " MELONDS_VERSION, fps, fpstarget); -                SDL_UnlockMutex(titlemutex); -                uiQueueMain(UpdateWindowTitle, titledata); -            }*/ +                changeWindowTitle(melontitle); +            }          }          else          { @@ -297,14 +297,15 @@ void EmuThread::run()              EmuStatus = EmuRunning; +            sprintf(melontitle, "melonDS " MELONDS_VERSION); +            changeWindowTitle(melontitle); +              SDL_Delay(100);          }      }      EmuStatus = 0; -    SDL_DestroyMutex(titlemutex); -      //if (Screen_UseGL) uiGLMakeContextCurrent(GLContext);      NDS::DeInit(); @@ -321,6 +322,11 @@ void EmuThread::run()      //if (Screen_UseGL) uiGLMakeContextCurrent(NULL);  } +void EmuThread::changeWindowTitle(char* title) +{ +    emit windowTitleChange(QString(title)); +} +  void EmuThread::emuRun()  {      EmuRunning = 1; @@ -460,6 +466,12 @@ void MainWindow::onOpenFile()  } +void MainWindow::onTitleUpdate(QString title) +{ +    setWindowTitle(title); +} + +  int main(int argc, char** argv)  {      srand(time(NULL)); @@ -623,8 +635,6 @@ int main(int argc, char** argv)      }  #endif -    RunningSomething = false; -      mainWindow = new MainWindow();      mainWindow->show(); diff --git a/src/frontend/qt_sdl/main.h b/src/frontend/qt_sdl/main.h index fb35fa5..a1093fe 100644 --- a/src/frontend/qt_sdl/main.h +++ b/src/frontend/qt_sdl/main.h @@ -33,12 +33,17 @@ class EmuThread : public QThread  public:      explicit EmuThread(QObject* parent = nullptr); +    void changeWindowTitle(char* title); +      // to be called from the UI thread      void emuRun();      void emuPause(bool refresh);      void emuUnpause();      void emuStop(); +signals: +    void windowTitleChange(QString title); +  private:      volatile int EmuStatus;      int PrevEmuStatus; @@ -73,6 +78,8 @@ public:  private slots:      void onOpenFile(); +    void onTitleUpdate(QString title); +  private:      MainWindowPanel* panel;  }; |