From 793c9950d4e8fb77ff02e8228993234d319ca3b2 Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Tue, 30 Jun 2026 16:30:41 +0200 Subject: [PATCH] Invocation: evaluate ways to represent control parameters As a follow-up to the decisions regarding Render Job arguments, it should be noted that the `ProcessKey` in the `TurnoutSystem` becomes redundant; we'd need some access to ''generic Parameters'' rather --- src/lib/meta/fun-inline.hpp | 2 +- src/lib/par/parameter.cpp | 38 +++++++++++++++++++++ src/lib/par/parameter.hpp | 53 +++++++++++++++++++++++++++++ src/steam/mobject/interpolator.hpp | 2 ++ src/steam/mobject/parameter.cpp | 2 ++ src/steam/mobject/parameter.hpp | 2 ++ src/steam/mobject/paramprovider.cpp | 2 ++ src/steam/mobject/paramprovider.hpp | 2 ++ 8 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 src/lib/par/parameter.cpp create mode 100644 src/lib/par/parameter.hpp diff --git a/src/lib/meta/fun-inline.hpp b/src/lib/meta/fun-inline.hpp index bc3338c04..5b0f855be 100644 --- a/src/lib/meta/fun-inline.hpp +++ b/src/lib/meta/fun-inline.hpp @@ -114,7 +114,7 @@ namespace meta{ * In the typical usage situation, the delegate type \a FUNC is implemented * mostly with inline functions, and thus the bulk of the actual implementation * code will be emitted into this static delegation function. The template - * \ref InvokerBuilder provides the blueprint for this code generation. + * \ref FunInline::activate() provides the blueprint for this code generation. */ template struct Invoker diff --git a/src/lib/par/parameter.cpp b/src/lib/par/parameter.cpp new file mode 100644 index 000000000..db1636bac --- /dev/null +++ b/src/lib/par/parameter.cpp @@ -0,0 +1,38 @@ +/* + Parameter - representation of an automatable effect/plugin parameter + + Copyright (C) + 2008, Hermann Vosseler + +  **Lumiera** is free software; you can redistribute it and/or modify it +  under the terms of the GNU General Public License as published by the +  Free Software Foundation; either version 2 of the License, or (at your +  option) any later version. See the file COPYING for further details. + +* *****************************************************************/ + + +/** @file parameter.cpp + ** Implementation functions of the Parameter abstraction. + ** + ** @todo as of 2016, we still need to work out our parameter/automation concept. + */ + + +#include "lib/error.hpp" +#include "lib/par/parameter.hpp" + +namespace steam { +namespace mobject { + + + template + VAL + Parameter::getValue () + { + UNIMPLEMENTED ("Any idea how to handle various kinds of parameter types"); + } + + + +}} // namespace mobject diff --git a/src/lib/par/parameter.hpp b/src/lib/par/parameter.hpp new file mode 100644 index 000000000..0b0462ae4 --- /dev/null +++ b/src/lib/par/parameter.hpp @@ -0,0 +1,53 @@ +/* + PARAMETER.hpp - representation of an automatable effect/plugin parameter + + Copyright (C) + 2008, Hermann Vosseler + +  **Lumiera** is free software; you can redistribute it and/or modify it +  under the terms of the GNU General Public License as published by the +  Free Software Foundation; either version 2 of the License, or (at your +  option) any later version. See the file COPYING for further details. + +*/ + + +/** @file parameter.hpp + ** Core abstraction: parameter to be controlled and possibly automated. + ** + ** @todo as of 2016, we still need to work out our parameter/automation concept. + */ + + +#ifndef LIB_PAR_PARAMETER_H +#define LIB_PAR_PARAMETER_H + + + + +namespace steam { +namespace mobject { + + template class ParamProvider; + + + /** + * Descriptor and access object for a plugin parameter. + * Parameters may be provided with values from the session, + * and this values may be automated. + */ + template + class Parameter + { + public: + VAL getValue () ; + + protected: + ParamProvider* provider; + + }; + + + +}} // namespace steam::mobject +#endif /*LIB_PAR_PARAMETER_H*/ diff --git a/src/steam/mobject/interpolator.hpp b/src/steam/mobject/interpolator.hpp index 93c2db5a5..b346304fd 100644 --- a/src/steam/mobject/interpolator.hpp +++ b/src/steam/mobject/interpolator.hpp @@ -16,6 +16,8 @@ ** Core abstraction: automation parameter interpolator. ** Each interpolator implementation has the ability to resolve intermediary ** values and to provide a parameter value for _every arbitrary point in time_. + ** @deprecated 2026 the basic idea is valid — yet the final design will certainly be different; + ** the only usage of this code is Fixture::getAutomation() ⟼ `Auto*` */ diff --git a/src/steam/mobject/parameter.cpp b/src/steam/mobject/parameter.cpp index e8bcc8cc0..4426cef4e 100644 --- a/src/steam/mobject/parameter.cpp +++ b/src/steam/mobject/parameter.cpp @@ -16,6 +16,8 @@ ** Implementation functions of the Parameter abstraction. ** ** @todo as of 2016, we still need to work out our parameter/automation concept. + ** @deprecated 2026 the basic idea is valid — yet the final design will certainly be different; + ** the only usage of this code is Fixture::getAutomation() ⟼ `Auto*` */ diff --git a/src/steam/mobject/parameter.hpp b/src/steam/mobject/parameter.hpp index 28b70129d..071a293a7 100644 --- a/src/steam/mobject/parameter.hpp +++ b/src/steam/mobject/parameter.hpp @@ -16,6 +16,8 @@ ** Core abstraction: parameter to be controlled and possibly automated. ** ** @todo as of 2016, we still need to work out our parameter/automation concept. + ** @deprecated 2026 the basic idea is valid — yet the final design will certainly be different; + ** the only usage of this code is Fixture::getAutomation() ⟼ `Auto*` */ diff --git a/src/steam/mobject/paramprovider.cpp b/src/steam/mobject/paramprovider.cpp index 660d801b7..689e2cd7c 100644 --- a/src/steam/mobject/paramprovider.cpp +++ b/src/steam/mobject/paramprovider.cpp @@ -16,6 +16,8 @@ ** Implementation functions of the Parameter abstraction. ** ** @todo as of 2016, we still need to work out our parameter/automation concept. + ** @deprecated 2026 the basic idea is valid — yet the final design will certainly be different; + ** the only usage of this code is Fixture::getAutomation() ⟼ `Auto*` */ diff --git a/src/steam/mobject/paramprovider.hpp b/src/steam/mobject/paramprovider.hpp index 50cfcf64d..f07a1da79 100644 --- a/src/steam/mobject/paramprovider.hpp +++ b/src/steam/mobject/paramprovider.hpp @@ -16,6 +16,8 @@ ** Core abstraction: an entity to expose a single parameter ** ** @todo as of 2016, we still need to work out our parameter/automation concept. + ** @deprecated 2026 the basic idea is valid — yet the final design will certainly be different; + ** the only usage of this code is Fixture::getAutomation() ⟼ `Auto*` */