aboutsummaryrefslogtreecommitdiffstats
path: root/src/state.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-01-28 01:37:28 +0000
committerDavid Robillard <d@drobilla.net>2012-01-28 01:37:28 +0000
commitb9cc210282c3f1409c2b5050da0decc803fd6a17 (patch)
tree4666f0e3f14c91c74527e13734bbd242c64a43da /src/state.c
parentb7c99b01f08a2a293300ea699fd639e9b49800ed (diff)
downloadjalv-b9cc210282c3f1409c2b5050da0decc803fd6a17.tar.gz
jalv-b9cc210282c3f1409c2b5050da0decc803fd6a17.tar.bz2
jalv-b9cc210282c3f1409c2b5050da0decc803fd6a17.zip
Update state interface to support multiple state snapshots with shared files.
git-svn-id: http://svn.drobilla.net/lad/trunk/jalv@3967 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/state.c')
-rw-r--r--src/state.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/state.c b/src/state.c
index 0d3953b..00c86a0 100644
--- a/src/state.c
+++ b/src/state.c
@@ -79,7 +79,8 @@ jalv_save(Jalv* jalv, const char* dir)
jalv->save_dir = jalv_strjoin(dir, "/");
LilvState* const state = lilv_state_new_from_instance(
- jalv->plugin, jalv->instance, &jalv->map, jalv->temp_dir,
+ jalv->plugin, jalv->instance, &jalv->map,
+ jalv->temp_dir, dir, dir, dir,
get_port_value, jalv,
LV2_STATE_IS_POD|LV2_STATE_IS_PORTABLE, NULL);
@@ -181,16 +182,20 @@ jalv_apply_preset(Jalv* jalv, const LilvNode* preset)
}
int
-jalv_save_preset(Jalv* jalv, const char* label)
+jalv_save_preset(Jalv* jalv, const char* dir, const char* uri, const char* label)
{
LilvState* const state = lilv_state_new_from_instance(
- jalv->plugin, jalv->instance, &jalv->map, jalv->temp_dir,
+ jalv->plugin, jalv->instance, &jalv->map,
+ jalv->temp_dir, dir, dir, dir,
get_port_value, jalv,
LV2_STATE_IS_POD|LV2_STATE_IS_PORTABLE, NULL);
- lilv_state_set_label(state, label);
+ if (label) {
+ lilv_state_set_label(state, label);
+ }
+
int ret = lilv_state_save(jalv->world, &jalv->unmap, state,
- NULL, NULL, NULL, NULL);
+ uri, dir, "state.ttl", NULL);
lilv_state_free(state);
return ret;