Changeset 1126:a7e44a92590f in roaraudio
- Timestamp:
- 01/17/09 02:15:34 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roarclients/roarctl.c
r1123 r1126 343 343 } 344 344 345 int load_meta (struct roar_connection * con, int id, char * file) { 346 struct roar_meta meta; 347 struct roar_stream s; 348 int mode_i = ROAR_META_MODE_SET; 349 FILE * in; 350 char lion[1024]; 351 char * v; 352 353 memset(&s, 0, sizeof(s)); 354 355 s.id = id; 356 357 if ( (in = fopen(file, "r")) == NULL ) 358 return -1; 359 360 while (fgets(lion, 1024, in) != NULL) { 361 if ( (v = strtok(lion, "\r\n")) != NULL ) 362 if ( (v = strtok(NULL, "\r\n")) != NULL ) 363 *(v-1) = 0; 364 365 if ( (v = strstr(lion, "=")) == NULL ) { 366 fprintf(stderr, "Error: can not parse meta data lion: %s\n", lion); 367 continue; 368 } 369 370 *v++ = 0; 371 372 meta.type = roar_meta_inttype(lion); 373 meta.value = v; 374 meta.key[0] = 0; 375 376 if ( meta.type == -1 ) { 377 fprintf(stderr, "Error: unknown type: %s\n", lion); 378 continue; 379 } 380 381 if ( roar_stream_meta_set(con, &s, mode_i, &meta) == -1 ) 382 return -1; 383 } 384 385 fclose(in); 386 387 meta.type = ROAR_META_TYPE_NONE; 388 meta.value = NULL; 389 390 return roar_stream_meta_set(con, &s, ROAR_META_MODE_FINALIZE, &meta); 391 } 392 345 393 int show_meta_type (struct roar_connection * con, int id, char * type) { 346 394 struct roar_meta meta; … … 379 427 for (i = 0; i < len; i++) 380 428 show_meta_type(con, id, roar_meta_strtype(types[i])); 429 430 return 0; 431 } 432 433 int save_meta (struct roar_connection * con, int id, char * file) { 434 struct roar_stream s; 435 struct roar_meta meta; 436 int types[ROAR_META_MAX_PER_STREAM]; 437 int i; 438 int len; 439 FILE * out; 440 441 memset(&s, 0, sizeof(s)); 442 443 s.id = id; 444 445 if ( (out = fopen(file, "w")) == NULL ) 446 return -1; 447 448 if ( (len = roar_stream_meta_list(con, &s, types, ROAR_META_MAX_PER_STREAM)) == -1 ) 449 return -1; 450 451 for (i = 0; i < len; i++) { 452 /* 453 show_meta_type(con, id, roar_meta_strtype(types[i])); 454 */ 455 meta.type = types[i]; 456 457 if ( roar_stream_meta_get(con, &s, &meta) == -1 ) 458 continue; 459 460 // printf("Meta %-17s: %s\n", roar_meta_strtype(meta.type), meta.value); 461 462 fprintf(out, "%s=%s\n", roar_meta_strtype(meta.type), meta.value); 463 464 roar_meta_free(&meta); 465 } 466 467 fclose(out); 381 468 382 469 return 0; … … 575 662 } 576 663 i++; 664 } else if ( !strcmp(k, "metasave") ) { 665 i++; 666 if ( save_meta(&con, atoi(argv[i]), argv[i+1]) == -1 ) { 667 fprintf(stderr, "Error: can not get meta data\n"); 668 } else { 669 printf("meta data saved\n"); 670 } 671 i++; 672 } else if ( !strcmp(k, "metaload") ) { 673 i++; 674 if ( load_meta(&con, atoi(argv[i]), argv[i+1]) == -1 ) { 675 fprintf(stderr, "Error: can not set meta data\n"); 676 } else { 677 printf("meta data saved\n"); 678 } 679 i++; 577 680 578 681 } else {
Note: See TracChangeset
for help on using the changeset viewer.