logo

Live Production Software Forums


Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Options
Go to last post Go to first unread
bcrotaz  
#1 Posted : Saturday, August 14, 2021 9:03:28 PM(UTC)
bcrotaz

Rank: Newbie

Groups: Registered
Joined: 8/14/2021(UTC)
Posts: 6
United Kingdom
Location: London

Plugin API should allow push and pull feeds. I have a feed for example on a websocket which is receiving data pushed from remote sources.

Suggest a plugin is a .Net class implementing a VMix interface IVMixDataSource (similar to xaml template plugins) and a class attribute [VMixPlugin("vendor-name", "plugin-name")] which populates the data source menu. Attributes could also be used to tell VMix what config fields are available in the plugin to populate a VMix config page.

To register a plugin as a data source,
1. Open the plugin dll in VMix.
2. VMix looks for all public classes that implement IVMixDataSource
3. VMix adds the plugin to its registry under a sub group for vendor-name (to avoid name clashes)

A starting point that would work for table style data - the same concept could be used for named data rows.

Code:

IVMixDataSource {
  // init gets called by VMix on startup to send a push interface to the plugin
  void init(IVMixPushDataSink pushDataSink, IDictionary<string, string> config);

  // functions to pull data from plugin
  int rowCount {get;}
  IDictionary<string, object> getRow(int row);
  
  // VMix can use these to subscribe only to rows that are needed on air
  // null means all
  void subscribe(int? row = null);
  void unsubscribe(int? row = null);
}

IVMixPushDataSink {
  // plugin can push data to VMix
  void publishRow(int row, IDictionary<string, object> row);
}
hakan_forss  
#2 Posted : Friday, August 20, 2021 8:32:19 PM(UTC)
hakan_forss

Rank: Advanced Member

Groups: Registered
Joined: 12/26/2019(UTC)
Posts: 33
Sweden

+1
Users browsing this topic
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.