Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
binding_diagnostics.hpp File Reference

Why a widget→parameter binding attempt did or did not take effect. More...

#include <cstdint>
#include <string>

Go to the source code of this file.

Classes

struct  pulp::view::BindingAttempt
 One recorded attempt, successful or not. More...

Namespaces

namespace  pulp
namespace  pulp::view
 Hover-cursor tracking for platform window hosts.

Enumerations

enum class  pulp::view::BindingTarget : std::uint8_t { pulp::view::value , pulp::view::meter , pulp::view::scope , pulp::view::uniform }
 What a binding drives on its widget. More...
enum class  pulp::view::BindingOutcome : std::uint8_t {
  pulp::view::ok , pulp::view::deferred_widget_missing , pulp::view::replaced_prior_binding , pulp::view::empty_widget_id ,
  pulp::view::empty_param_name , pulp::view::null_widget , pulp::view::incompatible_widget , pulp::view::unknown_param ,
  pulp::view::unknown_value_channel , pulp::view::undeclared_uniform
}
 The outcome of one bindWidgetToParam / bindMeter call. More...

Functions

constexpr bool pulp::view::is_bound (BindingOutcome o) noexcept
 True for the three outcomes that produced a live binding.
const char * pulp::view::describe (BindingOutcome o) noexcept
 Human-readable reason, for diagnostics and test failure messages.

Detailed Description

Why a widget→parameter binding attempt did or did not take effect.

bindWidgetToParam and bindMeter answer with a bool, and generated UI scripts do not check it. Without a recorded reason, a rejected binding produces a control that renders correctly and does nothing — a defect only a person poking at the running plugin will find. These types let the bridge keep the reason so a diagnostic can name the dead control instead.