IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 10, 2008, 2:04:47 PM (17 years ago)
Author:
eugene
Message:

pmConfigCameraFrmatFromHeader returns camera name as well as format name

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/config/pmConfig.c

    r20552 r20639  
    10811081// camera.  If we are discovering the camera (config->camera == NULL), then we also load the
    10821082// recipe files for the camera.
    1083 psMetadata *pmConfigCameraFormatFromHeader(psMetadata **camera, psString *formatName, pmConfig *config,
    1084                                           const psMetadata *header, bool readRecipes)
     1083psMetadata *pmConfigCameraFormatFromHeader(psMetadata **camera, psString *cameraName, psString *formatName,
     1084                                           pmConfig *config, const psMetadata *header, bool readRecipes)
    10851085{
    10861086    PS_ASSERT_PTR_NON_NULL(config, NULL);
     
    10891089    bool status = false;                // error status
    10901090    psMetadata *format = NULL;          // The winning format
    1091     psString name = NULL;               // Name of the winning format
     1091    psString testFormatName = NULL;         // Name of the winning format
    10921092
    10931093    // If we don't know what sort of camera we have, we try all that we know
     
    11181118            assert(camerasItem->type == PS_DATA_METADATA); // It should be because we've read it in or deleted
    11191119            psMetadata *testCamera = camerasItem->data.md; // Camera to test against what we've got:
    1120             if (formatFromHeader(&status, &format, &name, testCamera, header, camerasItem->name)) {
     1120            if (formatFromHeader(&status, &format, &testFormatName, testCamera, header, camerasItem->name)) {
    11211121                config->camera = psMemIncrRefCounter(testCamera);
    11221122                config->cameraName = psStringCopy(camerasItem->name);
    1123                 config->formatName = name;
     1123                config->formatName = testFormatName;
    11241124                config->format = format;
    11251125                if (camera) {
     
    11271127                }
    11281128                if (formatName) {
    1129                     *formatName = psMemIncrRefCounter(name);    // view on value saved on config
     1129                    *formatName = psMemIncrRefCounter(testFormatName);    // view on value saved on config
     1130                }
     1131                if (cameraName) {
     1132                    *cameraName = psMemIncrRefCounter(config->cameraName);    // view on value saved on config
    11301133                }
    11311134            } else {
     
    11661169
    11671170    psMetadata *testCamera = NULL;
    1168     char *testName = NULL;
     1171    char *testCameraName = NULL;
    11691172
    11701173    psMetadata *cameras = psMetadataLookupMetadata (NULL, config->system, "CAMERAS");
     
    11731176    // try the FPA metaCamera
    11741177    if (!found) {
    1175         testName = NULL;
    1176         psStringAppend (&testName, "_%s-FPA", baseName);
    1177 
    1178         testCamera = psMetadataLookupMetadata (NULL, cameras, testName);
    1179         psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testName);
     1178        testCameraName = NULL;
     1179        psStringAppend (&testCameraName, "_%s-FPA", baseName);
     1180
     1181        testCamera = psMetadataLookupMetadata (NULL, cameras, testCameraName);
     1182        psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testCameraName);
    11801183
    11811184        bool status;
    1182         found = formatFromHeader(&status, &format, &name, testCamera, header, testName);
    1183         if (!found) psFree (testName);
     1185        found = formatFromHeader(&status, &format, &testFormatName, testCamera, header, testCameraName);
     1186        if (!found) psFree (testCameraName);
    11841187    }
    11851188
    11861189    // try the CHIP metaCamera
    11871190    if (!found) {
    1188         testName = NULL;
    1189         psStringAppend (&testName, "_%s-CHIP", baseName);
    1190 
    1191         testCamera = psMetadataLookupMetadata (NULL, cameras, testName);
    1192         psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testName);
     1191        testCameraName = NULL;
     1192        psStringAppend (&testCameraName, "_%s-CHIP", baseName);
     1193
     1194        testCamera = psMetadataLookupMetadata (NULL, cameras, testCameraName);
     1195        psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testCameraName);
    11931196
    11941197        bool status;
    1195         found = formatFromHeader(&status, &format, &name, testCamera, header, testName);
    1196         if (!found) psFree (testName);
     1198        found = formatFromHeader(&status, &format, &testFormatName, testCamera, header, testCameraName);
     1199        if (!found) psFree (testCameraName);
    11971200    }
    11981201
    11991202    // try the SKYCELL metaCamera
    12001203    if (!found) {
    1201         testName = NULL;
    1202         psStringAppend (&testName, "_%s-SKYCELL", baseName);
    1203 
    1204         testCamera = psMetadataLookupMetadata (NULL, cameras, testName);
    1205         psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testName);
     1204        testCameraName = NULL;
     1205        psStringAppend (&testCameraName, "_%s-SKYCELL", baseName);
     1206
     1207        testCamera = psMetadataLookupMetadata (NULL, cameras, testCameraName);
     1208        psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testCameraName);
    12061209
    12071210        bool status;
    1208         found = formatFromHeader(&status, &format, &name, testCamera, header, testName);
    1209         if (!found) psFree (testName);
     1211        found = formatFromHeader(&status, &format, &testFormatName, testCamera, header, testCameraName);
     1212        if (!found) psFree (testCameraName);
    12101213    }
    12111214
    12121215    // try the base name
    12131216    if (!found) {
    1214         testName = psMemIncrRefCounter (baseName);
    1215 
    1216         testCamera = psMetadataLookupMetadata (NULL, cameras, testName);
    1217         psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testName);
     1217        testCameraName = psMemIncrRefCounter (baseName);
     1218
     1219        testCamera = psMetadataLookupMetadata (NULL, cameras, testCameraName);
     1220        psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testCameraName);
    12181221
    12191222        bool status;
    1220         found = formatFromHeader(&status, &format, &name, testCamera, header, testName);
     1223        found = formatFromHeader(&status, &format, &testFormatName, testCamera, header, testCameraName);
    12211224    }
    12221225
     
    12281231    }
    12291232
    1230     psFree (name); // winning format name (for metaCamera) returned by formatFromHeader
    1231 
    12321233    psFree (baseName);
    12331234    if (formatName) {
    1234         *formatName = testName;
     1235        *formatName = testFormatName;
    12351236    } else {
    1236         psFree (testName);
    1237     }
     1237        psFree (testFormatName);
     1238    }
     1239    if (cameraName) {
     1240        *cameraName = testCameraName;
     1241    } else {
     1242        psFree (testCameraName);
     1243    }
     1244
    12381245    if (camera) {
    12391246        *camera = psMemIncrRefCounter(testCamera);
Note: See TracChangeset for help on using the changeset viewer.