SplitCam plugins  1.0.0
Get your own video or still image source as an integral part of SplitCam user interface
Develop your own plugins for SplitCam

Developers can use SplitCam API to add their own plugins which display still images, dynamic content and videos on the scene. The user must select a plugin to be used as a layer on the scene or to add additional image processing filter. No plugin can run forcibly without being first activated by the SplitCam user.

Downloads

Requirements

  • A plugin is a stand-alone DLL library with a well defined exported function sets.
  • You can use any language to develop plugins as soon as you have a DLL file as an output with required exported functions.
  • Every plugin must implement at least the minimum IPlugin interface.
  • The actual plugin functionality is defined by a value returned from IPlugin::getType() method.
  • Image source plugins must implement IImageSource interface.
  • Every plugin must be developed with multiple instances in mind. SplitCam scenes can contain multiple instances of plugin layers and user can add a plugin instance on any scene she finds suitable.
  • Every plugin must have a unique identifier to distinguish it from other plugins.

The documentation, example code and accompanying header file are primarily aimed at C++ developers. The header file containing comments and declaring required exports can be downloaded here.

Types of plugin

Currently SplitCam supports only image source plgin types. These plugins can add still images and videos to any scene inside SplitCam user interface. At this moment you cannot add your own audio sources to SplitCam.

Other plugin types may be added in future versions of SplitCam:

  • Image source (already exists)
  • Image processor or custom filter
  • Event handler
  • Audio source
  • Network provider
  • Other...

API

SplitCam plugin API is described in this document. The only absolute requirement is that a plugin must be a DLL and it must export a function set with unmangled names corresponding to its type.

Every exported function name must start with the splitcam::plugin:: predicate.

Plugin usage

When you have the plugin ready for deployment you can place it inside plugins folder relative to SplitCam main executable location. When started SplitCam will search this folder for available plugins, check every found plugin if it corresponds to requirements, that is if it exports enough functions to support its functionality, and upon successfull verification the plugin will be added to SplitCam user interface.

The actual location of a plugin inside user interface depends on the plugin type. The image source plugins are added to the bottom of Add media layer context menu.

If SplitCam failes to verify a plugin, for example if not all required functions are exported, then SplitCam will unload the DLL and the plugin will be silently ignored.

Example code

You can download the Sample plugin source code and use it as a template for your own project or just for fun. The sample project was created in MS Visual Studio 2019.

Sample Plugin project