Skip to content

More types of triggers #3662

@Julusian

Description

@Julusian

Similar to the new expression variables page, I think that some new types of triggers should be added to create some specialisation of different event sources.
Perhaps these could be solved by adding new events types, but I think that these are flows that warrant some different UI.

In this, I propose that the Triggers tab becomes a split menu (similar to surfaces), with a few pages:

Midi/Input

I have been thinking about this for a few days, so this is semi planned.

For now this is intended to be for midi, but perhaps could extend to gamepad input later on.
Perhaps the fader/jog/shuttle of existing surfaces should hook into this, as a better workflow until we can handle them in the grid.

This needs some more exploration for how it should behave, there might want to be a couple of types within in, to handle different midi flows (buttons vs faders/pots)

Each of these triggers should have an event source, which allows picking things and there should not be a condition block.

For the 'button' behaviour, there should be activate&deactivate actions, perhaps even the duration groups that we have on normal buttons. This probably wants to have the rotary events too.
For 'value' behaviour, it might be that there wants to be a single actions block, to be triggered whenever it changes. The value from the fader/whatever should be exposed as a $(this:value) variable

Webhooks

This is less thought through, it was prompted by #3661

Triggering things in companion is a common request. I personally am doing it for some custom input from an IR receiver.
Today it requires making a request to certain paths, to trigger button presses which is sub-optimal.

Instead, it would be good if the user could define a list of custom 'webhooks'.
In this, the user should be able to specify a path to use (which will be prefixed with /api/webhook/), the http verb.

We could paste relevant info about the request into some variables $(this:body), $(this:headers) and $(this:query), and let the user build perform actions based on this.

As a follow up, we could add more options to this:

  • restrict the ip address of caller
  • option to require http basic auth
  • builtin hmac verification check. some webhooks (eg github) allow doing some signature checking with a shared secret, could be nice if we could handle the check for the user

Q) Maybe this should also include being able to setup custom OSC paths? Having something similar for that would be great to have, or should it be its own page?

Metadata

Metadata

Assignees

No one assigned

    Labels

    EnhancementNew feature or requestNeeds UX/design workThis needs thought on the user experience or ui design in order to progressNeeds beer!This needs discussion while drinking beerarea/guiGUI / Webapp relatedarea/triggers

    Type

    No type

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions