OSDN Git Service

dmFileInfo: pointer added v2.3.2p0155
authorTakuo Yasunaga <yasunaga@bio.kyutech.ac.jp>
Thu, 18 Jun 2015 00:18:43 +0000 (09:18 +0900)
committerTakuo Yasunaga <yasunaga@bio.kyutech.ac.jp>
Thu, 18 Jun 2015 00:18:43 +0000 (09:18 +0900)
bin/wish/Display2/tclIndex
lib/tclIndex
src/Objects/DataManip/dmFile/inc/dmFile.h
src/Objects/DataManip/dmFile/src/: [deleted file]
src/Objects/DataManip/dmFile/src/dmFileInfo.c
src/Objects/DataManip/dmFile/src/dmFileRead.c
src/Objects/DataManip/dmFile/src/dmFileUtil.c
src/Objects/DataManip/dmFile/src/ldm2mrc.c

index 75a715a..8fd9302 100644 (file)
@@ -49,6 +49,7 @@ set auto_index(menuMultiRoiOKCommand) [list source [file join $dir Display2MenuR
 set auto_index(menuMultiRoiAllDeleteCommand) [list source [file join $dir Display2MenuROI.wish]]
 set auto_index(menuMultiRoiDeleteCommand) [list source [file join $dir Display2MenuROI.wish]]
 set auto_index(menuEditCreate) [list source [file join $dir Display2MenuROI.wish]]
+set auto_index(fft2dCmd) [list source [file join $dir fft2dCmd.wish]]
 set auto_index(layerLineRecreate) [list source [file join $dir LayerLineUtil.wish]]
 set auto_index(layerLineCreate) [list source [file join $dir LayerLineUtil.wish]]
 set auto_index(layerLineClear) [list source [file join $dir LayerLineUtil.wish]]
@@ -131,4 +132,3 @@ set auto_index(sectionClearAll) [list source [file join $dir SectionUtil.wish]]
 set auto_index(sectionClear) [list source [file join $dir SectionUtil.wish]]
 set auto_index(sectionChange) [list source [file join $dir SectionUtil.wish]]
 set auto_index(unitCellRecreate) [list source [file join $dir UnitCell.wish]]
-set auto_index(fft2dCmd) [list source [file join $dir fft2dCmd.wish]]
index fc20b8b..31723a2 100644 (file)
@@ -6,75 +6,6 @@
 # element name is the name of a command and the value is
 # a script that loads the command.
 
-set auto_index(fileSaveSureWin) [list source [file join $dir fileSave.wish]]
-set auto_index(fileSaveSureOK) [list source [file join $dir fileSave.wish]]
-set auto_index(fileSaveSureCancel) [list source [file join $dir fileSave.wish]]
-set auto_index(fileSaveSureWinResources) [list source [file join $dir fileSave.wish]]
-set auto_index(fileSave) [list source [file join $dir fileSave.wish]]
-set auto_index(fileSaveResources) [list source [file join $dir fileSave.wish]]
-set auto_index(fileSaveBindings) [list source [file join $dir fileSave.wish]]
-set auto_index(fileSaveList) [list source [file join $dir fileSave.wish]]
-set auto_index(fileSaveOK) [list source [file join $dir fileSave.wish]]
-set auto_index(fileSaveCancel) [list source [file join $dir fileSave.wish]]
-set auto_index(fileSaveClick) [list source [file join $dir fileSave.wish]]
-set auto_index(fileSaveTake) [list source [file join $dir fileSave.wish]]
-set auto_index(fileSaveComplete) [list source [file join $dir fileSave.wish]]
-set auto_index(fileSelect) [list source [file join $dir fileSelect.wish]]
-set auto_index(fileSelectResources) [list source [file join $dir fileSelect.wish]]
-set auto_index(fileSelectBindings) [list source [file join $dir fileSelect.wish]]
-set auto_index(fileSelectList) [list source [file join $dir fileSelect.wish]]
-set auto_index(fileSelectOK) [list source [file join $dir fileSelect.wish]]
-set auto_index(fileSelectCancel) [list source [file join $dir fileSelect.wish]]
-set auto_index(fileSelectClick) [list source [file join $dir fileSelect.wish]]
-set auto_index(fileSelectTake) [list source [file join $dir fileSelect.wish]]
-set auto_index(fileSelectComplete) [list source [file join $dir fileSelect.wish]]
-set auto_index(colormapSet) [list source [file join $dir Colormap.wish]]
-set auto_index(seqFileTemplateChange) [list source [file join $dir seqFileSelect.wish]]
-set auto_index(seqFileSelect) [list source [file join $dir seqFileSelect.wish]]
-set auto_index(seqFileSelectBindings) [list source [file join $dir seqFileSelect.wish]]
-set auto_index(seqFileSelectList) [list source [file join $dir seqFileSelect.wish]]
-set auto_index(seqFileTemplateSelectOK) [list source [file join $dir seqFileSelect.wish]]
-set auto_index(seqFileTemplateSelectComplete) [list source [file join $dir seqFileSelect.wish]]
-set auto_index(seqFileSelectOK) [list source [file join $dir seqFileSelect.wish]]
-set auto_index(seqFileSelectComplete) [list source [file join $dir seqFileSelect.wish]]
-set auto_index(seqFileSelectPrev) [list source [file join $dir seqFileSelect.wish]]
-set auto_index(seqFileSelectNext) [list source [file join $dir seqFileSelect.wish]]
-set auto_index(seqFileSelectCancel) [list source [file join $dir seqFileSelect.wish]]
-set auto_index(seqFileSelectClick) [list source [file join $dir seqFileSelect.wish]]
-set auto_index(seqFileSelectTake) [list source [file join $dir seqFileSelect.wish]]
-set auto_index(CheckButtonsCreateWithPack) [list source [file join $dir VariousButton.wish]]
-set auto_index(RadioButtonsCreateWithPack) [list source [file join $dir VariousButton.wish]]
-set auto_index(RadioButtonsCreateWithPackWithCommand) [list source [file join $dir VariousButton.wish]]
-set auto_index(RadioButtonsCreate) [list source [file join $dir VariousButton.wish]]
-set auto_index(CheckButtonsCreate) [list source [file join $dir VariousButton.wish]]
-set auto_index(CommandEntry) [list source [file join $dir CommandEntry.wish]]
-set auto_index(CommandEntryWithSelection) [list source [file join $dir CommandEntry.wish]]
-set auto_index(CommandEntryWithSelectionEntrySet) [list source [file join $dir CommandEntry.wish]]
-set auto_index(CommandEntryWithUpDown) [list source [file join $dir CommandEntry.wish]]
-set auto_index(CommandEntryWithUpDownUp) [list source [file join $dir CommandEntry.wish]]
-set auto_index(CommandEntryWithUpDownDown) [list source [file join $dir CommandEntry.wish]]
-set auto_index(bltResetBindings) [list source [file join $dir graphFeature.wish]]
-set auto_index(bltActivateLegend) [list source [file join $dir graphFeature.wish]]
-set auto_index(SetActiveLegend) [list source [file join $dir graphFeature.wish]]
-set auto_index(SetCrosshairs) [list source [file join $dir graphFeature.wish]]
-set auto_index(bltFindElement) [list source [file join $dir graphFeature.wish]]
-set auto_index(bltFlashPoint) [list source [file join $dir graphFeature.wish]]
-set auto_index(SetClosestPoint) [list source [file join $dir graphFeature.wish]]
-set auto_index(bltGetCoords) [list source [file join $dir graphFeature.wish]]
-set auto_index(bltGetAnchor) [list source [file join $dir graphFeature.wish]]
-set auto_index(bltGetAnchorX) [list source [file join $dir graphFeature.wish]]
-set auto_index(bltBox) [list source [file join $dir graphFeature.wish]]
-set auto_index(bltBoxX) [list source [file join $dir graphFeature.wish]]
-set auto_index(bltScan) [list source [file join $dir graphFeature.wish]]
-set auto_index(bltScanX) [list source [file join $dir graphFeature.wish]]
-set auto_index(bltZoom) [list source [file join $dir graphFeature.wish]]
-set auto_index(bltZoomX) [list source [file join $dir graphFeature.wish]]
-set auto_index(SetZoom) [list source [file join $dir graphFeature.wish]]
-set auto_index(SetZoomX) [list source [file join $dir graphFeature.wish]]
-set auto_index(SetPrint) [list source [file join $dir graphFeature.wish]]
-set auto_index(NotSupportedCommand) [list source [file join $dir tclUtil.wish]]
-set auto_index(Canvas) [list source [file join $dir Canvas.wish]]
-set auto_index(scrolledCanvas) [list source [file join $dir Canvas.wish]]
 set auto_index(Blt_ActiveLegend) [list source [file join $dir bltGraph.wish]]
 set auto_index(Blt_Crosshairs) [list source [file join $dir bltGraph.wish]]
 set auto_index(Blt_ZoomStack) [list source [file join $dir bltGraph.wish]]
@@ -102,8 +33,16 @@ set auto_index(::blt::SetZoomPoint) [list source [file join $dir bltGraph.wish]]
 set auto_index(::blt::Box) [list source [file join $dir bltGraph.wish]]
 set auto_index(Blt_PostScriptDialog) [list source [file join $dir bltGraph.wish]]
 set auto_index(::blt::ResetPostScript) [list source [file join $dir bltGraph.wish]]
-set auto_index(fileCanBeOverwritten) [list source [file join $dir fileUtil.wish]]
-set auto_index(relativePathGet) [list source [file join $dir fileUtil.wish]]
+set auto_index(Canvas) [list source [file join $dir Canvas.wish]]
+set auto_index(scrolledCanvas) [list source [file join $dir Canvas.wish]]
+set auto_index(colormapSet) [list source [file join $dir Colormap.wish]]
+set auto_index(CommandEntry) [list source [file join $dir CommandEntry.wish]]
+set auto_index(CommandEntryWithSelection) [list source [file join $dir CommandEntry.wish]]
+set auto_index(CommandEntryWithSelectionEntrySet) [list source [file join $dir CommandEntry.wish]]
+set auto_index(CommandEntryWithUpDown) [list source [file join $dir CommandEntry.wish]]
+set auto_index(CommandEntryWithUpDownUp) [list source [file join $dir CommandEntry.wish]]
+set auto_index(CommandEntryWithUpDownDown) [list source [file join $dir CommandEntry.wish]]
+set auto_index(eosCommandExecute) [list source [file join $dir commandUtil.wish]]
 set auto_index(::CTF::Init) [list source [file join $dir ctfInfo.wish]]
 set auto_index(::CTF::Win) [list source [file join $dir ctfInfo.wish]]
 set auto_index(::CTF::ctfInfoGraphInfoFrameCreate) [list source [file join $dir ctfInfo.wish]]
@@ -135,4 +74,65 @@ set auto_index(::CTF::ctfInfoCTFCalculation) [list source [file join $dir ctfInf
 set auto_index(::CTF::ctfInfoScatteringCalc) [list source [file join $dir ctfInfo.wish]]
 set auto_index(::CTF::ctfInfoListGet) [list source [file join $dir ctfInfo.wish]]
 set auto_index(::CTF::ctfInfoAppend) [list source [file join $dir ctfInfo.wish]]
-set auto_index(eosCommandExecute) [list source [file join $dir commandUtil.wish]]
+set auto_index(fileSaveSureWin) [list source [file join $dir fileSave.wish]]
+set auto_index(fileSaveSureOK) [list source [file join $dir fileSave.wish]]
+set auto_index(fileSaveSureCancel) [list source [file join $dir fileSave.wish]]
+set auto_index(fileSaveSureWinResources) [list source [file join $dir fileSave.wish]]
+set auto_index(fileSave) [list source [file join $dir fileSave.wish]]
+set auto_index(fileSaveResources) [list source [file join $dir fileSave.wish]]
+set auto_index(fileSaveBindings) [list source [file join $dir fileSave.wish]]
+set auto_index(fileSaveList) [list source [file join $dir fileSave.wish]]
+set auto_index(fileSaveOK) [list source [file join $dir fileSave.wish]]
+set auto_index(fileSaveCancel) [list source [file join $dir fileSave.wish]]
+set auto_index(fileSaveClick) [list source [file join $dir fileSave.wish]]
+set auto_index(fileSaveTake) [list source [file join $dir fileSave.wish]]
+set auto_index(fileSaveComplete) [list source [file join $dir fileSave.wish]]
+set auto_index(fileSelect) [list source [file join $dir fileSelect.wish]]
+set auto_index(fileSelectResources) [list source [file join $dir fileSelect.wish]]
+set auto_index(fileSelectBindings) [list source [file join $dir fileSelect.wish]]
+set auto_index(fileSelectList) [list source [file join $dir fileSelect.wish]]
+set auto_index(fileSelectOK) [list source [file join $dir fileSelect.wish]]
+set auto_index(fileSelectCancel) [list source [file join $dir fileSelect.wish]]
+set auto_index(fileSelectClick) [list source [file join $dir fileSelect.wish]]
+set auto_index(fileSelectTake) [list source [file join $dir fileSelect.wish]]
+set auto_index(fileSelectComplete) [list source [file join $dir fileSelect.wish]]
+set auto_index(fileCanBeOverwritten) [list source [file join $dir fileUtil.wish]]
+set auto_index(relativePathGet) [list source [file join $dir fileUtil.wish]]
+set auto_index(bltResetBindings) [list source [file join $dir graphFeature.wish]]
+set auto_index(bltActivateLegend) [list source [file join $dir graphFeature.wish]]
+set auto_index(SetActiveLegend) [list source [file join $dir graphFeature.wish]]
+set auto_index(SetCrosshairs) [list source [file join $dir graphFeature.wish]]
+set auto_index(bltFindElement) [list source [file join $dir graphFeature.wish]]
+set auto_index(bltFlashPoint) [list source [file join $dir graphFeature.wish]]
+set auto_index(SetClosestPoint) [list source [file join $dir graphFeature.wish]]
+set auto_index(bltGetCoords) [list source [file join $dir graphFeature.wish]]
+set auto_index(bltGetAnchor) [list source [file join $dir graphFeature.wish]]
+set auto_index(bltGetAnchorX) [list source [file join $dir graphFeature.wish]]
+set auto_index(bltBox) [list source [file join $dir graphFeature.wish]]
+set auto_index(bltBoxX) [list source [file join $dir graphFeature.wish]]
+set auto_index(bltScan) [list source [file join $dir graphFeature.wish]]
+set auto_index(bltScanX) [list source [file join $dir graphFeature.wish]]
+set auto_index(bltZoom) [list source [file join $dir graphFeature.wish]]
+set auto_index(bltZoomX) [list source [file join $dir graphFeature.wish]]
+set auto_index(SetZoom) [list source [file join $dir graphFeature.wish]]
+set auto_index(SetZoomX) [list source [file join $dir graphFeature.wish]]
+set auto_index(SetPrint) [list source [file join $dir graphFeature.wish]]
+set auto_index(seqFileTemplateChange) [list source [file join $dir seqFileSelect.wish]]
+set auto_index(seqFileSelect) [list source [file join $dir seqFileSelect.wish]]
+set auto_index(seqFileSelectBindings) [list source [file join $dir seqFileSelect.wish]]
+set auto_index(seqFileSelectList) [list source [file join $dir seqFileSelect.wish]]
+set auto_index(seqFileTemplateSelectOK) [list source [file join $dir seqFileSelect.wish]]
+set auto_index(seqFileTemplateSelectComplete) [list source [file join $dir seqFileSelect.wish]]
+set auto_index(seqFileSelectOK) [list source [file join $dir seqFileSelect.wish]]
+set auto_index(seqFileSelectComplete) [list source [file join $dir seqFileSelect.wish]]
+set auto_index(seqFileSelectPrev) [list source [file join $dir seqFileSelect.wish]]
+set auto_index(seqFileSelectNext) [list source [file join $dir seqFileSelect.wish]]
+set auto_index(seqFileSelectCancel) [list source [file join $dir seqFileSelect.wish]]
+set auto_index(seqFileSelectClick) [list source [file join $dir seqFileSelect.wish]]
+set auto_index(seqFileSelectTake) [list source [file join $dir seqFileSelect.wish]]
+set auto_index(NotSupportedCommand) [list source [file join $dir tclUtil.wish]]
+set auto_index(CheckButtonsCreateWithPack) [list source [file join $dir VariousButton.wish]]
+set auto_index(RadioButtonsCreateWithPack) [list source [file join $dir VariousButton.wish]]
+set auto_index(RadioButtonsCreateWithPackWithCommand) [list source [file join $dir VariousButton.wish]]
+set auto_index(RadioButtonsCreate) [list source [file join $dir VariousButton.wish]]
+set auto_index(CheckButtonsCreate) [list source [file join $dir VariousButton.wish]]
index e17a707..3b74350 100644 (file)
@@ -136,6 +136,8 @@ typedef struct dmFile3Tag {
        dmFileInteger4 ninfo; 
        dmFileInteger4* info; 
        long            pValue; // Offset       
+       long*           pValue2; // Offset      
+       long*           pValue3; // Offset      
        void*           value;  // Array or value 
        void**          value2; // Struct
        void**          value3; // Array of Struct
@@ -153,6 +155,8 @@ typedef struct dmFile4Tag {
        dmFileInteger8 ninfo; 
        dmFileInteger8* info; 
        long            pValue;
+       long*           pValue2;
+       long*           pValue3;
        void*           value;  // Array or value 
        void**          value2; // Struct
        void**          value3; // Array of Struct
@@ -186,7 +190,7 @@ typedef struct dmFile {
        // Tail
        dmFileInteger8 Tail;
 
-       // 
+       // Control
        mrcImage thumnail;
        mrcImage image;
 } dmFile;
@@ -240,6 +244,8 @@ extern void dmFile4TagDirectory2mrc(dmFile* fpt, dmFile4TagDirectory tagDir, int
 // in dmFileInit.c
 extern void dmFileInit(dmFile* dm, int mode);
 
+// in ldm2mrc.c
+
 /* prototype end */
 
 #ifdef __cplusplus
diff --git a/src/Objects/DataManip/dmFile/src/: b/src/Objects/DataManip/dmFile/src/:
deleted file mode 100644 (file)
index 3222832..0000000
+++ /dev/null
@@ -1,564 +0,0 @@
-/*
-# %M% %Y% %I%
-# The latest update : %G% at %U%
-#
-#%Z% dmFileRead ver %I%
-#%Z% Created by 
-#%Z%
-#%Z% Usage : dmFileRead 
-#%Z% Attention
-#%Z%
-*/
-static char __sccs_id[] = "%Z%dmFileRead ver%I%; Date:%D% %Z%";
-#define DEBUG
-#define DEBUG2
-#include "genUtil.h"
-#include "Memory.h"
-#include "../inc/dmFile.h"
-
-void
-dmFileRead(FILE* fpt, dmFile* dm, char* message, int mode)
-{
-       int i, j;
-       dmFile3Tag* dmTag3;
-       dmFile4Tag* dmTag4;
-
-       dmFileHeaderTailRead(fpt, dm, message, mode);
-
-       switch(dm->version) {
-               case 3: {
-                       // Header
-                       dmFile3HeaderRead(fpt, dm, message, mode);
-                       // Root Tag
-                       dmFile3TagDirectoryHeaderRead(fpt, &(dm->RootTag3), message, mode);
-                       for(i=0; i<dm->RootTag3.numberOfTags; i++) {
-                               dmTag3 = &(dm->RootTag3.Tags[i]);
-                               DEBUGPRINT2("Tags-i: %d/%d\n", i, dm->RootTag3.numberOfTags);
-                               dmFile3TagHeaderRead(fpt, &(dm->RootTag3.Tags[i]), message, mode);
-                               switch(dm->RootTag3.Tags[i].tagID) {
-                                       case dmFileTagDirTypeTag: { // tag
-                                               DEBUGPRINT("TAG\n");
-                                               dmFile3TagRead(fpt, &(dm->RootTag3.Tags[i]), message, mode);
-                                               break;
-                                       }
-                                       case dmFileTagDirTypeTagDir: { // tag directories
-                                               DEBUGPRINT("TAG DIRECTORIES\n");        
-                                               dm->RootTag3.Tags[i].tagDir = memoryAllocate(sizeof(dmFile3TagDirectory), message);
-                                               dmFile3TagDirectoryRead(fpt, dm->RootTag3.Tags[i].tagDir, message, mode);       
-                                               break;
-                                       }
-                                       case dmFileTagDirTypeFileEnd: {  
-                                               DEBUGPRINT("FILE END\n")
-                                               return; 
-                                               break;
-                                       }
-                                       default: {
-                                               //dmFile3TagRead(fpt, &(dm->RootTag3.Tags[i]), message, mode);
-                                               fprintf(stderr, "Not supported tagID(hex): %X\n", dm->RootTag3.Tags[i].tagID);
-                                               //exit(EXIT_FAILURE);
-                                               break;
-                                       }
-                               }
-                       }
-                       break;
-               }
-               case 4: {
-                       // Header
-                       dmFile4HeaderRead(fpt, dm, message, mode);
-                       // Root Tag
-                       dmFile4TagDirectoryHeaderRead(fpt, &(dm->RootTag4), message, mode);
-                       DEBUGPRINT1("dm->RootTag4.numberOfTags: %lld\n", dm->RootTag4.numberOfTags);
-                       for(i=0; i<dm->RootTag4.numberOfTags; i++) {
-                               dmTag4 = &(dm->RootTag4.Tags[i]);
-                               DEBUGPRINT2("Tags-i: %d/%lld\n", i, dm->RootTag4.numberOfTags);
-                               dmFile4TagHeaderRead(fpt, &(dm->RootTag4.Tags[i]), message, mode);
-                               switch(dm->RootTag4.Tags[i].tagID) {
-                                       case dmFileTagDirTypeTag: { // tag
-                                               DEBUGPRINT("TAG\n");
-                                               dmFile4TagRead(fpt, &(dm->RootTag4.Tags[i]), message, mode);
-                                               break;
-                                       }
-                                       case dmFileTagDirTypeTagDir: { // tag directories
-                                               DEBUGPRINT("TAG DIRECTORIES\n");        
-                                               dm->RootTag4.Tags[i].tagDir = memoryAllocate(sizeof(dmFile4TagDirectory), message);
-                                               dmFile4TagDirectoryRead(fpt, dm->RootTag4.Tags[i].tagDir, message, mode);       
-                                               break;
-                                       }
-                                       case dmFileTagDirTypeFileEnd: {  
-                                               DEBUGPRINT("FILE END\n")
-                                               return; 
-                                               break;
-                                       }
-                                       default: {
-                                               //dmFile3TagRead(fpt, &(dm->RootTag4.Tags[i]), message, mode);
-                                               fprintf(stderr, "Not supported tagID(hex): %X\n", dm->RootTag4.Tags[i].tagID);
-                                               //exit(EXIT_FAILURE);
-                                               break;
-                                       }
-                               }
-                       }
-                       break;
-               }
-               default: {
-                       fprintf(stderr, "Not supported version: %d\n", dm->version);
-                       break;
-               }
-       }
-}
-
-
-void
-dmFileHeaderTailRead(FILE* fpt, dmFile* dm, char* message, int mode)
-{
-       DEBUGPRINT("dmFileHeaderTailRead\n");
-       fseek(fpt, 0L, SEEK_SET);
-       fread(&(dm->version), sizeof(dmFileInteger4), 1, fpt);
-#ifdef II
-       memoryByteSwap(&(dm->version), sizeof(dmFileInteger4), 1);
-#endif
-       DEBUGPRINT1("version: %d\n", dm->version);
-
-       fseek(fpt, -8L, SEEK_END);
-       fread(&(dm->Tail), sizeof(dmFileInteger8), 1, fpt);
-       if(dm->Tail!=0 && 3<=dm->version) {
-               fprintf(stderr, "This file is not dm3/dm4: version %d \n", dm->version);
-               exit(EXIT_FAILURE);
-       }
-}
-
-void
-dmFile3HeaderRead(FILE* fpt, dmFile* dm, char* message, int mode)
-{
-       DEBUGPRINT("dmFile3HeaderRead start\n");
-       // Header
-       fseek(fpt, 0L, SEEK_SET);
-       if(12!=sizeof(dm->Header3)) {
-               fprintf(stderr, "Size is strange: %lu expected 12\n", sizeof(dm->Header4));
-               fread(&(dm->Header3.version), sizeof(dm->Header3.version), 1, fpt);
-               fread(&(dm->Header3.rootLength), sizeof(dm->Header3.rootLength), 1, fpt);
-               fread(&(dm->Header3.byteOrder), sizeof(dm->Header3.byteOrder), 1, fpt);
-       } else {
-               DEBUGPRINT1("Header3 Size: %lu expect 12\n", sizeof(dm->Header4));
-               fread(&(dm->Header3), sizeof(dm->Header3), 1, fpt);
-       }
-#ifdef II
-       memoryByteSwap(&(dm->Header3.version), sizeof(dmFileInteger4), 1);
-       memoryByteSwap(&(dm->Header3.rootLength), sizeof(dmFileInteger4), 1);
-       memoryByteSwap(&(dm->Header3.byteOrder), sizeof(dmFileInteger4), 1);
-#endif
-       DEBUGPRINT1("version:    %d\n", dm->Header3.version);
-       DEBUGPRINT1("RootLength: %d\n", dm->Header3.rootLength);
-       DEBUGPRINT1("ByteOrder:  %d\n", dm->Header3.byteOrder);
-       DEBUGPRINT("dmFile3HeaderRead end\n");
-}
-
-
-void
-dmFile4HeaderRead(FILE* fpt, dmFile* dm, char* message, int mode)
-{
-       // Header
-       fseek(fpt, 0L, SEEK_SET);
-       if(16!=sizeof(dm->Header4)) {
-               fprintf(stderr, "Size is strange: %lu expected 16\n", sizeof(dm->Header4));
-               fread(&(dm->Header4.version), sizeof(dm->Header4.version), 1, fpt);
-               fread(&(dm->Header4.rootLength), sizeof(dm->Header4.rootLength), 1, fpt);
-               fread(&(dm->Header4.byteOrder), sizeof(dm->Header4.byteOrder), 1, fpt);
-       } else {
-               DEBUGPRINT1("Header4 Size: %lu expect 16\n", sizeof(dm->Header4));
-               fread(&(dm->Header4), sizeof(dm->Header4), 1, fpt);
-       }
-#ifdef II
-       memoryByteSwap(&(dm->Header4.version), sizeof(dmFileInteger4), 1);
-       memoryByteSwap(&(dm->Header4.rootLength), sizeof(dmFileInteger8), 1);
-       memoryByteSwap(&(dm->Header4.byteOrder), sizeof(dmFileInteger4), 1);
-#endif
-       DEBUGPRINT1("version:    %d\n", dm->Header4.version);
-       DEBUGPRINT1("RootLength: %lld\n", dm->Header4.rootLength);
-       DEBUGPRINT1("ByteOrder:  %d\n", dm->Header4.byteOrder);
-}
-
-
-void
-dmFile3TagDirectoryRead(FILE* fpt, dmFile3TagDirectory* tagDir, char* message, int mode)
-{
-       int j;
-       DEBUGPRINT("dmFile3TagDirectoryRead Start\n");  
-       dmFile3TagDirectoryHeaderRead(fpt, tagDir, message, mode);      
-       DEBUGPRINT1("Number of Tages: %d\n", tagDir->numberOfTags);
-       for(j=0; j<tagDir->numberOfTags; j++) {
-               DEBUGPRINT1("Tags-j(in tag directories): %d in dmFile3TagDirectoryRead\n", j);
-               dmFile3TagHeaderRead(fpt, &(tagDir->Tags[j]), message, mode);   
-               DEBUGPRINT2("%d tagID(hex): %x dmFile3TagHeaderRead in dmFile3TagDirectoryRead\n", j, tagDir->Tags[j].tagID);
-
-               DEBUGPRINT("TAG or TAGDIR switch Start\n");
-               switch(tagDir->Tags[j].tagID) {
-                       case dmFileTagDirTypeTagDir: { 
-                               DEBUGPRINT("TAGDIR READ START in dmFile3TagDirectoryRead\n");
-                               tagDir->Tags[j].tagDir = memoryAllocate(sizeof(dmFile3TagDirectory), message);
-                               dmFile3TagDirectoryRead(fpt, tagDir->Tags[j].tagDir, message, mode);
-                               DEBUGPRINT("TAGDIR READ END in dmFile3TagDirectoryRead\n");
-                               break;
-                       }
-                       default: {
-                               DEBUGPRINT("TAG READ START in dmFile3TagDirectoryRead\n");
-                               dmFile3TagRead(fpt, &(tagDir->Tags[j]), message, mode); 
-                               DEBUGPRINT("TAG READ END in dmFile3TagDirectoryRead\n");
-                               break;
-                       }
-               }
-               DEBUGPRINT("TAG or TAGDIR switch End\n");
-       }
-       DEBUGPRINT("dmFile3TagDirectoryRead end\n");    
-}
-
-void
-dmFile4TagDirectoryRead(FILE* fpt, dmFile4TagDirectory* tagDir, char* message, int mode)
-{
-       int j;
-       DEBUGPRINT("dmFile4TagDirectoryRead Start\n");  
-       dmFile4TagDirectoryHeaderRead(fpt, tagDir, message, mode);      
-       DEBUGPRINT1("Number of Tages: %lld\n", tagDir->numberOfTags);
-       for(j=0; j<tagDir->numberOfTags; j++) {
-               DEBUGPRINT1("Tags-j(in tag directories): %d in dmFile4TagDirectoryRead\n", j);
-               dmFile4TagHeaderRead(fpt, &(tagDir->Tags[j]), message, mode);   
-               DEBUGPRINT2("%d tagID(hex): %x dmFile4TagHeaderRead in dmFile4TagDirectoryRead\n", j, tagDir->Tags[j].tagID);
-
-               DEBUGPRINT("TAG or TAGDIR switch Start\n");
-               switch(tagDir->Tags[j].tagID) {
-                       case dmFileTagDirTypeTagDir: { 
-                               DEBUGPRINT("TAGDIR READ START in dmFile4TagDirectoryRead\n");
-                               tagDir->Tags[j].tagDir = memoryAllocate(sizeof(dmFile4TagDirectory), message);
-                               dmFile4TagDirectoryRead(fpt, tagDir->Tags[j].tagDir, message, mode);
-                               DEBUGPRINT("TAGDIR READ END in dmFile3TagDirectoryRead\n");
-                               break;
-                       }
-                       default: {
-                               DEBUGPRINT("TAG READ START in dmFile4TagDirectoryRead\n");
-                               dmFile4TagRead(fpt, &(tagDir->Tags[j]), message, mode); 
-                               DEBUGPRINT("TAG READ END in dmFile4TagDirectoryRead\n");
-                               break;
-                       }
-               }
-               DEBUGPRINT("TAG or TAGDIR switch End\n");
-       }
-       DEBUGPRINT("dmFile4TagDirectoryRead end\n");    
-}
-
-void
-dmFile3TagDirectoryHeaderRead(FILE* fpt, dmFile3TagDirectory* RootTag3, char* message, int mode)
-{
-       DEBUGPRINT("dmFile3TagDirectroyHeaderRead Start\n");
-       // Root Tag
-       fread(&(RootTag3->sortf), sizeof(dmFileInteger1), 1, fpt);
-       fread(&(RootTag3->closef), sizeof(dmFileInteger1), 1, fpt);
-       fread(&(RootTag3->numberOfTags), sizeof(dmFileInteger4), 1, fpt);
-#ifdef II
-       memoryByteSwap(&(RootTag3->numberOfTags), sizeof(dmFileInteger4), 1);
-#endif
-       DEBUGPRINT1("sortf:    %d\n", RootTag3->sortf);
-       DEBUGPRINT1("closef:   %d\n", RootTag3->closef);
-       DEBUGPRINT1("numberOfTags:   %d\n", RootTag3->numberOfTags);
-       RootTag3->Tags = (dmFile3Tag*)memoryAllocate(sizeof(dmFile3Tag)*RootTag3->numberOfTags, "in dmFileRead");
-       DEBUGPRINT("dmFile3TagDirectroyHeaderRead End\n");
-}
-
-void
-dmFile4TagDirectoryHeaderRead(FILE* fpt, dmFile4TagDirectory* RootTag4, char* message, int mode)
-{
-       DEBUGPRINT("dmFile4TagDirectoryHeaderRead");
-       // Root Tag
-       fread(&(RootTag4->sortf), sizeof(dmFileInteger1), 1, fpt);
-       fread(&(RootTag4->closef), sizeof(dmFileInteger1), 1, fpt);
-       fread(&(RootTag4->numberOfTags), sizeof(dmFileInteger8), 1, fpt);
-#ifdef II
-       memoryByteSwap(&(RootTag4->numberOfTags), sizeof(dmFileInteger8), 1);
-#endif
-       DEBUGPRINT1("sortf:    %d\n", RootTag4->sortf);
-       DEBUGPRINT1("closef:   %d\n", RootTag4->closef);
-       DEBUGPRINT1("numberOfTags:   %lld\n", RootTag4->numberOfTags);
-       RootTag4->Tags = (dmFile4Tag*)memoryAllocate(sizeof(dmFile4Tag)*RootTag4->numberOfTags, "in dmFileRead");
-}
-
-void
-dmFile3TagHeaderRead(FILE* fpt, dmFile3Tag* dmTag, char* message, int mode)
-{
-       DEBUGPRINT("dmFile3TagHeaderRead Start\n");     
-       fread(&(dmTag->tagID), sizeof(dmFileInteger1), 1, fpt);
-       fread(&(dmTag->tagNameLength), sizeof(dmFileInteger2), 1, fpt);
-#ifdef II
-       memoryByteSwap(&(dmTag->tagNameLength), sizeof(dmFileInteger2), 1);             
-#endif
-       if(0<dmTag->tagNameLength) {
-               dmTag->tagName = (char*)memoryAllocate(sizeof(char)*(dmTag->tagNameLength+1), "in dmFileRead");
-               fread(dmTag->tagName, sizeof(char), dmTag->tagNameLength, fpt); 
-               DEBUGPRINT3("tagID(hex) %X tagNameLength %d tagName %s\n", dmTag->tagID, dmTag->tagNameLength, dmTag->tagName);
-       } else {
-               DEBUGPRINT2("tagID(hex) %X tagNameLength %d \n", dmTag->tagID, dmTag->tagNameLength);
-       }
-
-       if(0<dmTag->tagNameLength) {
-       if(0==strncmp("Data", dmTag->tagName, dmTag->tagNameLength)) {
-               fprintf(stderr, "ImageData: %s %d\n", dmTag->tagName, dmTag->tagNameLength);
-       }
-       }
-
-       DEBUGPRINT("dmFile3TagHeaderRead End\n");       
-}
-
-void
-dmFile4TagHeaderRead(FILE* fpt, dmFile4Tag* dmTag, char* message, int mode)
-{
-       DEBUGPRINT("dmFile4TagHeaderRead Start\n");     
-       fread(&(dmTag->tagID), sizeof(dmFileInteger1), 1, fpt);
-       fread(&(dmTag->tagNameLength), sizeof(dmFileInteger2), 1, fpt);
-#ifdef II
-       memoryByteSwap(&(dmTag->tagNameLength), sizeof(dmFileInteger2), 1);             
-#endif
-       if(0<dmTag->tagNameLength) {
-               dmTag->tagName = (char*)memoryAllocate(sizeof(char)*(dmTag->tagNameLength+1), "in dmFileRead");
-               fread(dmTag->tagName, sizeof(char), dmTag->tagNameLength, fpt); 
-               DEBUGPRINT3("tagID(hex) %X tagNameLength %d tagName %s\n", dmTag->tagID, dmTag->tagNameLength, dmTag->tagName);
-       } else {
-               DEBUGPRINT2("tagID(hex) %X tagNameLength %d \n", dmTag->tagID, dmTag->tagNameLength);
-       }
-
-       if(0<dmTag->tagNameLength) {
-       if(0==strncmp("Data", dmTag->tagName, dmTag->tagNameLength)) {
-               fprintf(stderr, "ImageData: %s %d\n", dmTag->tagName, dmTag->tagNameLength);
-       }
-       }
-       fread(&(dmTag->tagLength), sizeof(dmFileInteger8), 1, fpt);
-#ifdef II
-       memoryByteSwap(&(dmTag->tagLength), sizeof(dmFileInteger8), 1);         
-#endif
-
-       DEBUGPRINT1("Length: %lld\n", dmTag->tagLength);
-       DEBUGPRINT("dmFile4TagHeaderRead End\n");       
-}
-
-void
-dmFile3TagRead(FILE* fpt, dmFile3Tag* dmTag, char* message, int mode)
-{
-       int j;
-
-       DEBUGPRINT("dmFile3TagRead Start\n");   
-       fread(dmTag->seperator, sizeof(char), 4, fpt); 
-       DEBUGPRINT1("%s\n",dmTag->seperator);
-       if(0!=strncmp(dmTag->seperator, "%%%%", 4)) {
-               fprintf(stderr, "Not supported : Strange!!!\n");
-               exit(EXIT_FAILURE);
-       } else {
-               DEBUGPRINT("\n");
-       }
-       fread(&(dmTag->ninfo), sizeof(dmFileInteger4), 1, fpt); 
-#ifdef II
-       memoryByteSwap(&(dmTag->ninfo), sizeof(dmFileInteger4), 1);             
-#endif
-       DEBUGPRINT1("tag ninfo %d\n", dmTag->ninfo);
-       if(0==dmTag->ninfo) {
-               DEBUGPRINT1("tag ninfo is zero: %d\n", dmTag->ninfo);
-               return;
-       }
-       dmTag->info = (dmFileInteger4*)memoryAllocate(sizeof(dmFileInteger4)*dmTag->ninfo, "in dmFileRead");                                    
-       fread(dmTag->info, sizeof(dmFileInteger4), dmTag->ninfo, fpt);
-#ifdef II
-       memoryByteSwap(dmTag->info, sizeof(dmFileInteger4), dmTag->ninfo);              
-#endif
-       DEBUGPRINT2("tag: info[0] %X ninfo %d\n", dmTag->info[0], dmTag->ninfo);
-       switch(dmTag->info[0]) { // dmTag->info[0]: tag data type
-               case dmFileTagDataTypeStruct: {
-                       DEBUGPRINT1("Struct: numEntry %d\n", dmTag->info[2]);
-                       // dmTag->info[0]       ; 0x0f
-                       // dmTag->info[1]       ; 0x0  Group Name
-                       // dmTag->info[2]       ; num of Entries 
-                       // dmTag->info[2*n + 4] ; data type of value-n
-                       dmTag->value2 = (void*)memoryAllocate(sizeof(void*)*dmTag->info[2], "in dmFileRead");
-                       for(j=0; j<dmTag->info[2]; j++) {
-                               DEBUGPRINT2("value %d type %d\n", j, dmTag->info[2*j+4]); 
-                               dmTag->value2[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+4]], "in dmFileRead");
-                               fread(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1, fpt);   
-#ifdef II
-                               //memoryByteSwap(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1);             
-#endif 
-#ifdef DEBUG2
-                               dmFileValuePrint(stderr, dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1); 
-#endif
-                       }
-                       break;
-               }
-               case dmFileTagDataTypeArray: {
-                       DEBUGPRINT2("ARRAY datatype(hex) %x dataType or 0x0f: %x\n", dmTag->info[0], dmTag->info[1]);
-                       // dmTag->info[0] ; 0x14: array  
-                       // dmTag->info[1] ; data type or 0x0f: Struct 
-                       switch(dmTag->info[1]) {
-                               case dmFileTagDataTypeStruct: { // array of struct : 0x0f
-                                       // dmTag->info[2] : 0x0 GroupNam
-                                       // dmTag->info[3] : num of Entries
-                                       // dmTag->info[4] : 0x0 FieldNum
-                                       // dmTag->info[2*n + 5] : data type of value-n 
-                                       // dmTag->info[2*dmTag->info[3] + 5 + 2] : size of array
-                                       DEBUGPRINT1("EntryNum: %d\n",  dmTag->info[3]);
-                                       dmTag->value3 = (void**)memoryAllocate(sizeof(void*)*dmTag->info[3], "in dmFileRead");
-                                       for(j=0; j<dmTag->info[3]; j++) {
-                                               DEBUGPRINT3("%d : valueType %x arraySize %d\n", j, dmTag->info[2*j+5], dmTag->info[2*dmTag->info[3] + 4 ]);
-                                               dmTag->value3[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+5]]*dmTag->info[2*dmTag->info[3] + 4 ], "in dmFileRead");     
-                                               fread(dmTag->value3[j], __dmFileTagDataTypeSize[dmTag->info[2*j+5]], dmTag->info[2*dmTag->info[3] + 4], fpt);   
-
-#ifdef II
-                                               //memoryByteSwap(dmTag->value3[j], __dmFileTagDataTypeSize[dmTag->info[2*j+5]], dmTag->info[2*dmTag->info[3] + 4]);             
-#endif 
-#ifdef DEBUG2
-                                               dmFileValuePrint(stderr, &(dmTag->value3[j]), dmTag->info[2*j+5], MIN(16,dmTag->info[2*dmTag->info[3] + 4])); 
-#endif
-                                       }
-                                       break;
-                               }
-                               default: {
-                                       // dmTag->info[1] ; data type  
-                                       // dmTag->info[2] ; data array size 
-                                       if(0<dmTag->info[2]) {
-                                               DEBUGPRINT3("%d : valueType %x arraySize %d\n", j, dmTag->info[1], dmTag->info[2]);
-                                               dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[1]]*dmTag->info[2], "in dmFileRead");
-                                               fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[1]], dmTag->info[2], fpt);
-
-#ifdef II
-                                               //memoryByteSwap(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[1]], dmTag->info[2]);                
-#endif 
-#ifdef DEBUG2
-                                               dmFileValuePrint(stderr, dmTag->value, dmTag->info[1], MIN(16,dmTag->info[2])); 
-#endif
-                                       } else {
-                                               fprintf(stderr, "Not supported array size: %d\n", dmTag->info[2]);
-                                       }
-                                       break;
-                               }
-                       }
-                       break;
-               }
-               default: {
-                       dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[0]], "in dmFileRead");
-                       fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1, fpt);
-#ifdef II
-                       //memoryByteSwap(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1);             
-#endif 
-                       dmFileValuePrint(stderr, dmTag->value, dmTag->info[0], 1); 
-                       //fprintf(stderr, "Not supported tagType: %d\n", dmTag->info[j]);
-                       break;
-               }
-       }
-       DEBUGPRINT("dmFile3TagRead End\n");     
-}
-
-void
-dmFile4TagRead(FILE* fpt, dmFile4Tag* dmTag, char* message, int mode)
-{
-       int j;
-
-       DEBUGPRINT("dmFile4TagRead Start\n");   
-       fread(dmTag->seperator, sizeof(char), 4, fpt); 
-       DEBUGPRINT1("%s\n",dmTag->seperator);
-       if(0!=strncmp(dmTag->seperator, "%%%%", 4)) {
-               fprintf(stderr, "Not supported : Strange!!!\n");
-               exit(EXIT_FAILURE);
-       } else {
-               DEBUGPRINT("\n");
-       }
-       fread(&(dmTag->ninfo), sizeof(dmFileInteger4), 1, fpt); 
-#ifdef II
-       memoryByteSwap(&(dmTag->ninfo), sizeof(dmFileInteger4), 1);             
-#endif
-       DEBUGPRINT1("tag ninfo %d\n", dmTag->ninfo);
-       if(0==dmTag->ninfo) {
-               DEBUGPRINT1("tag ninfo is zero: %d\n", dmTag->ninfo);
-               return;
-       }
-       dmTag->info = (dmFileInteger4*)memoryAllocate(sizeof(dmFileInteger4)*dmTag->ninfo, "in dmFileRead");                                    
-       fread(dmTag->info, sizeof(dmFileInteger4), dmTag->ninfo, fpt);
-#ifdef II
-       memoryByteSwap(dmTag->info, sizeof(dmFileInteger4), dmTag->ninfo);              
-#endif
-       DEBUGPRINT2("tag: info[0] %llX ninfo %lld\n", dmTag->info[0], dmTag->ninfo);
-       switch(dmTag->info[0]) { // dmTag->info[0]: tag data type
-               case dmFileTagDataTypeStruct: {
-                       DEBUGPRINT1("Struct: numEntry %lld\n", dmTag->info[2]);
-                       // dmTag->info[0]       ; 0x0f
-                       // dmTag->info[1]       ; 0x0  Group Name
-                       // dmTag->info[2]       ; num of Entries 
-                       // dmTag->info[2*n + 4] ; data type of value-n
-                       dmTag->value2 = (void*)memoryAllocate(sizeof(void*)*dmTag->info[2], "in dmFileRead");
-                       for(j=0; j<dmTag->info[2]; j++) {
-                               DEBUGPRINT2("value %d type %lld\n", j, dmTag->info[2*j+4]); 
-                               dmTag->value2[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+4]], "in dmFileRead");
-                               fread(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1, fpt);   
-#ifdef II
-                               //memoryByteSwap(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1);             
-#endif 
-#ifdef DEBUG2
-                               dmFileValuePrint(stderr, dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1); 
-#endif
-                       }
-                       break;
-               }
-               case dmFileTagDataTypeArray: {
-                       DEBUGPRINT2("ARRAY datatype(hex) %llx dataType or 0x0f: %llx\n", dmTag->info[0], dmTag->info[1]);
-                       // dmTag->info[0] ; 0x14: array  
-                       // dmTag->info[1] ; data type or 0x0f: Struct 
-                       switch(dmTag->info[1]) {
-                               case dmFileTagDataTypeStruct: { // array of struct : 0x0f
-                                       // dmTag->info[2] : 0x0 GroupNam
-                                       // dmTag->info[3] : num of Entries
-                                       // dmTag->info[4] : 0x0 FieldNum
-                                       // dmTag->info[2*n + 5] : data type of value-n 
-                                       // dmTag->info[2*dmTag->info[3] + 5 + 2] : size of array
-                                       DEBUGPRINT1("EntryNum: %lld\n",  dmTag->info[3]);
-                                       dmTag->value3 = (void**)memoryAllocate(sizeof(void*)*dmTag->info[3], "in dmFileRead");
-                                       for(j=0; j<dmTag->info[3]; j++) {
-                                               DEBUGPRINT3("%d : valueType %llx arraySize %lld\n", j, dmTag->info[2*j+5], dmTag->info[2*dmTag->info[3] + 4 ]);
-                                               dmTag->value3[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+5]]*dmTag->info[2*dmTag->info[3] + 4 ], "in dmFileRead");     
-                                               fread(dmTag->value3[j], __dmFileTagDataTypeSize[dmTag->info[2*j+5]], dmTag->info[2*dmTag->info[3] + 4], fpt);   
-
-#ifdef II
-                                               //memoryByteSwap(dmTag->value3[j], __dmFileTagDataTypeSize[dmTag->info[2*j+5]], dmTag->info[2*dmTag->info[3] + 4]);             
-#endif 
-#ifdef DEBUG2
-                                               dmFileValuePrint(stderr, &(dmTag->value3[j]), dmTag->info[2*j+5], MIN(16,dmTag->info[2*dmTag->info[3] + 4])); 
-#endif
-                                       }
-                                       break;
-                               }
-                               default: {
-                                       // dmTag->info[1] ; data type  
-                                       // dmTag->info[2] ; data array size 
-                                       if(0<dmTag->info[2]) {
-                                               DEBUGPRINT3("%d : valueType %llx arraySize %lld\n", j, dmTag->info[1], dmTag->info[2]);
-                                               dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[1]]*dmTag->info[2], "in dmFileRead");
-                                               fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[1]], dmTag->info[2], fpt);
-
-#ifdef II
-                                               //memoryByteSwap(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[1]], dmTag->info[2]);                
-#endif 
-#ifdef DEBUG2
-                                               dmFileValuePrint(stderr, dmTag->value, dmTag->info[1], MIN(16,dmTag->info[2])); 
-#endif
-                                       } else {
-                                               fprintf(stderr, "Not supported array size: %lld\n", dmTag->info[2]);
-                                       }
-                                       break;
-                               }
-                       }
-                       break;
-               }
-               default: {
-                       dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[0]], "in dmFileRead");
-                       fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1, fpt);
-#ifdef II
-                       //memoryByteSwap(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1);             
-#endif 
-                       dmFileValuePrint(stderr, dmTag->value, dmTag->info[0], 1); 
-                       //fprintf(stderr, "Not supported tagType: %d\n", dmTag->info[j]);
-                       break;
-               }
-       }
-       DEBUGPRINT("dmFile3TagRead End\n");     
-}
-
index 253052d..2c603d7 100644 (file)
@@ -174,6 +174,7 @@ dmFile3TagInfo(FILE* fpt, dmFile3Tag tag, int layer, int mode)
 
                                                        offset = 0;
                                                        for(i=0; i<tag.info[3]; i++) {
+                                                               fprintf(fpt, "%sStructDataPValue-%d: %ld\n", nest, i, tag.pValue3[i]);
                                                                fprintf(fpt, "%sStructDataValue-%d: ", nest, i);
                                                                dmFileValuePrint(fpt, (char*)(tag.value3)+offset, tag.info[5+i*2], tag.info[5+2*tag.info[3]]);
                                                                offset += tag.info[3]*__dmFileTagDataTypeSize[tag.info[5+i*2]];
@@ -183,6 +184,7 @@ dmFile3TagInfo(FILE* fpt, dmFile3Tag tag, int layer, int mode)
                                                default: { // Simple Array
                                                        fprintf(fpt, "%sArrayDataType: %s\n", nest, __dmFileTagDataTypeChar[tag.info[1]]);
                                                        fprintf(fpt, "%sArrayDataNum: %d\n", nest, tag.info[2]);
+                                                       fprintf(fpt, "%sDataPValue: %ld\n", nest, tag.pValue);
                                                        fprintf(fpt, "%sDataValue: ", nest);
                                                        if(0<tag.info[2]) {
                                                                dmFileValuePrint(fpt, tag.value, tag.info[1], tag.info[2]);
@@ -200,12 +202,14 @@ dmFile3TagInfo(FILE* fpt, dmFile3Tag tag, int layer, int mode)
                                                fprintf(fpt, "%sStructDataType-%d: %s\n", nest, i, __dmFileTagDataTypeChar[tag.info[4+i*2]]);
                                        }
                                        for(i=0; i<tag.info[2]; i++) {
+                                               fprintf(fpt, "%sStructDataPValue-%d: %ld\n", nest, i, tag.pValue2[i]);
                                                fprintf(fpt, "%sStructDataValue-%d: ", nest, i);
                                                dmFileValuePrint(fpt, tag.value2, tag.info[4+i*2], 1);
                                        }
                                        break;
                                }
                                default: {
+                                       fprintf(fpt, "%sDataPValue: %ld\n", nest, tag.pValue);
                                        fprintf(fpt, "%sDataValue: ", nest);
                                        dmFileValuePrint(fpt, tag.value, tag.info[0], 1);
                                        break;
@@ -221,6 +225,7 @@ dmFile3TagInfo(FILE* fpt, dmFile3Tag tag, int layer, int mode)
                                                        int offset;
                                                        offset = 0;
                                                        for(i=0; i<tag.info[3]; i++) {
+                                                               fprintf(fpt, "%s%s-%d[%d](%s)-PValue: %ld\n", nest, tag.tagName, i, tag.info[5+2*tag.info[3]], __dmFileTagDataTypeChar[tag.info[5+i*2]], tag.pValue3[i]);
                                                                fprintf(fpt, "%s%s-%d[%d](%s): ", nest, tag.tagName, i, tag.info[5+2*tag.info[3]], __dmFileTagDataTypeChar[tag.info[5+i*2]]);
                                                                dmFileValuePrint(fpt, (char*)(tag.value3)+offset, tag.info[5+i*2], tag.info[5+2*tag.info[3]]);
                                                                offset += tag.info[3]*__dmFileTagDataTypeSize[tag.info[5+i*2]];
@@ -228,6 +233,7 @@ dmFile3TagInfo(FILE* fpt, dmFile3Tag tag, int layer, int mode)
                                                        break;
                                                }
                                                default: { // Simple Array
+                                                       fprintf(fpt, "%s%s[%d](%s)-PValue: %ld\n", nest, tag.tagName, tag.info[2],  __dmFileTagDataTypeChar[tag.info[1]], tag.pValue);
                                                        fprintf(fpt, "%s%s[%d](%s): ", nest, tag.tagName, tag.info[2],  __dmFileTagDataTypeChar[tag.info[1]]);
                                                        if(0<tag.info[2]) {
                                                                dmFileValuePrint(fpt, tag.value, tag.info[1], tag.info[2]);
@@ -241,12 +247,14 @@ dmFile3TagInfo(FILE* fpt, dmFile3Tag tag, int layer, int mode)
                                }
                                case dmFileTagDataTypeStruct: { // Simple Struct
                                        for(i=0; i<tag.info[2]; i++) {
+                                               fprintf(fpt, "%s%s(%d:%s)-PValue: %ld\n", nest, tag.tagName, i,  __dmFileTagDataTypeChar[tag.info[4+i*2]], tag.pValue2[i]);
                                                fprintf(fpt, "%s%s(%d:%s): ", nest, tag.tagName, i,  __dmFileTagDataTypeChar[tag.info[4+i*2]]);
                                                dmFileValuePrint(fpt, tag.value2, tag.info[4+i*2], 1);
                                        }
                                        break;
                                }
                                default: {
+                                       fprintf(fpt, "%s%s(%s)-PValue: %ld\n", nest, tag.tagName,  __dmFileTagDataTypeChar[tag.info[0]], tag.pValue);
                                        fprintf(fpt, "%s%s(%s): ", nest, tag.tagName,  __dmFileTagDataTypeChar[tag.info[0]]);
                                        dmFileValuePrint(fpt, tag.value, tag.info[0], 1);
                                        break;
@@ -370,6 +378,7 @@ dmFile4TagInfo(FILE* fpt, dmFile4Tag tag, int layer, int mode)
 
                                                        offset = 0;
                                                        for(i=0; i<tag.info[3]; i++) {
+                                                               fprintf(fpt, "%sStructDataPValue-%d: %ld\n", nest, i, tag.pValue3[i]);
                                                                fprintf(fpt, "%sStructDataValue-%d: ", nest, i);
                                                                dmFileValuePrint(fpt, (char*)(tag.value3)+offset, tag.info[5+i*2], tag.info[5+2*tag.info[3]]);
                                                                offset += tag.info[3]*__dmFileTagDataTypeSize[tag.info[5+i*2]];
@@ -379,6 +388,7 @@ dmFile4TagInfo(FILE* fpt, dmFile4Tag tag, int layer, int mode)
                                                default: { // Simple Array
                                                        fprintf(fpt, "%sArrayDataType: %s\n", nest, __dmFileTagDataTypeChar[tag.info[1]]);
                                                        fprintf(fpt, "%sArrayDataNum: %lld\n", nest, tag.info[2]);
+                                                       fprintf(fpt, "%sDataPValue: %ld\n", nest, tag.pValue);
                                                        fprintf(fpt, "%sDataValue: ", nest);
                                                        if(0<tag.info[2]) {
                                                                dmFileValuePrint(fpt, tag.value, tag.info[1], tag.info[2]);
@@ -395,12 +405,14 @@ dmFile4TagInfo(FILE* fpt, dmFile4Tag tag, int layer, int mode)
                                                fprintf(fpt, "%sStructDataType-%d: %s\n", nest, i, __dmFileTagDataTypeChar[tag.info[4+i*2]]);
                                        }
                                        for(i=0; i<tag.info[2]; i++) {
+                                               fprintf(fpt, "%sStructDataPValue-%d: %ld\n", nest, i, tag.pValue2[i]);
                                                fprintf(fpt, "%sStructDataValue-%d: ", nest, i);
                                                dmFileValuePrint(fpt, tag.value2, tag.info[4+i*2], 1);
                                        }
                                        break;
                                }
                                default: {
+                                       fprintf(fpt, "%sDataPValue: %ld\n", nest, tag.pValue);
                                        fprintf(fpt, "%sDataValue: ", nest);
                                        dmFileValuePrint(fpt, tag.value, tag.info[0], 1);
                                        break;
@@ -417,6 +429,7 @@ dmFile4TagInfo(FILE* fpt, dmFile4Tag tag, int layer, int mode)
                                                        int offset;
                                                        offset = 0;
                                                        for(i=0; i<tag.info[3]; i++) {
+                                                               fprintf(fpt, "%s%s-%d[%lld](%s)-PValue: %ld\n", nest, tag.tagName, i, tag.info[5+2*tag.info[3]], __dmFileTagDataTypeChar[tag.info[5+i*2]], tag.pValue3[i]);
                                                                fprintf(fpt, "%s%s-%d[%lld](%s): ", nest, tag.tagName, i, tag.info[5+2*tag.info[3]], __dmFileTagDataTypeChar[tag.info[5+i*2]]);
                                                                dmFileValuePrint(fpt, (char*)(tag.value3)+offset, tag.info[5+i*2], tag.info[5+2*tag.info[3]]);
                                                                offset += tag.info[3]*__dmFileTagDataTypeSize[tag.info[5+i*2]];
@@ -424,6 +437,7 @@ dmFile4TagInfo(FILE* fpt, dmFile4Tag tag, int layer, int mode)
                                                        break;
                                                }
                                                default: { // Simple Array
+                                                       fprintf(fpt, "%s%s[%lld](%s)-PValue: %ld\n", nest, tag.tagName, tag.info[2],  __dmFileTagDataTypeChar[tag.info[1]], tag.pValue);
                                                        fprintf(fpt, "%s%s[%lld](%s): ", nest, tag.tagName, tag.info[2],  __dmFileTagDataTypeChar[tag.info[1]]);
                                                        if(0<tag.info[2]) {
                                                                dmFileValuePrint(fpt, tag.value, tag.info[1], tag.info[2]);
@@ -437,12 +451,14 @@ dmFile4TagInfo(FILE* fpt, dmFile4Tag tag, int layer, int mode)
                                }
                                case dmFileTagDataTypeStruct: { // Simple Struct
                                        for(i=0; i<tag.info[2]; i++) {
+                                               fprintf(fpt, "%s%s(%d:%s)-PValue: %ld\n", nest, tag.tagName, i,  __dmFileTagDataTypeChar[tag.info[4+i*2]], tag.pValue2[i]);
                                                fprintf(fpt, "%s%s(%d:%s): ", nest, tag.tagName, i,  __dmFileTagDataTypeChar[tag.info[4+i*2]]);
                                                dmFileValuePrint(fpt, tag.value2, tag.info[4+i*2], 1);
                                        }
                                        break;
                                }
                                default: {
+                                       fprintf(fpt, "%s%s-PValue: %ld\n", nest, tag.tagName, tag.pValue);
                                        fprintf(fpt, "%s%s: ", nest, tag.tagName);
                                        dmFileValuePrint(fpt, tag.value, tag.info[0], 1);
                                        break;
@@ -456,3 +472,5 @@ dmFile4TagInfo(FILE* fpt, dmFile4Tag tag, int layer, int mode)
                }
        }
 }
+
+
index da4eaba..fa89219 100644 (file)
@@ -373,10 +373,12 @@ dmFile3TagRead(FILE* fpt, dmFile3Tag* dmTag, char* message, int mode)
                        // dmTag->info[1]       ; 0x0  Group Name
                        // dmTag->info[2]       ; num of Entries 
                        // dmTag->info[2*n + 4] ; data type of value-n
-                       dmTag->value2 = (void*)memoryAllocate(sizeof(void*)*dmTag->info[2], "in dmFileRead");
+                       dmTag->pValue2 =  (long*)memoryAllocate(sizeof(long)*dmTag->info[2], "in dmFileRead");
+                       dmTag->value2 = (void**)memoryAllocate(sizeof(void*)*dmTag->info[2], "in dmFileRead");
                        for(j=0; j<dmTag->info[2]; j++) {
                                DEBUGPRINT2("value %d type %d\n", j, dmTag->info[2*j+4]); 
                                dmTag->value2[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+4]], "in dmFileRead");
+                               dmTag->pValue2[j] = ftell(fpt);
                                fread(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1, fpt);   
 #ifdef II
                                //memoryByteSwap(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1);             
@@ -399,10 +401,12 @@ dmFile3TagRead(FILE* fpt, dmFile3Tag* dmTag, char* message, int mode)
                                        // dmTag->info[2*n + 5] : data type of value-n 
                                        // dmTag->info[2*dmTag->info[3] + 5 + 2] : size of array
                                        DEBUGPRINT1("EntryNum: %d\n",  dmTag->info[3]);
+                                       dmTag->pValue3 = (long*)memoryAllocate(sizeof(long)*dmTag->info[3], "in dmFileRead");
                                        dmTag->value3 = (void**)memoryAllocate(sizeof(void*)*dmTag->info[3], "in dmFileRead");
                                        for(j=0; j<dmTag->info[3]; j++) {
                                                DEBUGPRINT3("%d : valueType %x arraySize %d\n", j, dmTag->info[2*j+5], dmTag->info[2*dmTag->info[3] + 4 ]);
                                                dmTag->value3[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+5]]*dmTag->info[2*dmTag->info[3] + 4 ], "in dmFileRead");     
+                                               dmTag->pValue3[j] = ftell(fpt);
                                                fread(dmTag->value3[j], __dmFileTagDataTypeSize[dmTag->info[2*j+5]], dmTag->info[2*dmTag->info[3] + 4], fpt);   
 
 #ifdef II
@@ -420,6 +424,7 @@ dmFile3TagRead(FILE* fpt, dmFile3Tag* dmTag, char* message, int mode)
                                        if(0<dmTag->info[2]) {
                                                DEBUGPRINT3("%d : valueType %x arraySize %d\n", j, dmTag->info[1], dmTag->info[2]);
                                                dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[1]]*dmTag->info[2], "in dmFileRead");
+                                               dmTag->pValue = ftell(fpt);
                                                fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[1]], dmTag->info[2], fpt);
 
 #ifdef II
