示例#1
0
void BaseLibrary::load(NodeFactory &factory, const char * /*prefix*/) const
{
    using utils::concatenate;

    static const char * const prefix = "base.";
    factory.registerTypeT<BoolToIntNode>(concatenate(prefix, "convert.booltoint").c_str());
    factory.registerTypeT<GraphEditorNode>(concatenate(prefix, "edit.grapheditor").c_str());
    factory.registerTypeT<PrintNode>(concatenate(prefix, "flow.print").c_str());
    factory.registerTypeT<AppendNode>(concatenate(prefix, "flow.append").c_str());
    factory.registerTypeT<NopNode>(concatenate(prefix, "flow.nop").c_str());
    factory.registerTypeT<PackNode>(concatenate(prefix, "flow.pack").c_str());
    factory.registerTypeT<MetroNode>(concatenate(prefix, "time.metro").c_str());
    factory.registerTypeT<ClockNode>(concatenate(prefix, "time.clock").c_str());
    factory.registerTypeT<DateNode>(concatenate(prefix, "time.date").c_str());
    factory.registerTypeT<CronNode>(concatenate(prefix, "time.cron").c_str());
    factory.registerTypeT<TimerNode>(concatenate(prefix, "time.timer").c_str());
    factory.registerTypeT<AnyNode>(concatenate(prefix, "flow.any").c_str());
    factory.registerTypeT<CounterNode>(concatenate(prefix, "flow.counter").c_str());
    factory.registerTypeT<DemuxNode>(concatenate(prefix, "flow.demux").c_str());
    factory.registerTypeT<DelayNode>(concatenate(prefix, "time.delay").c_str());
    factory.registerTypeT<DictNode>(concatenate(prefix, "data.dict").c_str());
    //factory.registerTypeT<AppSinkNode>(concatenate("base.", "data.appsink").c_str());
    factory.registerTypeT<SpigotNode>(concatenate(prefix, "flow.spigot").c_str());
    factory.registerTypeT<PrependNode>(concatenate(prefix, "flow.prepend").c_str());
    factory.registerTypeT<RouteNode>(concatenate(prefix, "flow.route").c_str());
    factory.registerTypeT<SpeedLimNode>(concatenate(prefix, "flow.speedlim").c_str());
    factory.registerTypeT<SplitNode>(concatenate(prefix, "flow.split").c_str());
    factory.registerTypeT<TriggerNode>(concatenate(prefix, "flow.trigger").c_str());
    factory.registerTypeT<TypeNode>(concatenate(prefix, "flow.type").c_str());
    factory.registerTypeT<UnpackNode>(concatenate(prefix, "flow.unpack").c_str());
    factory.registerTypeT<LineNode>(concatenate(prefix, "flow.line").c_str());
    factory.registerTypeT<LoadMessNode>(concatenate(prefix, "flow.loadmess").c_str());
    factory.registerTypeT<LoggerNode>(concatenate(prefix, "flow.logger").c_str());
    factory.registerTypeT<CastNode>(concatenate(prefix, "flow.cast").c_str());
    factory.registerTypeT<ChangeNode>(concatenate(prefix, "flow.change").c_str());

    factory.registerTypeT<PickIndicesNode>(concatenate(prefix, "list.pick_indices").c_str());
    factory.registerTypeT<SendNode>(concatenate(prefix, "flow.send").c_str());
    factory.registerTypeT<ReceiveNode>(ReceiveNode::NODE_TYPE_NAME); // We have to do this.

#ifdef HAVE_SPATOSC
    factory.registerTypeT<SpatoscNode>(concatenate(prefix, "osc.spatosc").c_str());
    factory.registerTypeT<Angle3dNode>(concatenate(prefix, "3d.angle").c_str());
#endif // HAVE_SPATOSC

#ifdef HAVE_V8
    factory.registerTypeT<JsExprNode>(concatenate(prefix, "math.jsexpr").c_str());
#endif // HAVE_V8
#ifdef HAVE_LUA
    factory.registerTypeT<LuaExprNode>(concatenate(prefix, "math.luaexpr").c_str());
#endif // HAVE_LUA

    factory.registerTypeT<AddNode>(concatenate(prefix, "math.+").c_str());
    factory.registerTypeT<CosNode>(concatenate(prefix, "math.cos").c_str());
    factory.registerTypeT<SinNode>(concatenate(prefix, "math.sin").c_str());
    factory.registerTypeT<RoundNode>(concatenate(prefix, "math.round").c_str());
    factory.registerTypeT<DivNode>(concatenate(prefix, "math./").c_str());
    factory.registerTypeT<EqualsNotNode>(concatenate(prefix, "math.!=").c_str());
    factory.registerTypeT<IsEqualNode>(concatenate(prefix, "math.==").c_str());
    factory.registerTypeT<IsGreaterNode>(concatenate(prefix, "math.>").c_str());
    factory.registerTypeT<IsGreaterOrEqualNode>(concatenate(prefix, "math.>=").c_str());
    factory.registerTypeT<IsLessNode>(concatenate(prefix, "math.<").c_str());
    factory.registerTypeT<IsLessOrEqualNode>(concatenate(prefix, "math.<=").c_str());
    factory.registerTypeT<SubtractNode>(concatenate(prefix, "math.-").c_str());
    factory.registerTypeT<MapNode>(concatenate(prefix, "math.map").c_str());
    factory.registerTypeT<MultNode>(concatenate(prefix, "math.*").c_str());
    factory.registerTypeT<ModuloNode>(concatenate(prefix, "math.%").c_str());
    factory.registerTypeT<DegToRadNode>(concatenate(prefix, "math.deg2rad").c_str());

#ifdef HAVE_CLUTTER
    factory.registerTypeT<TempiClutterStageNode>(concatenate(prefix, "clutter.stage").c_str());
#endif // HAVE_CLUTTER

// TODO: #ifdef HAVE_STK
    factory.registerTypeT<ControlBuilderNode>(concatenate(prefix, "midi.build.control").c_str());
    factory.registerTypeT<NoteBuilderNode>(concatenate(prefix, "midi.build.note").c_str());
    factory.registerTypeT<MidiReceiverNode>(concatenate(prefix, "midi.input").c_str());
    factory.registerTypeT<MidiSenderNode>(concatenate(prefix, "midi.output").c_str());
    factory.registerTypeT<MidiRouteNode>(concatenate(prefix, "midi.route").c_str());
    factory.registerTypeT<ProgramChangeBuilderNode>(concatenate(prefix, "midi.build.program").c_str());
// TODO: #endif // HAVE_STK

    factory.registerTypeT<NearestNoteNode>(concatenate(prefix, "music.nearest.note").c_str());
    factory.registerTypeT<MonodicNode>(concatenate(prefix, "music.monodic").c_str());

#ifdef HAVE_GLIB
    factory.registerTypeT<ShellNode>(concatenate(prefix, "os.shell").c_str());
#endif // HAVE_GLIB

// TODO #ifdef HAVE_LIBLO
    factory.registerTypeT<OscReceiverNode>(concatenate(prefix, "osc.receive").c_str());
    factory.registerTypeT<OscSenderNode>(concatenate(prefix, "osc.send").c_str());
// TODO #endif // HAVE_LIBLO
    factory.registerTypeT<OscPrependNode>(concatenate(prefix, "osc.prepend").c_str());
    factory.registerTypeT<OscRouteNode>(concatenate(prefix, "osc.route").c_str());

    factory.registerTypeT<SamplerSampleNode>(concatenate(prefix, "sampler.sample").c_str());
    factory.registerTypeT<SamplerNode>(concatenate(prefix, "sampler.simple").c_str());
    factory.registerTypeT<SamplerReadNode>(concatenate(prefix, "sampler.read").c_str());
    factory.registerTypeT<SamplerWriteNode>(concatenate(prefix, "sampler.write").c_str());

    factory.registerTypeT<StringCharactersNode>(concatenate(prefix,"string.characters").c_str());
    factory.registerTypeT<StringJoinNode>(concatenate(prefix,"string.join").c_str());
    factory.registerTypeT<StringSplitNode>(concatenate(prefix,"string.split").c_str());

#ifdef HAVE_GLIB
    factory.registerTypeT<RandomDrunkNode>(concatenate(prefix, "random.drunk").c_str());
    factory.registerTypeT<RandomIntNode>(concatenate(prefix, "random.int").c_str());
#endif // HAVE_GLIB

    factory.registerTypeT<AbstractionNode>(concatenate(prefix, "abs.abstraction").c_str());
    factory.registerTypeT<OutletNode>(concatenate(prefix, "abs.outlet").c_str());
    factory.registerTypeT<InletNode>(concatenate(prefix, "abs.inlet").c_str());

#ifdef HAVE_LIBMAPPER
    factory.registerTypeT<MapperInputNode>(concatenate(prefix, "osc.libmapper.input").c_str());
#endif // HAVE_LIBMAPPER

    factory.registerTypeT<SerialDeviceNode>(concatenate(prefix, "serial.device").c_str());
    factory.registerTypeT<ToDmxUsbProNode>(concatenate(prefix, "serial.todmxusbpro").c_str());
    factory.registerTypeT<BytesToBlobNode>(concatenate(prefix, "serial.bytestoblob").c_str());
    factory.registerTypeT<BlobToBytesNode>(concatenate(prefix, "serial.blobtobytes").c_str());
}