Changeset 965a74a in ingen


Ignore:
Timestamp:
10/26/15 09:29:11 (22 months ago)
Author:
David Robillard <d@…>
Branches:
master, groups, nodeless, parallel, parameters, sequencefix
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

    ra742608 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

    r1a33b80 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

    rcec7f9f 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

    rae84d83 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

    rdd79e76 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

    r67dea1f 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

    r3353177 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

    r3b22d3c 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

    r70fe348 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

    r1a33b80 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

    r732bfb33 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.