음악, 삶, 개발

valueTree 의 변화 캐치하기. (서로 공유하기) 본문

개발 공부/Juce 공부방

valueTree 의 변화 캐치하기. (서로 공유하기)

Lee_____ 2020. 9. 25. 05:57

설명

 

valueTree 는 내가 Max 에서 사용했던 dict 와 같은 것이다.

플러그인의 파라미터들 저장하고, 변경하고 

다른 클래스의 객체들과 송신하는것이다.

valueTree 에서 행해지는 변화는 juce::ValueTree::Listener 를 사용하여 notify 받는다.

중요한건, 반드시 tree.addListener(this) 를 constructor 로 호출해야한다.

이 valueTree 는 복사해도 실제로 복사되지않고, 하나인 global 로 존재한다고한다.

따라서 이 valueTree 를 다른 클래스의 객체로 넘길때 pass-by-value 해도 실제로 복사되지는않는다고한다.

아래와 같이 다른 class 가 valueTree 가 변화될때 캐치할수있도록 한다.

아래는 Component 클래스를 상속한 나의 GUI 가 될것이고, valueTree 에 따라 먼가를 그릴것이다.

그냥 외우자.

class Test : public Component, juce::ValueTree::Listener {

    public :

        Test(juce::ValueTree v) : tree(v) {
			
            	tree.addListener (this);

        }

        void valueTreePropertyChanged(juce::ValueTree& treeWhosePropertyHasChanged, const juce::Identifier& property) override {
                     
            // property 값이 변했을때 callback

        }

    private :

        juce::ValueTree tree;


}

Juce 튜토리얼 문서중..


참고자료

 

Tutorial: The ValueTree class