@@ -438,6 +443,7 @@ dmFile3TagRead(FILE* fpt, dmFile3Tag* dmTag, char* message, int mode)
                }
                default: {
                        dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[0]], "in dmFileRead");
+                       dmTag->pValue = ftell(fpt);
                        fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1, fpt);
 #ifdef II
                        //memoryByteSwap(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1);             
@@ -486,10 +492,12 @@ dmFile4TagRead(FILE* fpt, dmFile4Tag* dmTag, char* message, int mode)
                        // dmTag->info[1]       ; 0x0  Group Name
                        // dmTag->info[2]       ; num of Entries 
                        // dmTag->info[2*n + 4] ; data type of value-n
-                       dmTag->value2 = (void*)memoryAllocate(sizeof(void*)*dmTag->info[2], "in dmFileRead");
+                       dmTag->pValue2 = (long*)memoryAllocate(sizeof(long)*dmTag->info[2], "in dmFileRead");
+                       dmTag->value2 = (void**)memoryAllocate(sizeof(void*)*dmTag->info[2], "in dmFileRead");
                        for(j=0; j<dmTag->info[2]; j++) {
                                DEBUGPRINT2("value %d type %lld\n", j, dmTag->info[2*j+4]); 
                                dmTag->value2[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+4]], "in dmFileRead");
