bool test_notification() { using namespace spatosc; Scene scene; scene.addTranslator("dummy", new DummyTranslator()); SoundSource *source = scene.createSoundSource("source"); if (DummyTranslator::string_updated || DummyTranslator::float_updated || DummyTranslator::int_updated) { std::cerr <<" should not have received a property update yet.\n"; return false; } // String property: source->setStringProperty("foo", "bar"); if (! DummyTranslator::string_updated) { std::cerr <<" should have received a string property update.\n"; return false; } std::string s_value(""); source->getStringProperty("foo", s_value); if (s_value != "bar") { std::cerr <<" string property has not been set.\n"; return false; } // Float property: source->setFloatProperty("bar", 3.14159); if (! DummyTranslator::float_updated) { std::cerr <<" should have received a float property update.\n"; return false; } double f_value(0.0); source->getFloatProperty("bar", f_value); if (f_value != 3.14159) { std::cerr <<" float property has not been set.\n"; return false; } // Int property: source->setIntProperty("egg", 2); if (! DummyTranslator::int_updated) { std::cerr <<" should have received an int property update.\n"; return false; } int i_value(0); source->getIntProperty("egg", i_value); if (i_value != 2) { std::cerr <<" int property has not been set.\n"; return false; } source->removeIntProperty("egg"); i_value = 0; source->getIntProperty("egg", i_value); if (i_value != 0) { std::cerr <<" int property has not been removed.\n"; return false; } return true; }