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
This commit is contained in:
Fischlurch 2026-06-30 16:30:41 +02:00
parent ce2c3d2c06
commit 793c9950d4
8 changed files with 102 additions and 1 deletions

View file

@ -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<FUNC>() provides the blueprint for this code generation.
*/
template<class FUN>
struct Invoker

38
src/lib/par/parameter.cpp Normal file
View file

@ -0,0 +1,38 @@
/*
Parameter - representation of an automatable effect/plugin parameter
Copyright (C)
2008, Hermann Vosseler <Ichthyostega@web.de>
  **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<class VAL>
VAL
Parameter<VAL>::getValue ()
{
UNIMPLEMENTED ("Any idea how to handle various kinds of parameter types");
}
}} // namespace mobject

53
src/lib/par/parameter.hpp Normal file
View file

@ -0,0 +1,53 @@
/*
PARAMETER.hpp - representation of an automatable effect/plugin parameter
Copyright (C)
2008, Hermann Vosseler <Ichthyostega@web.de>
  **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 VAL> 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 VAL>
class Parameter
{
public:
VAL getValue () ;
protected:
ParamProvider<VAL>* provider;
};
}} // namespace steam::mobject
#endif /*LIB_PAR_PARAMETER_H*/

View file

@ -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<double>*`
*/

View file

@ -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<double>*`
*/

View file

@ -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<double>*`
*/

View file

@ -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<double>*`
*/

View file

@ -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<double>*`
*/