+                               dmTag->pValue2[j] = ftell(fpt);
                                fread(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1, fpt);   
 #ifdef II
                                //memoryByteSwap(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1);             
@@ -512,10 +520,12 @@ dmFile4TagRead(FILE* fpt, dmFile4Tag* dmTag, char* message, int mode)
                                        // dmTag->info[2*n + 5] : data type of value-n 
                                        // dmTag->info[2*dmTag->info[3] + 5 + 2] : size of array
                                        DEBUGPRINT1("EntryNum: %lld\n",  dmTag->info[3]);
+                                       dmTag->pValue3 = (long*)memoryAllocate(sizeof(long)*dmTag->info[3], "in dmFileRead");
                                        dmTag->value3 = (void**)memoryAllocate(sizeof(void*)*dmTag->info[3], "in dmFileRead");
                                        for(j=0; j<dmTag->info[3]; j++) {
                                                DEBUGPRINT3("%d : valueType %llx arraySize %lld\n", j, dmTag->info[2*j+5], dmTag->info[2*dmTag->info[3] + 4 ]);
                                                dmTag->value3[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+5]]*dmTag->info[2*dmTag->info[3] + 4 ], "in dmFileRead");     
+                                               dmTag->pValue3[j] = ftell(fpt);
                                                fread(dmTag->value3[j], __dmFileTagDataTypeSize[dmTag->info[2*j+5]], dmTag->info[2*dmTag->info[3] + 4], fpt);   
 
 #ifdef II
