/* === S Y N F I G ========================================================= */
/*! \file valuenode.h
-** \brief Template Header
+** \brief Header file for implementation of the "Placeholder" valuenode conversion.
**
** $Id$
**
# define DCAST_HACK_ENABLE()
#endif
+#define CHECK_TYPE_AND_SET_VALUE(variable, type) \
+ /* I don't think this ever happens - maybe remove this code? */ \
+ if (get_type() == ValueBase::TYPE_NIL) { \
+ warning("%s:%d get_type() IS nil sometimes!", \
+ __FILE__, __LINE__); \
+ return false; \
+ } \
+ if (get_type() != ValueBase::TYPE_NIL && \
+ !(ValueBase::same_type_as(value->get_type(), type)) && \
+ !PlaceholderValueNode::Handle::cast_dynamic(value)) { \
+ error(_("%s:%d wrong type for %s: need %s but got %s"), \
+ __FILE__, __LINE__, \
+ link_local_name(i).c_str(), \
+ ValueBase::type_local_name(type).c_str(), \
+ ValueBase::type_local_name(value->get_type()).c_str()); \
+ return false; \
+ } \
+ variable = value; \
+ signal_child_changed()(i); \
+ signal_value_changed()(); \
+ return true
+
/* === T Y P E D E F S ===================================================== */
/* === C L A S S E S & S T R U C T S ======================================= */
public:
//! Returns the value of the ValueNode at time \a t
- virtual ValueBase operator()(Time t)const
+ virtual ValueBase operator()(Time /*t*/)const
{ return ValueBase(); }
//! \internal Sets the id of the ValueNode
static Handle create(ValueBase::Type type=ValueBase::TYPE_NIL);
protected:
- virtual void get_times_vfunc(Node::time_set &set) const {}
+ virtual void get_times_vfunc(Node::time_set &/*set*/) const {}
}; // END of class PlaceholderValueNode