IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 6906


Ignore:
Timestamp:
Apr 19, 2006, 10:30:49 AM (20 years ago)
Author:
magnier
Message:

added PM_FPA_STATE_INACTIVE, pmFPAfileActivate

Location:
trunk/psModules/src/astrom
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/astrom/pmFPAfile.c

    r6896 r6906  
    55#include "pmHDU.h"
    66#include "pmFPA.h"
     7#include "pmMaskBadPixels.h"
    78#include "pmFPAConstruct.h"
    89#include "pmFPAview.h"
     
    249250    char *writeMode = "w";
    250251
     252    if (file->state & PM_FPA_STATE_INACTIVE) {
     253        return false;
     254    }
     255
     256    if (file->state == PM_FPA_STATE_OPEN) {
     257        return true;
     258    }
     259
    251260    if (file->mode == PM_FPA_MODE_NONE) {
    252261        return false;
     
    260269    if (file->mode == PM_FPA_MODE_WRITE) {
    261270        mode = writeMode;
    262     }
    263 
    264     if (file->state == PM_FPA_STATE_OPEN) {
    265         return true;
    266271    }
    267272
     
    322327bool pmFPAfileRead (pmFPAfile *file, const pmFPAview *view)
    323328{
     329    if (file->state & PM_FPA_STATE_INACTIVE)
     330        return false;
     331
    324332    if (file->mode != PM_FPA_MODE_READ)
    325333        return false;
     
    372380bool pmFPAfileWrite (pmFPAfile *file, const pmFPAview *view)
    373381{
    374     if (file->mode != PM_FPA_MODE_WRITE)
    375         return false;
     382
     383    if (file->state & PM_FPA_STATE_INACTIVE) {
     384        return false;
     385    }
     386
     387    if (file->mode != PM_FPA_MODE_WRITE) {
     388        return false;
     389    }
    376390
    377391    // get the current depth
     
    422436bool pmFPAfileCreate (pmFPAfile *file, const pmFPAview *view)
    423437{
     438    if (file->state & PM_FPA_STATE_INACTIVE) {
     439        return false;
     440    }
    424441    if (file->mode != PM_FPA_MODE_WRITE)
    425442        return false;
     
    461478bool pmFPAfileClose (pmFPAfile *file, const pmFPAview *view)
    462479{
     480    if (file->state & PM_FPA_STATE_INACTIVE) {
     481        return false;
     482    }
    463483    if (file->state == PM_FPA_STATE_CLOSED) {
    464484        return true;
     
    496516        fprintf (stderr, "warning: type mismatch\n");
    497517        return false;
     518    }
     519    return true;
     520}
     521
     522// set the state of the specified pmFPAfile to active (state == true) or inactive
     523// if name is NULL, set the state for all pmFPAfiles
     524bool pmFPAfileActivate (psMetadata *files, bool state, char *name)
     525{
     526    if (name == NULL) {
     527        psMetadataItem *item = NULL;
     528        psMetadataIterator *iter = psMetadataIteratorAlloc (files, PS_LIST_HEAD, NULL);
     529        while ((item = psMetadataGetAndIncrement (iter)) != NULL) {
     530            pmFPAfile *file = item->data.V;
     531            if (state) {
     532                file->state &= NOT_U8(PM_FPA_STATE_INACTIVE);
     533            } else {
     534                file->state |= PM_FPA_STATE_INACTIVE;
     535            }
     536        }
     537        psFree (iter);
     538        return true;
     539    }
     540
     541    bool status = false;
     542    pmFPAfile *file = psMetadataLookupPtr (&status, files, name);
     543    if (!file) {
     544        return false;
     545    }
     546    if (state) {
     547        file->state &= NOT_U8(PM_FPA_STATE_INACTIVE);
     548    } else {
     549        file->state |= PM_FPA_STATE_INACTIVE;
    498550    }
    499551    return true;
  • trunk/psModules/src/astrom/pmFPAfile.h

    r6872 r6906  
    77*  @author EAM, IfA
    88*
    9 *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
    10 *  @date $Date: 2006-04-17 18:01:04 $
     9*  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
     10*  @date $Date: 2006-04-19 20:30:49 $
    1111*
    1212*  Copyright 2004-2005 Institute for Astronomy, University of Hawaii
     
    4646
    4747typedef enum {
    48     PM_FPA_STATE_OPEN,
    49     PM_FPA_STATE_CLOSED,
     48    PM_FPA_STATE_OPEN     = 0x01,
     49    PM_FPA_STATE_CLOSED   = 0x02,
     50    PM_FPA_STATE_INACTIVE = 0x04,
    5051} pmFPAfileState;
    5152
     
    111112bool pmFPAfileClose (pmFPAfile *file, const pmFPAview *view);
    112113
     114// set the state of the specified pmFPAfile to active (state == true) or inactive
     115// if name is NULL, set the state for all pmFPAfiles
     116bool pmFPAfileActivate (psMetadata *files, bool state, char *name);
     117
    113118// examine all pmFPAfiles listed in the files and perform the needed I/O operations (open,read,write,close)
    114119bool pmFPAfileIOChecks (psMetadata *files, const pmFPAview *view, pmFPAfilePlace place);
Note: See TracChangeset for help on using the changeset viewer.