Changeset 3897 for trunk/jalv/src/state.c
- Timestamp:
- 2011-12-21 13:00:56 (17 months ago)
- File:
-
- 1 edited
-
trunk/jalv/src/state.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/jalv/src/state.c
r3896 r3897 183 183 } 184 184 185 void 186 jalv_save(Jalv* jalv, const char* dir) 187 { 188 char* const path = strjoin(dir, "/state.ttl"); 189 FILE* out_fd = fopen(path, "w"); 185 int 186 write_preset(Jalv* jalv, const char* path) 187 { 188 FILE* fd = fopen(path, "w"); 189 if (!fd) { 190 fprintf(stderr, "error: Failed to open %s (%s)\n", 191 path, strerror(errno)); 192 return 1; 193 } 190 194 191 195 SerdEnv* env = serd_env_new(NULL); … … 211 215 &SERD_URI_NULL, 212 216 file_sink, 213 out_fd);217 fd); 214 218 215 219 serd_env_foreach(env, (SerdPrefixSink)serd_writer_set_prefix, writer); … … 255 259 // Close state file and clean up Serd 256 260 serd_writer_free(writer); 257 fclose( out_fd);261 fclose(fd); 258 262 serd_env_free(env); 259 263 264 return 0; 265 } 266 267 void 268 jalv_save(Jalv* jalv, const char* dir) 269 { 270 char* const path = strjoin(dir, "/state.ttl"); 271 write_preset(jalv, path); 260 272 free(path); 261 273 } … … 552 564 553 565 static int 554 add_preset_to_manifest(SerdEnv* env, 555 const LilvPlugin* plugin, 566 add_preset_to_manifest(const LilvPlugin* plugin, 556 567 const char* manifest_path, 557 568 const char* preset_uri, … … 586 597 } 587 598 588 // Open preset file589 FILE* fd = fopen((char*)path, "w");590 if (!fd) {591 fprintf(stderr, "error: Failed to open %s (%s)\n",592 path, strerror(errno));593 ret = 3;594 goto done;595 }596 597 SerdURI base_uri;598 SerdNode base = serd_node_new_uri_from_string((const uint8_t*)uri,599 NULL, &base_uri);600 601 SerdEnv* env = serd_env_new(&base);602 serd_env_set_prefix_from_strings(env, USTR("lv2"), USTR(NS_LV2));603 serd_env_set_prefix_from_strings(env, USTR("pset"), USTR(NS_PSET));604 serd_env_set_prefix_from_strings(env, USTR("rdfs"), USTR(NS_RDFS));605 606 599 // Write preset file 607 608 SerdWriter* writer = serd_writer_new( 609 SERD_TURTLE, SERD_STYLE_ABBREVIATED|SERD_STYLE_CURIED, 610 env, &base_uri, 611 file_sink, 612 fd); 613 614 serd_env_foreach(env, (SerdPrefixSink)serd_writer_set_prefix, writer); 615 616 // <> a pset:Preset 617 SerdNode s = serd_node_from_string(SERD_URI, USTR("")); 618 SerdNode p = serd_node_from_string(SERD_URI, USTR(NS_RDF "type")); 619 SerdNode o = serd_node_from_string(SERD_CURIE, USTR("pset:Preset")); 620 serd_writer_write_statement(writer, 0, NULL, &s, &p, &o, NULL, NULL); 621 622 // <> rdfs:label label 623 p = serd_node_from_string(SERD_URI, USTR(NS_RDFS "label")); 624 o = serd_node_from_string(SERD_LITERAL, USTR(label)); 625 serd_writer_write_statement(writer, 0, 626 NULL, &s, &p, &o, NULL, NULL); 627 628 jalv_save_port_values(jalv, writer, &s); 629 630 serd_writer_free(writer); 631 serd_node_free(&base); 632 633 fclose(fd); 634 add_preset_to_manifest(env, jalv->plugin, 635 manifest_path, filename, filename); 636 637 serd_env_free(env); 600 write_preset(jalv, path); 601 602 // Add entry to manifest 603 add_preset_to_manifest(jalv->plugin, manifest_path, filename, filename); 638 604 639 605 done: … … 649 615 650 616 static int 651 add_preset_to_manifest(SerdEnv* env, 652 const LilvPlugin* plugin, 617 add_preset_to_manifest(const LilvPlugin* plugin, 653 618 const char* manifest_path, 654 619 const char* preset_uri, … … 662 627 } 663 628 629 SerdEnv* env = serd_env_new(NULL); 630 serd_env_set_prefix_from_strings(env, USTR("lv2"), USTR(NS_LV2)); 631 serd_env_set_prefix_from_strings(env, USTR("pset"), USTR(NS_PSET)); 632 serd_env_set_prefix_from_strings(env, USTR("rdfs"), USTR(NS_RDFS)); 633 664 634 #ifdef HAVE_LOCKF 665 635 lockf(fileno(fd), F_LOCK, 0); … … 709 679 fclose(fd); 710 680 free(manifest_uri); 681 serd_env_free(env); 711 682 712 683 return 0;
Note: See TracChangeset
for help on using the changeset viewer.