@@ -533,6 +543,7 @@ dmFile4TagRead(FILE* fpt, dmFile4Tag* dmTag, char* message, int mode)
                                        if(0<dmTag->info[2]) {
                                                DEBUGPRINT4("%d ; valueType: %llx arraySize: %lld Each: %zu\n", j, dmTag->info[1], dmTag->info[2], __dmFileTagDataTypeSize[dmTag->info[1]]);
                                                dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[1]]*dmTag->info[2], "in dmFileRead");
+                                               dmTag->pValue = ftell(fpt);
                                                fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[1]], dmTag->info[2], fpt);
 
 #ifdef II
@@ -552,6 +563,7 @@ dmFile4TagRead(FILE* fpt, dmFile4Tag* dmTag, char* message, int mode)
                default: {
                        DEBUGPRINT3("Single Ently %d ; valueType: %llx valueSize: %zu\n", j, dmTag->info[0], __dmFileTagDataTypeSize[dmTag->info[0]]);
                        dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[0]], "in dmFileRead");
+                       dmTag->pValue = ftell(fpt);
                        fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1, fpt);
 #ifdef II
                        //memoryByteSwap(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1);             
index 432deb8..0dbaa1e 100644 (file)
@@ -19,7 +19,6 @@ static char __sccs_id[] = "%Z%dmFileUtil ver%I%; Date:%D% %Z%";
 #include "genUtil.h"
 #include "../inc/dmFile.h"
 
