Changeset 16355 for trunk/psModules/src/camera/pmFPAfile.c
- Timestamp:
- Feb 7, 2008, 1:45:56 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/camera/pmFPAfile.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/camera/pmFPAfile.c
r16343 r16355 482 482 return ("NONE"); 483 483 } 484 485 486 psArray *pmFPAfileSelect(psMetadata *files, const char *name) 487 { 488 PS_ASSERT_PTR_NON_NULL(files, NULL); 489 490 psList *list = psListAlloc(NULL); // List of files selected 491 492 psString regex = NULL; // Regular expression 493 if (name) { 494 psStringAppend(®ex, "^%s$", name); 495 } 496 psMetadataIterator *iter = psMetadataIteratorAlloc(files, PS_LIST_HEAD, regex); // Iterator 497 psFree(regex); 498 psMetadataItem *item; // Item from iteration 499 while ((item = psMetadataGetAndIncrement(iter))) { 500 pmFPAfile *file = item->data.V; // File of iterest 501 psListAdd(list, PS_LIST_TAIL, file); 502 } 503 psFree(iter); 504 505 psArray *array = psListToArray(list); // Array generated from list 506 psFree(list); 507 508 return array; 509 } 510 511 pmFPAfile *pmFPAfileSelectSingle(psMetadata *files, const char *name, int num) 512 { 513 PS_ASSERT_PTR_NON_NULL(files, NULL); 514 PS_ASSERT_INT_NONNEGATIVE(num, NULL); 515 516 psString regex = NULL; // Regular expression 517 if (name) { 518 psStringAppend(®ex, "^%s$", name); 519 } 520 521 psMetadataIterator *iter = psMetadataIteratorAlloc(files, PS_LIST_HEAD, regex); // Iterator 522 psFree(regex); 523 psMetadataItem *item; // Item from iteration 524 int i = 0; // Counter 525 while ((item = psMetadataGetAndIncrement(iter))) { 526 if (i++ == num) { 527 return item->data.V; 528 } 529 } 530 psFree(iter); 531 532 psError(PS_ERR_BAD_PARAMETER_VALUE, true, "Unable to find instance %d of file %s", num, name); 533 return NULL; 534 }
Note:
See TracChangeset
for help on using the changeset viewer.
