00001 #ifndef PM_CONCEPTS_H
00002 #define PM_CONCEPTS_H
00003
00004 #include "pslib.h"
00005 #include "pmFPA.h"
00006
00007
00008 typedef psMetadataItem* (*pmConceptParseFunc)(const psMetadataItem *concept, const psMetadataItem *pattern, const psMetadata *cameraFormat, const pmFPA *fpa, const pmChip *chip, const pmCell *cell);
00009
00010 typedef psMetadataItem* (*pmConceptFormatFunc)(const psMetadataItem *concept, const psMetadata *cameraFormat, const pmFPA *fpa, const pmChip *chip, const pmCell *cell);
00011
00012
00013 typedef struct
00014 {
00015 psMetadataItem *blank;
00016 pmConceptParseFunc parse;
00017 pmConceptFormatFunc format;
00018 }
00019 pmConceptSpec;
00020
00021
00022 pmConceptSpec *pmConceptSpecAlloc(psMetadataItem *blank,
00023 pmConceptParseFunc parse,
00024 pmConceptFormatFunc format
00025 );
00026
00027
00028 bool pmConceptRegister(psMetadataItem *blank,
00029 pmConceptParseFunc parse,
00030 pmConceptFormatFunc format,
00031 pmFPALevel level
00032 );
00033
00034
00035 typedef enum {
00036 PM_CONCEPT_SOURCE_NONE = 0x00,
00037 PM_CONCEPT_SOURCE_CAMERA = 0x01,
00038 PM_CONCEPT_SOURCE_DEFAULTS = 0x02,
00039 PM_CONCEPT_SOURCE_HEADER = 0x04,
00040 PM_CONCEPT_SOURCE_DATABASE = 0x08,
00041 PM_CONCEPT_SOURCE_ALL = 0x0e
00042 } pmConceptSource;
00043
00044
00045 bool pmConceptsBlankFPA(pmFPA *fpa
00046 );
00047 bool pmConceptsReadFPA(pmFPA *fpa,
00048 pmConceptSource source,
00049 bool propagateDown,
00050 psDB *db
00051 );
00052 bool pmConceptsWriteFPA(pmFPA *fpa,
00053 pmConceptSource source,
00054 bool propagateDown,
00055 psDB *db
00056 );
00057 bool pmConceptsBlankChip(pmChip *chip
00058 );
00059 bool pmConceptsReadChip(pmChip *chip,
00060 pmConceptSource source,
00061 bool propagateUp,
00062 bool propagateDown,
00063 psDB *db
00064 );
00065 bool pmConceptsWriteChip(pmChip *chip,
00066 pmConceptSource source,
00067 bool propagateUp,
00068 bool propagateDown,
00069 psDB *db
00070 );
00071 bool pmConceptsBlankCell(pmCell *cell
00072 );
00073 bool pmConceptsReadCell(pmCell *cell,
00074 pmConceptSource source,
00075 bool propagateUp,
00076 psDB *db
00077 );
00078 bool pmConceptsWriteCell(pmCell *cell,
00079 pmConceptSource source,
00080 bool propagateUp,
00081 psDB *db
00082 );
00083
00084
00085 bool pmConceptsInit(void);
00086
00087 void pmConceptsDone(void);
00088
00089
00090 bool pmFPACopyConcepts(pmFPA *target,
00091 pmFPA *source
00092 );
00093
00094
00095 #endif