Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion libs/openFrameworks/types/ofParameter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -170,8 +170,12 @@ void ofParameter<void>::setSerializable(bool serializable) {
obj->serializable = serializable;
}

std::shared_ptr<ofAbstractParameter> ofParameter<void>::getSharedPtr() const {
return std::make_shared<ofParameter<void>>(*this);
}

std::shared_ptr<ofAbstractParameter> ofParameter<void>::newReference() const {
return std::make_shared<ofParameter<void>>(*this);
return getSharedPtr();
}

void ofParameter<void>::setParent(ofParameterGroup & parent) {
Expand Down
24 changes: 24 additions & 0 deletions libs/openFrameworks/types/ofParameter.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,10 @@ class ofAbstractParameter {

virtual bool isSerializable() const = 0;
virtual bool isReadOnly() const = 0;

[[deprecated("use getSharedPtr")]]
virtual std::shared_ptr<ofAbstractParameter> newReference() const = 0;
virtual std::shared_ptr<ofAbstractParameter> getSharedPtr() const = 0;

virtual bool isReferenceTo(const ofAbstractParameter & other) const;

Expand Down Expand Up @@ -253,7 +256,10 @@ class ofParameterGroup : public ofAbstractParameter {
void setSerializable(bool serializable);
bool isSerializable() const;
bool isReadOnly() const;

[[deprecated("use getSharedPtr")]]
std::shared_ptr<ofAbstractParameter> newReference() const;
std::shared_ptr<ofAbstractParameter> getSharedPtr() const;

void setParent(ofParameterGroup & parent);

Expand Down Expand Up @@ -633,7 +639,10 @@ class ofParameter : public ofAbstractParameter {
bool isInit() const;

void setSerializable(bool serializable);

[[deprecated("use getSharedPtr")]]
std::shared_ptr<ofAbstractParameter> newReference() const;
std::shared_ptr<ofAbstractParameter> getSharedPtr() const;

void setParent(ofParameterGroup & _parent);

Expand Down Expand Up @@ -1047,6 +1056,11 @@ void ofParameter<ParameterType>::makeReferenceTo(ofParameter<ParameterType> & mo

template <typename ParameterType>
std::shared_ptr<ofAbstractParameter> ofParameter<ParameterType>::newReference() const {
return getSharedPtr();
}

template <typename ParameterType>
std::shared_ptr<ofAbstractParameter> ofParameter<ParameterType>::getSharedPtr() const {
return std::make_shared<ofParameter<ParameterType>>(*this);
}

Expand Down Expand Up @@ -1114,7 +1128,10 @@ class ofParameter<void> : public ofAbstractParameter {
void makeReferenceTo(ofParameter<void> & mom);

void setSerializable(bool serializable);

[[deprecated("use getSharedPtr")]]
std::shared_ptr<ofAbstractParameter> newReference() const;
std::shared_ptr<ofAbstractParameter> getSharedPtr() const;

void setParent(ofParameterGroup & _parent);

Expand Down Expand Up @@ -1189,7 +1206,9 @@ class ofReadOnlyParameter : public ofAbstractParameter {
template <class ListenerClass, typename ListenerMethod>
void removeListener(ListenerClass * listener, ListenerMethod method, int prio = OF_EVENT_ORDER_AFTER_APP);

[[deprecated("use getSharedPtr")]]
std::shared_ptr<ofAbstractParameter> newReference() const;
std::shared_ptr<ofAbstractParameter> getSharedPtr() const;

template <typename... Args>
std::unique_ptr<of::priv::AbstractEventToken> newListener(Args... args);
Expand Down Expand Up @@ -1550,6 +1569,11 @@ inline void ofReadOnlyParameter<ParameterType, Friend>::fromString(const std::st

template <typename ParameterType, typename Friend>
std::shared_ptr<ofAbstractParameter> ofReadOnlyParameter<ParameterType, Friend>::newReference() const {
return getSharedPtr();
}

template <typename ParameterType, typename Friend>
std::shared_ptr<ofAbstractParameter> ofReadOnlyParameter<ParameterType, Friend>::getSharedPtr() const {
return std::make_shared<ofReadOnlyParameter<ParameterType, Friend>>(*this);
}

Expand Down
7 changes: 6 additions & 1 deletion libs/openFrameworks/types/ofParameterGroup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ ofParameterGroup::ofParameterGroup()
: obj(new Value) {
}


void ofParameterGroup::add(ofAbstractParameter & parameter) {
auto param = parameter.newReference();
auto escaped_name = param->getEscapedName();
Expand Down Expand Up @@ -479,7 +480,11 @@ const void * ofParameterGroup::getInternalObject() const {
return obj.get();
}

std::shared_ptr<ofAbstractParameter> ofParameterGroup::newReference() const {
std::shared_ptr<ofAbstractParameter> ofParameterGroup::newReference() const{
return getSharedPtr();
}

std::shared_ptr<ofAbstractParameter> ofParameterGroup::getSharedPtr() const{
return std::make_shared<ofParameterGroup>(*this);
}

Expand Down