-
 void 
 dmFileValuePrint(FILE* fpt, void* value, dmFileTagDataType valueType, int n)
 {
index c5d1461..80e2bcc 100644 (file)
@@ -44,6 +44,20 @@ dmFile3TagDirectory2mrc(dmFile* dm, dmFile3TagDirectory tagDir, int layer, int m
        dmFile3TagDirectory* curDir; 
        mrcImage* curImage;
 
+       switch(mode) {
+               case 0: {
+                       curImage = dm->image;
+                       break;
+               }
+               case 1: {
+                       curImage = dm->thumnail;
+                       break;
+               }
+               default: {
+                       break;
+               }
+       }
+
        //fprintf(fpt, "%snumberOfTags: %lld\n", nest, tagDir.numberOfTags);
        for(i=0; i<tagDir.numberOfTags; i++) {
                if(0<tagDir.Tags[i].tagNameLength) {
@@ -82,19 +96,15 @@ dmFile3TagDirectory2mrc(dmFile* dm, dmFile3TagDirectory tagDir, int layer, int m
                                        DEBUGPRINT2("%d: %s\n", j, curDir->Tags[j].tagName);
                                        SSWITCH(curDir->Tags[j].tagName)
                                                SCASE("Dimensions") {
-                                                       //curImage->HeaderN.x = curDir->Tags[j].tagDir->Tags[0];                        
-                                                       //curImage->HeaderN.y = curDir->Tags[j].tagDir->Tags[1];                                
-                                                       //curImage->HeaderN.z = 1;                              
+                                               //      curImage->HeaderN.x = curDir->Tags[j].tagDir->Tags[0];                  
+                                               //      curImage->HeaderN.y = curDir->Tags[j].tagDir->Tags[1];                          
+                                               //      curImage->HeaderN.z = 1;                                
                                                        SBREAK;
                                                }
                                                SDEFAULT {
                                                }
                                        SSWITCHEND      
 
-                                       //curImage->HeaderN.x =                                 
-                                       //curImage->HeaderN.y =                                 
-                                       //curImage->HeaderN.z =                                 
-
                                }       
                                return;
                        }