Version | 1.18.9 |
---|
Features for mapping URIs to and from integers.
See http://lv2plug.in/ns/ext/urid for details.
Data Structures | |
struct | LV2_URID_Map |
struct | LV2_URID_Unmap |
Macros | |
#define | LV2_URID_URI "http://lv2plug.in/ns/ext/urid" |
#define | LV2_URID_PREFIX LV2_URID_URI "#" |
#define | LV2_URID__map LV2_URID_PREFIX "map" |
#define | LV2_URID__unmap LV2_URID_PREFIX "unmap" |
#define | LV2_URID_MAP_URI LV2_URID__map |
#define | LV2_URID_UNMAP_URI LV2_URID__unmap |
Typedefs | |
typedef void * | LV2_URID_Map_Handle |
typedef void * | LV2_URID_Unmap_Handle |
typedef uint32_t | LV2_URID |
struct LV2_URID_Map |
URID Map Feature (LV2_URID__map)
Data Fields | |
LV2_URID_Map_Handle | handle |
LV2_URID(* | map )(LV2_URID_Map_Handle handle, const char *uri) |
LV2_URID_Map_Handle LV2_URID_Map::handle |
Opaque pointer to host data.
This MUST be passed to map_uri() whenever it is called. Otherwise, it must not be interpreted in any way.
LV2_URID(* LV2_URID_Map::map) (LV2_URID_Map_Handle handle, const char *uri) |
Get the numeric ID of a URI.
If the ID does not already exist, it will be created.
This function is referentially transparent; any number of calls with the same arguments is guaranteed to return the same value over the life of a plugin instance. Note, however, that several URIs MAY resolve to the same ID if the host considers those URIs equivalent.
This function is not necessarily very fast or RT-safe: plugins SHOULD cache any IDs they might need in performance critical situations.
The return value 0 is reserved and indicates that an ID for that URI could not be created for whatever reason. However, hosts SHOULD NOT return 0 from this function in non-exceptional circumstances (i.e. the URI map SHOULD be dynamic).
handle | Must be the callback_data member of this struct. |
uri | The URI to be mapped to an integer ID. |
struct LV2_URID_Unmap |
URI Unmap Feature (LV2_URID__unmap)
Data Fields | |
LV2_URID_Unmap_Handle | handle |
const char *(* | unmap )(LV2_URID_Unmap_Handle handle, LV2_URID urid) |
LV2_URID_Unmap_Handle LV2_URID_Unmap::handle |
Opaque pointer to host data.
This MUST be passed to unmap() whenever it is called. Otherwise, it must not be interpreted in any way.
const char *(* LV2_URID_Unmap::unmap) (LV2_URID_Unmap_Handle handle, LV2_URID urid) |
Get the URI for a previously mapped numeric ID.
Returns NULL if urid
is not yet mapped. Otherwise, the corresponding URI is returned in a canonical form. This MAY not be the exact same string that was originally passed to LV2_URID_Map::map(), but it MUST be an identical URI according to the URI syntax specification (RFC3986). A non-NULL return for a given urid
will always be the same for the life of the plugin. Plugins that intend to perform string comparison on unmapped URIs SHOULD first canonicalise URI strings with a call to map_uri() followed by a call to unmap_uri().
handle | Must be the callback_data member of this struct. |
urid | The ID to be mapped back to the URI string. |
#define LV2_URID_URI "http://lv2plug.in/ns/ext/urid" |
#define LV2_URID_PREFIX LV2_URID_URI "#" |
#define LV2_URID__map LV2_URID_PREFIX "map" |
#define LV2_URID__unmap LV2_URID_PREFIX "unmap" |
#define LV2_URID_MAP_URI LV2_URID__map |
Legacy.
#define LV2_URID_UNMAP_URI LV2_URID__unmap |
Legacy.
typedef void* LV2_URID_Map_Handle |
Opaque pointer to host data for LV2_URID_Map.
typedef void* LV2_URID_Unmap_Handle |
Opaque pointer to host data for LV2_URID_Unmap.
typedef uint32_t LV2_URID |
URI mapped to an integer.