Skip to content

Link the plugin to an application

Overview

You can link your Loupedeck plugin to an application so that the plugin is activated when the application comes to the foreground.

As an example, let's use the "DemoApplication" application that comes as a part of the Loupedeck Plugin SDK. Start it with this command line:

C:\Program Files (x86)\Loupedeck\Loupedeck2\DemoApplication.exe

The full source code for this topic is at: DemoPlugin/Step05

You can find the DemoApplication class here: DemoApplication.cs

Steps

  1. Open the Demo plugin solution in Visual Studio.

  2. In the Solution Explorer, double-click the DemoApplication.cs file.

  3. Modify the GetProcessName method that returns the process name of the supported application:

    protected override String GetProcessName() => "DemoApplication";
    
  4. Start debugging and wait until the Loupedeck software is loaded.

  5. Open the Loupedeck configuration UI.

  6. Put the Dynamic mode switch on the top right corner of the configuration UI to ON.

  7. Connect a Loupedeck console to your computer. The console shows the Windows profile on the screen. This is the default profile when no supported application is in the foreground.

  8. Start the DemoApplication application from here:

    C:\Program Files (x86)\Loupedeck\Loupedeck2\DemoApplication.exe
    
  9. The Loupedeck console shows the Demo profile on the screen.

  10. Change the active applications with Alt+Tab to see how the Loupedeck console switches between them.

Notes

  1. It is possible to define several process names for the supported applications. In this case, override the GetProcessNames method instead of GetProcessName:

    protected override String[] GetProcessNames() => new[] { "Ableton Live 10 Lite", "Ableton Live 10 Standard" };
    
  2. You can set a process name filter instead of fixed application names. In this case, override the IsProcessNameSupported method instead of GetProcessName:

    protected override Boolean IsProcessNameSupported(String processName) => processName.ContainsNoCase("CaptureOne");