mirror of
https://gitlab.com/kelteseth/ScreenPlay.git
synced 2024-11-12 22:12:34 +01:00
47 lines
2.7 KiB
Markdown
47 lines
2.7 KiB
Markdown
# Overview
|
|
ScreenPlay consists of 7 projects:
|
|
1. **ScreenPlay executable**
|
|
* The main ScreenPlay App UI with Create, Installed, Community and Settings.
|
|
2. **ScreenPlayWallpaper executable**
|
|
* The Wallpaper executable that is used for displaying a single wallpaper. This uses ScreenPlaySDK to talk via QLocalsockets with the main ScreenPlayApp.
|
|
3. **ScreenPlayWidget executable**
|
|
* The Widget executable that is used for displaying a single widget. This uses ScreenPlaySDK to talk via QLocalsockets with the main ScreenPlayApp.
|
|
4. **ScreenPlayUtil lib**
|
|
* Util function, like project.json loading, that are needed in ScreenPlay and Workshop plugin.
|
|
5. **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).
|
|
6. **ScreenPlaySysInfo lib**
|
|
* A qml plugin to read CPU, GPU, Network and all sort of statisitcs.
|
|
7. **ScreenPlayWorkshop plugin**
|
|
* The Steam workshop plugin that is loaded at runtime.
|
|
|
|
![ProjectOverview.png](ProjectOverview.png)
|
|
|
|
### 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](https://gitlab.com/kelteseth/ScreenPlay/-/blob/master/ScreenPlay/app.h#L39) to be easily accessible in the GUI/QML. We use the [constructor](https://gitlab.com/kelteseth/ScreenPlay/-/blob/master/ScreenPlay/app.cpp#L44) of the App class to initialize all Qt register types, fonts and to check if another ScreenPlay instance is running. The [init()](https://gitlab.com/kelteseth/ScreenPlay/-/blob/master/ScreenPlay/app.cpp#L103) method is used to initialize all other c++ classes in a certain order! It also sets up some events [signal/slots](https://doc.qt.io/qt-5/signalsandslots.html) like when the user changes the UI language.
|
|
|
|
For all other class documentation please visit [ScreenPlayDeveloperDocs](https://kelteseth.gitlab.io/ScreenPlayDeveloperDocs/)
|
|
|
|
``` mermaid
|
|
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
|
|
```
|