Changeset 965a74a in ingen


Ignore:
Timestamp:
Oct 26, 2015, 9:29:11 AM (2 years ago)
Author:
David Robillard <d@…>
Branches:
groups, master, nodeless, parallel, parameters, sequencefix, tasks
Children:
1477371
Parents:
06eb959
Message:

Use URIDs almost everywhere

This fixes some issues where types are lost after saving and
re-loading many times.

git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5788 a436a847-0d15-0410-975c-d299462d15a1

Location:
src
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • src/AtomReader.cpp

    r06eb959 r965a74a  
    4545        if (in->type == _uris.atom_URID) {
    4646            const LV2_Atom_URID* urid = (const LV2_Atom_URID*)in;
    47             const char* uri           = _map.unmap_uri(urid->body);
     47            const char*          uri  = _map.unmap_uri(urid->body);
    4848            if (uri) {
    49                 out = _forge.alloc_uri(_map.unmap_uri(urid->body));
     49                out = _forge.make_urid(urid->body);
    5050            } else {
    5151                _log.error(fmt("Unable to unmap URID %1%\n") % urid->body);
     
    6262{
    6363    if (obj->body.otype) {
    64         props.insert(
    65             std::make_pair(_uris.rdf_type,
    66                            _forge.alloc_uri(_map.unmap_uri(obj->body.otype))));
     64        props.insert(std::make_pair(_uris.rdf_type,
     65                                    _forge.make_urid(obj->body.otype)));
    6766    }
    6867    LV2_ATOM_OBJECT_FOREACH(obj, p) {
  • src/Parser.cpp

    r06eb959 r965a74a  
    146146            const LV2_Atom* atom = (const LV2_Atom*)out.buf;
    147147            Atom            atomm;
    148             // FIXME: Don't bloat out all URIs
    149             if (atom->type == forge.URID) {
    150                 atomm = world->forge().alloc_uri(
    151                     unmap->unmap(unmap->handle,
    152                                  ((const LV2_Atom_URID*)atom)->body));
    153             } else {
    154                 atomm = world->forge().alloc(
    155                     atom->size, atom->type, LV2_ATOM_BODY_CONST(atom));
    156             }
     148            atomm = world->forge().alloc(
     149                atom->size, atom->type, LV2_ATOM_BODY_CONST(atom));
    157150            props.insert(make_pair(Raul::URI(i.get_predicate().to_string()),
    158151                                   Resource::Property(atomm, ctx)));
     
    344337            world, model, subject, Resource::Graph::DEFAULT);
    345338        props.insert(make_pair(uris.rdf_type,
    346                                uris.forge.alloc_uri(uris.ingen_Block)));
     339                               uris.forge.make_urid(uris.ingen_Block)));
    347340        target->put(Node::path_to_uri(path), props);
    348341    }
  • src/client/PluginModel.cpp

    r06eb959 r965a74a  
    126126            if (lilv_node_is_uri(val)) {
    127127                ret = set_property(
    128                     key, _uris.forge.alloc_uri(lilv_node_as_uri(val)));
     128                    key, _uris.forge.make_urid(Raul::URI(lilv_node_as_uri(val))));
    129129                break;
    130130            } else if (lilv_node_is_string(val)) {
  • src/gui/GraphCanvas.cpp

    r06eb959 r965a74a  
    757757
    758758    Resource::Properties props = get_initial_data();
    759     props.insert(make_pair(uris.rdf_type,
    760                            _app.forge().alloc_uri(type)));
     759    props.insert(make_pair(uris.rdf_type, _app.forge().make_urid(type)));
    761760    if (type == uris.atom_AtomPort) {
    762761        props.insert(make_pair(uris.atom_bufferType,
     
    797796                           Resource::Property(uris.ingen_Block)));
    798797    props.insert(make_pair(uris.lv2_prototype,
    799                            uris.forge.alloc_uri(plugin->uri())));
     798                           uris.forge.make_urid(plugin->uri())));
    800799    _app.interface()->put(Node::path_to_uri(path), props);
    801800}
  • src/gui/LoadPluginWindow.cpp

    r06eb959 r965a74a  
    397397                               Resource::Property(uris.ingen_Block)));
    398398        props.insert(make_pair(uris.lv2_prototype,
    399                                _app->forge().alloc_uri(plugin->uri())));
     399                               _app->forge().make_urid(plugin->uri())));
    400400        props.insert(make_pair(uris.ingen_polyphonic,
    401401                               _app->forge().make(polyphonic)));
  • src/gui/NodeMenu.cpp

    r06eb959 r965a74a  
    235235    _app->set_property(block()->uri(),
    236236                       _app->uris().pset_preset,
    237                        _app->forge().alloc_uri(uri));
     237                       _app->forge().make_urid(Raul::URI(uri)));
    238238}
    239239
  • src/gui/PropertiesWindow.cpp

    r06eb959 r965a74a  
    450450            return _app->forge().make(check->get_active());
    451451        }
    452     } else if (type == forge.URI) {
     452    } else if (type == forge.URI || type == forge.URID) {
    453453        URIEntry* uri_entry = dynamic_cast<URIEntry*>(value_widget);
    454454        if (uri_entry) {
    455             return _app->forge().alloc_uri(uri_entry->get_text());
    456         }
    457     } else if (type == forge.URID) {
    458         URIEntry* uri_entry = dynamic_cast<URIEntry*>(value_widget);
    459         if (uri_entry) {
    460             return _app->forge().make_urid(
    461                 _app->world()->uri_map().map_uri(uri_entry->get_text()));
     455            if (Raul::URI::is_valid(uri_entry->get_text())) {
     456                return _app->forge().make_urid(
     457                    _app->world()->uri_map().map_uri(uri_entry->get_text()));
     458            } else {
     459                _app->log().error(fmt("Invalid URI <%1%>\n\n")
     460                                  % uri_entry->get_text());
     461            }
    462462        }
    463463    } else if (type == forge.String) {
     
    466466            return _app->forge().alloc(entry->get_text());
    467467        }
    468     }
    469 
    470     URIEntry* uri_entry = dynamic_cast<URIEntry*>(value_widget);
    471     if (uri_entry) {
    472         return _app->forge().alloc_uri(uri_entry->get_text());
    473468    }
    474469
  • src/server/LV2Block.cpp

    r06eb959 r965a74a  
    397397                if (lilv_node_is_uri(val)) {
    398398                    port->add_property(Raul::URI(lilv_node_as_uri(preds[p])),
    399                                        forge.alloc_uri(lilv_node_as_uri(val)));
     399                                       forge.make_urid(Raul::URI(lilv_node_as_uri(val))));
    400400                }
    401401            }
  • src/server/PortImpl.cpp

    r06eb959 r965a74a  
    111111    remove_property(uris.rdf_type, uris.lv2_ControlPort);
    112112    remove_property(uris.rdf_type, uris.atom_AtomPort);
    113     add_property(uris.rdf_type,
    114                  world->forge().alloc_uri(port_type.uri().c_str()));
     113    add_property(uris.rdf_type, world->forge().make_urid(port_type.uri()));
    115114
    116115    // Update audio thread types
  • src/server/events/CreateBlock.cpp

    r06eb959 r965a74a  
    112112        _properties.erase(uris.lv2_prototype);
    113113        _properties.insert(std::make_pair(uris.lv2_prototype,
    114                                           uris.forge.alloc_uri(ancestor->plugin()->uri())));
     114                                          uris.forge.make_urid(ancestor->plugin()->uri())));
    115115    } else {
    116116        // Prototype is a plugin
  • src/server/internals/Controller.cpp

    r06eb959 r965a74a  
    5656    const Atom zero       = bufs.forge().make(0.0f);
    5757    const Atom one        = bufs.forge().make(1.0f);
    58     const Atom atom_Float = bufs.forge().alloc_uri(LV2_ATOM__Float);
     58    const Atom atom_Float = bufs.forge().make_urid(Raul::URI(LV2_ATOM__Float));
    5959
    6060    _midi_in_port = new InputPort(bufs, this, Raul::Symbol("input"), 0, 1,
Note: See TracChangeset for help on using the changeset viewer.