Custom Dockpanels
Posted: 17 Aug 2023 16:15
ProppFrexx is by nature very flexible and extensible radio software. This is one of the reasons we chose it over any other radio software on the market. The extensible list of control-commands and macros allow you to control almost every action and read almost every status in the application.
Custom Dockpanels
One of the features we miss is the ability to display custom information in ProppFrexx. It would be great if we could develop custom dockpanels that integrate within ProppFrexx. With the extensible list of control-commands and macros there already is a way to push/pull data to/from ProppFrexx.
Examples of possible use-cases of such a feature:
It would leave us, the users, the ability to extend ProppFrexx in any way possible and allow almost unlimited flexibility.
Implementations
There are 2 possible implementations I can think of to achieve this feature.
Custom Dockpanels
One of the features we miss is the ability to display custom information in ProppFrexx. It would be great if we could develop custom dockpanels that integrate within ProppFrexx. With the extensible list of control-commands and macros there already is a way to push/pull data to/from ProppFrexx.
Examples of possible use-cases of such a feature:
- Ability to display on-air status in a multi-studio setup (which studio is live, what song is playing in that studio). Also have the ability to switch between studios.
- View chat messages from listeners and reply to them via a 3th party chat application
- Ability to have a custom stopwatch clock when opening the microphones to display how long an interview has been proceeding. (viewtopic.php?t=3448)
- Ability to view DAB+ or FM return signal from a 3th party receiver
- The list can go on forever, it is up to the user to develop these features
It would leave us, the users, the ability to extend ProppFrexx in any way possible and allow almost unlimited flexibility.
Implementations
There are 2 possible implementations I can think of to achieve this feature.
- WebView based implementation:
In this implementation ProppFrexx would have a fixed number of dockpanels that can be configured to display a web-based application (either a local file or a remote url). This web application can push/pull data from ProppFrexx using the REST API, that was introduced a few versions ago. This would however require a more modern webview, as the current build-in browser lacks modern JavaScript support.
It would act like the build-in webbrowser, but have no controls/address bar at the top. Actions like reload could be triggered by a right click action menu.
Benefits of this implementation- Easy to implement (only requires an extra config section and a new webview library that supports the modern web standards)
- Unlimited flexibility.
- A lot of other broadcast software already have some sort of web-based status screen. This could integrate nicely.
- Higher CPU/RAM usage than a native solution
- WebViews do not have the ability to interact with TCP/UDP sockets directly. If 3th party tools only support those ways of communication you will need to build an external HTTP server first.
- .NET based implementation:
In this implementation a custom SDK to build dockpanels could be provided. The developer would build a separate DLL for each dockpanel and ProppFrexx will load those from a configured directory. These could also be shared across the network using synced storage.
For data transfer between a dock panel and ProppFrexx the existing Zyan Communication system can be used.
Benefits of this implementation- Native integration with .NET
- Higher level programming options (TCP/UDP sockets, ...)
- Less CPU/RAM intensive than a webview
- Requires lot's of development time and documentation
- Much more complex for development