mirror of
https://gitlab.com/kelteseth/ScreenPlay.git
synced 2024-09-01 16:19:47 +02:00
2.7 KiB
2.7 KiB
Overview
ScreenPlay consists of 7 projects:
- ScreenPlay executable
- The main ScreenPlay App UI with Create, Installed, Community and Settings.
- ScreenPlayWallpaper executable
- The Wallpaper executable that is used for displaying a single wallpaper. This uses ScreenPlaySDK to talk via QLocalsockets with the main ScreenPlayApp.
- ScreenPlayWidget executable
- The Widget executable that is used for displaying a single widget. This uses ScreenPlaySDK to talk via QLocalsockets with the main ScreenPlayApp.
- ScreenPlayUtil lib
- Util function, like project.json loading, that are needed in ScreenPlay and Workshop plugin.
- ScreenPlaySDK lLib
- A SDK used internally in the ScreenPlayWallpaper and ScreenPlayWidget to talk to the main ScreenPlay app via QLocalsockets (Windows Pipes and Unix sockets).
- ScreenPlaySysInfo lib
- A qml plugin to read CPU, GPU, Network and all sort of statisitcs.
- ScreenPlayWorkshop plugin
- The Steam workshop plugin that is loaded at runtime.
ScreenPlay App Class
ScreenPlay wrapps all classes into a App.h and App.cpp class. This is easier for unit test integration (not implemented yet!). The main app class is used for owning all other classes via Q_PROPERTY to be easily accessible in the GUI/QML. We use the constructor of the App class to initialize all Qt register types, fonts and to check if another ScreenPlay instance is running. The init() method is used to initialize all other c++ classes in a certain order! It also sets up some events signal/slots like when the user changes the UI language.
For all other class documentation please visit ScreenPlayDeveloperDocs
graph TD
Main.cpp --> App
App --> QQmlApplicationEngine
App --> GlobalVariables
App --> ScreenPlayManager
ScreenPlayManager --> ScreenPlayWallpaper
ScreenPlayManager --> ScreenPlayWidget
App --> Create
Create--> CreateVideoImport
App --> Util
App --> Settings
App --> SDKConnector
App --> InstalledListModel
InstalledListModel --> ProjectFile
App --> InstalledListFilter
App --> MonitorListModel
MonitorListModel --> Monitor
App --> ProfileListModel
ProfileListModel --> Profile