Ah, that did the trick... mostly.
Unfortunately, the knob updating seems to be a little lazy. However, this
may be a result of some bad order-of-operations on my part.
Currently I'm using a private bool pretty much directly as the feedback
knob's value. This bool is being set in _validate (skeleton code is included
below). The bool is used in request and engine to determine which input to
use, and that part of things seems to be working fine (which makes me think
it should be safe to use as the feedback value). However, the knob seems to
be failing to update fairly randomly. Sometimes it's one change behind, and
sometimes it just doesn't do anything.
----------------------------------------------------------------------------------
class HashSwitch : public NoIop, public ArrayKnobI::ValueProvider
{
bool m_useMeta;
int m_which;
public:
HashSwitch(Node* node) : NoIop(node
{
inputs(2);
m_useMeta = false;
m_which = 0;
}
void knobs(Knob_Callback f)
{
Knob* wch = Int_knob(f, &m_which, "which")
wch->set_flag(Knob::DO_NOT_WRITE);
if (f.makeKnobs())
{
dynamic_cast<ArrayKnobI*>(wch)->setValueProvider(this);
}
}
std::vector<double> provideValues(const ArrayKnobI*, const
OutputContext& oc) const
{
std::vector<double> values;
values.push_back(m_useMeta);
return values;
}
void _validate(bool for_real)
{
// Test metadata from one input against hash generated from other
input
// then do copy_info() on one input or the other and set m_useMeta
to true/false
// based on whether the hashes match.
// Is this bool unreliable as a feedback value?
}
}
----------------------------------------------------------------------------------
Any thoughts?
Thanks for your patience on this one,
-Nathan
-----Original Message-----
From: Abigail Brady
Sent: Thursday, June 16, 2011 2:25 AM
To: Nuke plug-in development discussion
Subject: Re: [Nuke-dev] Using knob as a feedback device
Oh, sorry, I think that's a new thing in 6.3. if f.makeKnobs()
dynamic_cast the Knob to ArrayKnobI and call setValueProvider() on that,
I believe is the actual answer.
_______________________________________________
Nuke-dev mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev