# Lilv C API

This is the complete public C API of lilv.

- Nodes
- Collections
- World
- Plugins
- Ports
- Plugin State
- Scale Points
- Plugin Classes
- Plugin Instances
- Plugin UIs

typedef struct LilvPluginImpl LilvPlugin

  LV2 Plugin.

typedef struct LilvPluginClassImpl LilvPluginClass

  Plugin Class.

typedef struct LilvPortImpl LilvPort

  Port.

typedef struct LilvScalePointImpl LilvScalePoint

  Scale Point.

typedef struct LilvUIImpl LilvUI

  Plugin UI.

typedef struct LilvNodeImpl LilvNode

  Typed Value.

typedef struct LilvWorldImpl LilvWorld

  Lilv World.

typedef struct LilvInstanceImpl LilvInstance

  Plugin instance.

typedef struct LilvStateImpl LilvState

  Plugin state.

typedef void LilvIter

  Collection iterator.

typedef void LilvPluginClasses

  A set of `LilvPluginClass`.

typedef void LilvPlugins

  A set of `LilvPlugin`.

typedef void LilvScalePoints

  A set of `LilvScalePoint`.

typedef void LilvUIs

  A set of `LilvUI`.

typedef void LilvNodes

  A set of `LilvNode`.

void lilv_free(void *ptr)

  Free memory allocated by Lilv.

  This function exists because some systems require memory allocated by a library to be freed by code in the same library. It is otherwise equivalent to the standard C free() function.