main.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include <csignal>
  2. #include <iostream>
  3. #include "WallpaperEngine/Application/CApplicationContext.h"
  4. #include "WallpaperEngine/Application/CWallpaperApplication.h"
  5. #include "common.h"
  6. WallpaperEngine::Application::CWallpaperApplication* appPointer;
  7. void signalhandler(int sig)
  8. {
  9. if (appPointer == nullptr)
  10. return;
  11. appPointer->signal (sig);
  12. }
  13. void initLogging ()
  14. {
  15. sLog.addOutput (new std::ostream (std::cout.rdbuf ()));
  16. sLog.addError (new std::ostream (std::cerr.rdbuf ()));
  17. }
  18. int main (int argc, char* argv[])
  19. {
  20. initLogging ();
  21. WallpaperEngine::Application::CApplicationContext appContext (argc, argv);
  22. WallpaperEngine::Application::CWallpaperApplication app (appContext);
  23. // halt if the list-properties option was specified
  24. if (appContext.general.onlyListProperties)
  25. return 0;
  26. appPointer = &app;
  27. // attach signals to gracefully stop
  28. std::signal (SIGINT, signalhandler);
  29. std::signal (SIGTERM, signalhandler);
  30. // show the wallpaper application
  31. app.show ();
  32. appPointer = nullptr;
  33. return 0;
  34. }