// Needed to support the use of multiple parameters void FullConnectivity::SetRandomWeights(float minVal, vector<float> maxVal,Network* net) { m_setRandomWeights = true; m_weightsMinVal = minVal; m_weightsMaxVal = maxVal[0]; m_weightsMaxValParams = maxVal; this->network(net); AddParameters(); }
inline bool AddParameters(const BMessage& message, driver_parameter *to) { if(!to) return false; return AddParameters(message, reinterpret_cast<driver_settings*>(&to->parameter_count)); }
driver_settings* MessageToDriverSettings(const BMessage& message) { driver_settings *settings = new_driver_settings(); if(!AddParameters(message, settings)) { free_driver_settings(settings); return NULL; } return settings; }
static bool AddParameters(const BMessage& message, driver_settings *to) { const char *name; BMessage current; driver_parameter *parameter; for(int32 index = 0; message.FindMessage(MDSU_PARAMETERS, index, ¤t) == B_OK; index++) { name = current.FindString(MDSU_NAME); parameter = new_driver_parameter(name); if(!AddValues(current, parameter)) return false; AddParameters(current, parameter); add_driver_parameter(parameter, to); } return true; }