How e1z0/anotherrtsp works
AnotherRTSP is a Windows desktop RTSP camera monitor with configurable, movable camera windows, MQTT-triggered rules and alerts, scripting, and tray-based controls. The main flow is startup and settings loading, camera playback, and optional MQTT message handling that can invoke Lua scripts and alert actions. The README documents native player capabilities including recording and snapshots. Some UI and native implementation files were not sampled, so relationships involving them are omitted or marked unverified rather than inferred.
Main entry points: LuaManager.cs Lua scripting · MqttService.cs MQTT service · Camera.cs Camera windows · YmlSettings.cs Settings
Components 18
Desktop app
- Application startup
Src/Client/Program.cs - Settings
Src/Client/Classes/YmlSettings.cs - Tray controls
Src/Client/Classes/TrayIconManager.cs - Logging
Src/Client/Classes/Logger.cs - Log window
Src/Client/LogForm.cs
Camera playback
- Camera configuration
Src/Client/Classes/CameraItem.cs - Camera windows
Src/Client/Classes/Camera.cs - Player SDK bridge
Src/EasyPlayerNetSDK/PlayerSdk.cs
MQTT and scripts
- MQTT service
Src/Client/Services/MqttService.cs - Lua scripting
Src/Client/Scripting/LuaManager.cs - Script manager
Src/Client/Forms/ScriptManagerForm.cs - Sound and notifications
Src/Client/Classes/SoundManager.cs - LED state
Src/Client/Services/LedStateManager.cs
MQTT client
- MQTT client
Src/M2Mqtt/MqttClient.cs - MQTT messages
Src/M2Mqtt/Messages/MqttMsgBase.cs
Native player
- RTSP player engine
Src/libEasyPlayer/ChannelManager.cpp
Other components
- Desktop user
- MQTT broker
Connections 25
- Desktop user → Tray controls: uses
Src/Client/Classes/TrayIconManager.cs - Application startup → Settings: loads
Src/Client/Program.cs - Application startup → Camera windows: starts and stops
Src/Client/Program.cs - Application startup → MQTT service: starts and stops
Src/Client/Program.cs - Application startup → Lua scripting: initializes and shuts down
Src/Client/Program.cs - Tray controls → Camera windows: controls
Src/Client/Classes/TrayIconManager.cs - Camera windows → Camera configuration: uses
Src/Client/Classes/Camera.cs - Camera windows → Player SDK bridge: calls
Src/Client/Classes/Camera.cs - Camera windows → Settings: reads
Src/Client/Classes/Camera.cs - MQTT service → Settings: reads broker config
Src/Client/Services/MqttService.cs - MQTT service → MQTT client: connects and subscribes
Src/Client/Services/MqttService.cs - MQTT service → Lua scripting: forwards messages
Src/Client/Services/MqttService.cs - MQTT client → MQTT messages: handles
Src/M2Mqtt/MqttClient.cs - MQTT service → MQTT broker: exchanges messages
Src/Client/Services/MqttService.cs - Lua scripting → Settings: reads scripts and rules
Src/Client/Scripting/LuaManager.cs - Script manager → Lua scripting: manages scripts
Src/Client/Forms/ScriptManagerForm.cs - Lua scripting → Camera windows: controls cameras
Src/Client/Scripting/LuaManager.cs - Lua scripting → Sound and notifications: invokes sound actions
Src/Client/Scripting/LuaManager.cs - Lua scripting → Logging: logs
Src/Client/Scripting/LuaManager.cs - MQTT service → Logging: logs
Src/Client/Services/MqttService.cs - Logging → Settings: reads logging config
Src/Client/Classes/Logger.cs - Log window → Logging: displays logs
Src/Client/LogForm.cs - Player SDK bridge → RTSP player engine: bridges playback
- Lua scripting → LED state: may trigger
- MQTT service → Sound and notifications: may trigger alerts