• R/O
  • HTTP
  • SSH
  • HTTPS

base: Commit

This repository is a base of Eos.


Commit MetaInfo

Revision6da380d6bc6fe2b056bd39f301c82a87f338170e (tree)
Time2015-06-18 09:18:43
AuthorTakuo Yasunaga <yasunaga@bio....>
CommiterTakuo Yasunaga

Log Message

dmFileInfo: pointer added

Change Summary

Incremental Difference

--- a/bin/wish/Display2/tclIndex
+++ b/bin/wish/Display2/tclIndex
@@ -49,6 +49,7 @@ set auto_index(menuMultiRoiOKCommand) [list source [file join $dir Display2MenuR
4949 set auto_index(menuMultiRoiAllDeleteCommand) [list source [file join $dir Display2MenuROI.wish]]
5050 set auto_index(menuMultiRoiDeleteCommand) [list source [file join $dir Display2MenuROI.wish]]
5151 set auto_index(menuEditCreate) [list source [file join $dir Display2MenuROI.wish]]
52+set auto_index(fft2dCmd) [list source [file join $dir fft2dCmd.wish]]
5253 set auto_index(layerLineRecreate) [list source [file join $dir LayerLineUtil.wish]]
5354 set auto_index(layerLineCreate) [list source [file join $dir LayerLineUtil.wish]]
5455 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]]
131132 set auto_index(sectionClear) [list source [file join $dir SectionUtil.wish]]
132133 set auto_index(sectionChange) [list source [file join $dir SectionUtil.wish]]
133134 set auto_index(unitCellRecreate) [list source [file join $dir UnitCell.wish]]
134-set auto_index(fft2dCmd) [list source [file join $dir fft2dCmd.wish]]
--- a/lib/tclIndex
+++ b/lib/tclIndex
@@ -6,75 +6,6 @@
66 # element name is the name of a command and the value is
77 # a script that loads the command.
88
9-set auto_index(fileSaveSureWin) [list source [file join $dir fileSave.wish]]
10-set auto_index(fileSaveSureOK) [list source [file join $dir fileSave.wish]]
11-set auto_index(fileSaveSureCancel) [list source [file join $dir fileSave.wish]]
12-set auto_index(fileSaveSureWinResources) [list source [file join $dir fileSave.wish]]
13-set auto_index(fileSave) [list source [file join $dir fileSave.wish]]
14-set auto_index(fileSaveResources) [list source [file join $dir fileSave.wish]]
15-set auto_index(fileSaveBindings) [list source [file join $dir fileSave.wish]]
16-set auto_index(fileSaveList) [list source [file join $dir fileSave.wish]]
17-set auto_index(fileSaveOK) [list source [file join $dir fileSave.wish]]
18-set auto_index(fileSaveCancel) [list source [file join $dir fileSave.wish]]
19-set auto_index(fileSaveClick) [list source [file join $dir fileSave.wish]]
20-set auto_index(fileSaveTake) [list source [file join $dir fileSave.wish]]
21-set auto_index(fileSaveComplete) [list source [file join $dir fileSave.wish]]
22-set auto_index(fileSelect) [list source [file join $dir fileSelect.wish]]
23-set auto_index(fileSelectResources) [list source [file join $dir fileSelect.wish]]
24-set auto_index(fileSelectBindings) [list source [file join $dir fileSelect.wish]]
25-set auto_index(fileSelectList) [list source [file join $dir fileSelect.wish]]
26-set auto_index(fileSelectOK) [list source [file join $dir fileSelect.wish]]
27-set auto_index(fileSelectCancel) [list source [file join $dir fileSelect.wish]]
28-set auto_index(fileSelectClick) [list source [file join $dir fileSelect.wish]]
29-set auto_index(fileSelectTake) [list source [file join $dir fileSelect.wish]]
30-set auto_index(fileSelectComplete) [list source [file join $dir fileSelect.wish]]
31-set auto_index(colormapSet) [list source [file join $dir Colormap.wish]]
32-set auto_index(seqFileTemplateChange) [list source [file join $dir seqFileSelect.wish]]
33-set auto_index(seqFileSelect) [list source [file join $dir seqFileSelect.wish]]
34-set auto_index(seqFileSelectBindings) [list source [file join $dir seqFileSelect.wish]]
35-set auto_index(seqFileSelectList) [list source [file join $dir seqFileSelect.wish]]
36-set auto_index(seqFileTemplateSelectOK) [list source [file join $dir seqFileSelect.wish]]
37-set auto_index(seqFileTemplateSelectComplete) [list source [file join $dir seqFileSelect.wish]]
38-set auto_index(seqFileSelectOK) [list source [file join $dir seqFileSelect.wish]]
39-set auto_index(seqFileSelectComplete) [list source [file join $dir seqFileSelect.wish]]
40-set auto_index(seqFileSelectPrev) [list source [file join $dir seqFileSelect.wish]]
41-set auto_index(seqFileSelectNext) [list source [file join $dir seqFileSelect.wish]]
42-set auto_index(seqFileSelectCancel) [list source [file join $dir seqFileSelect.wish]]
43-set auto_index(seqFileSelectClick) [list source [file join $dir seqFileSelect.wish]]
44-set auto_index(seqFileSelectTake) [list source [file join $dir seqFileSelect.wish]]
45-set auto_index(CheckButtonsCreateWithPack) [list source [file join $dir VariousButton.wish]]
46-set auto_index(RadioButtonsCreateWithPack) [list source [file join $dir VariousButton.wish]]
47-set auto_index(RadioButtonsCreateWithPackWithCommand) [list source [file join $dir VariousButton.wish]]
48-set auto_index(RadioButtonsCreate) [list source [file join $dir VariousButton.wish]]
49-set auto_index(CheckButtonsCreate) [list source [file join $dir VariousButton.wish]]
50-set auto_index(CommandEntry) [list source [file join $dir CommandEntry.wish]]
51-set auto_index(CommandEntryWithSelection) [list source [file join $dir CommandEntry.wish]]
52-set auto_index(CommandEntryWithSelectionEntrySet) [list source [file join $dir CommandEntry.wish]]
53-set auto_index(CommandEntryWithUpDown) [list source [file join $dir CommandEntry.wish]]
54-set auto_index(CommandEntryWithUpDownUp) [list source [file join $dir CommandEntry.wish]]
55-set auto_index(CommandEntryWithUpDownDown) [list source [file join $dir CommandEntry.wish]]
56-set auto_index(bltResetBindings) [list source [file join $dir graphFeature.wish]]
57-set auto_index(bltActivateLegend) [list source [file join $dir graphFeature.wish]]
58-set auto_index(SetActiveLegend) [list source [file join $dir graphFeature.wish]]
59-set auto_index(SetCrosshairs) [list source [file join $dir graphFeature.wish]]
60-set auto_index(bltFindElement) [list source [file join $dir graphFeature.wish]]
61-set auto_index(bltFlashPoint) [list source [file join $dir graphFeature.wish]]
62-set auto_index(SetClosestPoint) [list source [file join $dir graphFeature.wish]]
63-set auto_index(bltGetCoords) [list source [file join $dir graphFeature.wish]]
64-set auto_index(bltGetAnchor) [list source [file join $dir graphFeature.wish]]
65-set auto_index(bltGetAnchorX) [list source [file join $dir graphFeature.wish]]
66-set auto_index(bltBox) [list source [file join $dir graphFeature.wish]]
67-set auto_index(bltBoxX) [list source [file join $dir graphFeature.wish]]
68-set auto_index(bltScan) [list source [file join $dir graphFeature.wish]]
69-set auto_index(bltScanX) [list source [file join $dir graphFeature.wish]]
70-set auto_index(bltZoom) [list source [file join $dir graphFeature.wish]]
71-set auto_index(bltZoomX) [list source [file join $dir graphFeature.wish]]
72-set auto_index(SetZoom) [list source [file join $dir graphFeature.wish]]
73-set auto_index(SetZoomX) [list source [file join $dir graphFeature.wish]]
74-set auto_index(SetPrint) [list source [file join $dir graphFeature.wish]]
75-set auto_index(NotSupportedCommand) [list source [file join $dir tclUtil.wish]]
76-set auto_index(Canvas) [list source [file join $dir Canvas.wish]]
77-set auto_index(scrolledCanvas) [list source [file join $dir Canvas.wish]]
789 set auto_index(Blt_ActiveLegend) [list source [file join $dir bltGraph.wish]]
7910 set auto_index(Blt_Crosshairs) [list source [file join $dir bltGraph.wish]]
8011 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]]
10233 set auto_index(::blt::Box) [list source [file join $dir bltGraph.wish]]
10334 set auto_index(Blt_PostScriptDialog) [list source [file join $dir bltGraph.wish]]
10435 set auto_index(::blt::ResetPostScript) [list source [file join $dir bltGraph.wish]]
105-set auto_index(fileCanBeOverwritten) [list source [file join $dir fileUtil.wish]]
106-set auto_index(relativePathGet) [list source [file join $dir fileUtil.wish]]
36+set auto_index(Canvas) [list source [file join $dir Canvas.wish]]
37+set auto_index(scrolledCanvas) [list source [file join $dir Canvas.wish]]
38+set auto_index(colormapSet) [list source [file join $dir Colormap.wish]]
39+set auto_index(CommandEntry) [list source [file join $dir CommandEntry.wish]]
40+set auto_index(CommandEntryWithSelection) [list source [file join $dir CommandEntry.wish]]
41+set auto_index(CommandEntryWithSelectionEntrySet) [list source [file join $dir CommandEntry.wish]]
42+set auto_index(CommandEntryWithUpDown) [list source [file join $dir CommandEntry.wish]]
43+set auto_index(CommandEntryWithUpDownUp) [list source [file join $dir CommandEntry.wish]]
44+set auto_index(CommandEntryWithUpDownDown) [list source [file join $dir CommandEntry.wish]]
45+set auto_index(eosCommandExecute) [list source [file join $dir commandUtil.wish]]
10746 set auto_index(::CTF::Init) [list source [file join $dir ctfInfo.wish]]
10847 set auto_index(::CTF::Win) [list source [file join $dir ctfInfo.wish]]
10948 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
13574 set auto_index(::CTF::ctfInfoScatteringCalc) [list source [file join $dir ctfInfo.wish]]
13675 set auto_index(::CTF::ctfInfoListGet) [list source [file join $dir ctfInfo.wish]]
13776 set auto_index(::CTF::ctfInfoAppend) [list source [file join $dir ctfInfo.wish]]
138-set auto_index(eosCommandExecute) [list source [file join $dir commandUtil.wish]]
77+set auto_index(fileSaveSureWin) [list source [file join $dir fileSave.wish]]
78+set auto_index(fileSaveSureOK) [list source [file join $dir fileSave.wish]]
79+set auto_index(fileSaveSureCancel) [list source [file join $dir fileSave.wish]]
80+set auto_index(fileSaveSureWinResources) [list source [file join $dir fileSave.wish]]
81+set auto_index(fileSave) [list source [file join $dir fileSave.wish]]
82+set auto_index(fileSaveResources) [list source [file join $dir fileSave.wish]]
83+set auto_index(fileSaveBindings) [list source [file join $dir fileSave.wish]]
84+set auto_index(fileSaveList) [list source [file join $dir fileSave.wish]]
85+set auto_index(fileSaveOK) [list source [file join $dir fileSave.wish]]
86+set auto_index(fileSaveCancel) [list source [file join $dir fileSave.wish]]
87+set auto_index(fileSaveClick) [list source [file join $dir fileSave.wish]]
88+set auto_index(fileSaveTake) [list source [file join $dir fileSave.wish]]
89+set auto_index(fileSaveComplete) [list source [file join $dir fileSave.wish]]
90+set auto_index(fileSelect) [list source [file join $dir fileSelect.wish]]
91+set auto_index(fileSelectResources) [list source [file join $dir fileSelect.wish]]
92+set auto_index(fileSelectBindings) [list source [file join $dir fileSelect.wish]]
93+set auto_index(fileSelectList) [list source [file join $dir fileSelect.wish]]
94+set auto_index(fileSelectOK) [list source [file join $dir fileSelect.wish]]
95+set auto_index(fileSelectCancel) [list source [file join $dir fileSelect.wish]]
96+set auto_index(fileSelectClick) [list source [file join $dir fileSelect.wish]]
97+set auto_index(fileSelectTake) [list source [file join $dir fileSelect.wish]]
98+set auto_index(fileSelectComplete) [list source [file join $dir fileSelect.wish]]
99+set auto_index(fileCanBeOverwritten) [list source [file join $dir fileUtil.wish]]
100+set auto_index(relativePathGet) [list source [file join $dir fileUtil.wish]]
101+set auto_index(bltResetBindings) [list source [file join $dir graphFeature.wish]]
102+set auto_index(bltActivateLegend) [list source [file join $dir graphFeature.wish]]
103+set auto_index(SetActiveLegend) [list source [file join $dir graphFeature.wish]]
104+set auto_index(SetCrosshairs) [list source [file join $dir graphFeature.wish]]
105+set auto_index(bltFindElement) [list source [file join $dir graphFeature.wish]]
106+set auto_index(bltFlashPoint) [list source [file join $dir graphFeature.wish]]
107+set auto_index(SetClosestPoint) [list source [file join $dir graphFeature.wish]]
108+set auto_index(bltGetCoords) [list source [file join $dir graphFeature.wish]]
109+set auto_index(bltGetAnchor) [list source [file join $dir graphFeature.wish]]
110+set auto_index(bltGetAnchorX) [list source [file join $dir graphFeature.wish]]
111+set auto_index(bltBox) [list source [file join $dir graphFeature.wish]]
112+set auto_index(bltBoxX) [list source [file join $dir graphFeature.wish]]
113+set auto_index(bltScan) [list source [file join $dir graphFeature.wish]]
114+set auto_index(bltScanX) [list source [file join $dir graphFeature.wish]]
115+set auto_index(bltZoom) [list source [file join $dir graphFeature.wish]]
116+set auto_index(bltZoomX) [list source [file join $dir graphFeature.wish]]
117+set auto_index(SetZoom) [list source [file join $dir graphFeature.wish]]
118+set auto_index(SetZoomX) [list source [file join $dir graphFeature.wish]]
119+set auto_index(SetPrint) [list source [file join $dir graphFeature.wish]]
120+set auto_index(seqFileTemplateChange) [list source [file join $dir seqFileSelect.wish]]
121+set auto_index(seqFileSelect) [list source [file join $dir seqFileSelect.wish]]
122+set auto_index(seqFileSelectBindings) [list source [file join $dir seqFileSelect.wish]]
123+set auto_index(seqFileSelectList) [list source [file join $dir seqFileSelect.wish]]
124+set auto_index(seqFileTemplateSelectOK) [list source [file join $dir seqFileSelect.wish]]
125+set auto_index(seqFileTemplateSelectComplete) [list source [file join $dir seqFileSelect.wish]]
126+set auto_index(seqFileSelectOK) [list source [file join $dir seqFileSelect.wish]]
127+set auto_index(seqFileSelectComplete) [list source [file join $dir seqFileSelect.wish]]
128+set auto_index(seqFileSelectPrev) [list source [file join $dir seqFileSelect.wish]]
129+set auto_index(seqFileSelectNext) [list source [file join $dir seqFileSelect.wish]]
130+set auto_index(seqFileSelectCancel) [list source [file join $dir seqFileSelect.wish]]
131+set auto_index(seqFileSelectClick) [list source [file join $dir seqFileSelect.wish]]
132+set auto_index(seqFileSelectTake) [list source [file join $dir seqFileSelect.wish]]
133+set auto_index(NotSupportedCommand) [list source [file join $dir tclUtil.wish]]
134+set auto_index(CheckButtonsCreateWithPack) [list source [file join $dir VariousButton.wish]]
135+set auto_index(RadioButtonsCreateWithPack) [list source [file join $dir VariousButton.wish]]
136+set auto_index(RadioButtonsCreateWithPackWithCommand) [list source [file join $dir VariousButton.wish]]
137+set auto_index(RadioButtonsCreate) [list source [file join $dir VariousButton.wish]]
138+set auto_index(CheckButtonsCreate) [list source [file join $dir VariousButton.wish]]
--- a/src/Objects/DataManip/dmFile/inc/dmFile.h
+++ b/src/Objects/DataManip/dmFile/inc/dmFile.h
@@ -136,6 +136,8 @@ typedef struct dmFile3Tag {
136136 dmFileInteger4 ninfo;
137137 dmFileInteger4* info;
138138 long pValue; // Offset
139+ long* pValue2; // Offset
140+ long* pValue3; // Offset
139141 void* value; // Array or value
140142 void** value2; // Struct
141143 void** value3; // Array of Struct
@@ -153,6 +155,8 @@ typedef struct dmFile4Tag {
153155 dmFileInteger8 ninfo;
154156 dmFileInteger8* info;
155157 long pValue;
158+ long* pValue2;
159+ long* pValue3;
156160 void* value; // Array or value
157161 void** value2; // Struct
158162 void** value3; // Array of Struct
@@ -186,7 +190,7 @@ typedef struct dmFile {
186190 // Tail
187191 dmFileInteger8 Tail;
188192
189- //
193+ // Control
190194 mrcImage thumnail;
191195 mrcImage image;
192196 } dmFile;
@@ -240,6 +244,8 @@ extern void dmFile4TagDirectory2mrc(dmFile* fpt, dmFile4TagDirectory tagDir, int
240244 // in dmFileInit.c
241245 extern void dmFileInit(dmFile* dm, int mode);
242246
247+// in ldm2mrc.c
248+
243249 /* prototype end */
244250
245251 #ifdef __cplusplus
--- a/src/Objects/DataManip/dmFile/src/:
+++ /dev/null
@@ -1,564 +0,0 @@
1-/*
2-# %M% %Y% %I%
3-# The latest update : %G% at %U%
4-#
5-#%Z% dmFileRead ver %I%
6-#%Z% Created by
7-#%Z%
8-#%Z% Usage : dmFileRead
9-#%Z% Attention
10-#%Z%
11-*/
12-static char __sccs_id[] = "%Z%dmFileRead ver%I%; Date:%D% %Z%";
13-#define DEBUG
14-#define DEBUG2
15-#include "genUtil.h"
16-#include "Memory.h"
17-#include "../inc/dmFile.h"
18-
19-void
20-dmFileRead(FILE* fpt, dmFile* dm, char* message, int mode)
21-{
22- int i, j;
23- dmFile3Tag* dmTag3;
24- dmFile4Tag* dmTag4;
25-
26- dmFileHeaderTailRead(fpt, dm, message, mode);
27-
28- switch(dm->version) {
29- case 3: {
30- // Header
31- dmFile3HeaderRead(fpt, dm, message, mode);
32- // Root Tag
33- dmFile3TagDirectoryHeaderRead(fpt, &(dm->RootTag3), message, mode);
34- for(i=0; i<dm->RootTag3.numberOfTags; i++) {
35- dmTag3 = &(dm->RootTag3.Tags[i]);
36- DEBUGPRINT2("Tags-i: %d/%d\n", i, dm->RootTag3.numberOfTags);
37- dmFile3TagHeaderRead(fpt, &(dm->RootTag3.Tags[i]), message, mode);
38- switch(dm->RootTag3.Tags[i].tagID) {
39- case dmFileTagDirTypeTag: { // tag
40- DEBUGPRINT("TAG\n");
41- dmFile3TagRead(fpt, &(dm->RootTag3.Tags[i]), message, mode);
42- break;
43- }
44- case dmFileTagDirTypeTagDir: { // tag directories
45- DEBUGPRINT("TAG DIRECTORIES\n");
46- dm->RootTag3.Tags[i].tagDir = memoryAllocate(sizeof(dmFile3TagDirectory), message);
47- dmFile3TagDirectoryRead(fpt, dm->RootTag3.Tags[i].tagDir, message, mode);
48- break;
49- }
50- case dmFileTagDirTypeFileEnd: {
51- DEBUGPRINT("FILE END\n")
52- return;
53- break;
54- }
55- default: {
56- //dmFile3TagRead(fpt, &(dm->RootTag3.Tags[i]), message, mode);
57- fprintf(stderr, "Not supported tagID(hex): %X\n", dm->RootTag3.Tags[i].tagID);
58- //exit(EXIT_FAILURE);
59- break;
60- }
61- }
62- }
63- break;
64- }
65- case 4: {
66- // Header
67- dmFile4HeaderRead(fpt, dm, message, mode);
68- // Root Tag
69- dmFile4TagDirectoryHeaderRead(fpt, &(dm->RootTag4), message, mode);
70- DEBUGPRINT1("dm->RootTag4.numberOfTags: %lld\n", dm->RootTag4.numberOfTags);
71- for(i=0; i<dm->RootTag4.numberOfTags; i++) {
72- dmTag4 = &(dm->RootTag4.Tags[i]);
73- DEBUGPRINT2("Tags-i: %d/%lld\n", i, dm->RootTag4.numberOfTags);
74- dmFile4TagHeaderRead(fpt, &(dm->RootTag4.Tags[i]), message, mode);
75- switch(dm->RootTag4.Tags[i].tagID) {
76- case dmFileTagDirTypeTag: { // tag
77- DEBUGPRINT("TAG\n");
78- dmFile4TagRead(fpt, &(dm->RootTag4.Tags[i]), message, mode);
79- break;
80- }
81- case dmFileTagDirTypeTagDir: { // tag directories
82- DEBUGPRINT("TAG DIRECTORIES\n");
83- dm->RootTag4.Tags[i].tagDir = memoryAllocate(sizeof(dmFile4TagDirectory), message);
84- dmFile4TagDirectoryRead(fpt, dm->RootTag4.Tags[i].tagDir, message, mode);
85- break;
86- }
87- case dmFileTagDirTypeFileEnd: {
88- DEBUGPRINT("FILE END\n")
89- return;
90- break;
91- }
92- default: {
93- //dmFile3TagRead(fpt, &(dm->RootTag4.Tags[i]), message, mode);
94- fprintf(stderr, "Not supported tagID(hex): %X\n", dm->RootTag4.Tags[i].tagID);
95- //exit(EXIT_FAILURE);
96- break;
97- }
98- }
99- }
100- break;
101- }
102- default: {
103- fprintf(stderr, "Not supported version: %d\n", dm->version);
104- break;
105- }
106- }
107-}
108-
109-
110-void
111-dmFileHeaderTailRead(FILE* fpt, dmFile* dm, char* message, int mode)
112-{
113- DEBUGPRINT("dmFileHeaderTailRead\n");
114- fseek(fpt, 0L, SEEK_SET);
115- fread(&(dm->version), sizeof(dmFileInteger4), 1, fpt);
116-#ifdef II
117- memoryByteSwap(&(dm->version), sizeof(dmFileInteger4), 1);
118-#endif
119- DEBUGPRINT1("version: %d\n", dm->version);
120-
121- fseek(fpt, -8L, SEEK_END);
122- fread(&(dm->Tail), sizeof(dmFileInteger8), 1, fpt);
123- if(dm->Tail!=0 && 3<=dm->version) {
124- fprintf(stderr, "This file is not dm3/dm4: version %d \n", dm->version);
125- exit(EXIT_FAILURE);
126- }
127-}
128-
129-void
130-dmFile3HeaderRead(FILE* fpt, dmFile* dm, char* message, int mode)
131-{
132- DEBUGPRINT("dmFile3HeaderRead start\n");
133- // Header
134- fseek(fpt, 0L, SEEK_SET);
135- if(12!=sizeof(dm->Header3)) {
136- fprintf(stderr, "Size is strange: %lu expected 12\n", sizeof(dm->Header4));
137- fread(&(dm->Header3.version), sizeof(dm->Header3.version), 1, fpt);
138- fread(&(dm->Header3.rootLength), sizeof(dm->Header3.rootLength), 1, fpt);
139- fread(&(dm->Header3.byteOrder), sizeof(dm->Header3.byteOrder), 1, fpt);
140- } else {
141- DEBUGPRINT1("Header3 Size: %lu expect 12\n", sizeof(dm->Header4));
142- fread(&(dm->Header3), sizeof(dm->Header3), 1, fpt);
143- }
144-#ifdef II
145- memoryByteSwap(&(dm->Header3.version), sizeof(dmFileInteger4), 1);
146- memoryByteSwap(&(dm->Header3.rootLength), sizeof(dmFileInteger4), 1);
147- memoryByteSwap(&(dm->Header3.byteOrder), sizeof(dmFileInteger4), 1);
148-#endif
149- DEBUGPRINT1("version: %d\n", dm->Header3.version);
150- DEBUGPRINT1("RootLength: %d\n", dm->Header3.rootLength);
151- DEBUGPRINT1("ByteOrder: %d\n", dm->Header3.byteOrder);
152- DEBUGPRINT("dmFile3HeaderRead end\n");
153-}
154-
155-
156-void
157-dmFile4HeaderRead(FILE* fpt, dmFile* dm, char* message, int mode)
158-{
159- // Header
160- fseek(fpt, 0L, SEEK_SET);
161- if(16!=sizeof(dm->Header4)) {
162- fprintf(stderr, "Size is strange: %lu expected 16\n", sizeof(dm->Header4));
163- fread(&(dm->Header4.version), sizeof(dm->Header4.version), 1, fpt);
164- fread(&(dm->Header4.rootLength), sizeof(dm->Header4.rootLength), 1, fpt);
165- fread(&(dm->Header4.byteOrder), sizeof(dm->Header4.byteOrder), 1, fpt);
166- } else {
167- DEBUGPRINT1("Header4 Size: %lu expect 16\n", sizeof(dm->Header4));
168- fread(&(dm->Header4), sizeof(dm->Header4), 1, fpt);
169- }
170-#ifdef II
171- memoryByteSwap(&(dm->Header4.version), sizeof(dmFileInteger4), 1);
172- memoryByteSwap(&(dm->Header4.rootLength), sizeof(dmFileInteger8), 1);
173- memoryByteSwap(&(dm->Header4.byteOrder), sizeof(dmFileInteger4), 1);
174-#endif
175- DEBUGPRINT1("version: %d\n", dm->Header4.version);
176- DEBUGPRINT1("RootLength: %lld\n", dm->Header4.rootLength);
177- DEBUGPRINT1("ByteOrder: %d\n", dm->Header4.byteOrder);
178-}
179-
180-
181-void
182-dmFile3TagDirectoryRead(FILE* fpt, dmFile3TagDirectory* tagDir, char* message, int mode)
183-{
184- int j;
185- DEBUGPRINT("dmFile3TagDirectoryRead Start\n");
186- dmFile3TagDirectoryHeaderRead(fpt, tagDir, message, mode);
187- DEBUGPRINT1("Number of Tages: %d\n", tagDir->numberOfTags);
188- for(j=0; j<tagDir->numberOfTags; j++) {
189- DEBUGPRINT1("Tags-j(in tag directories): %d in dmFile3TagDirectoryRead\n", j);
190- dmFile3TagHeaderRead(fpt, &(tagDir->Tags[j]), message, mode);
191- DEBUGPRINT2("%d tagID(hex): %x dmFile3TagHeaderRead in dmFile3TagDirectoryRead\n", j, tagDir->Tags[j].tagID);
192-
193- DEBUGPRINT("TAG or TAGDIR switch Start\n");
194- switch(tagDir->Tags[j].tagID) {
195- case dmFileTagDirTypeTagDir: {
196- DEBUGPRINT("TAGDIR READ START in dmFile3TagDirectoryRead\n");
197- tagDir->Tags[j].tagDir = memoryAllocate(sizeof(dmFile3TagDirectory), message);
198- dmFile3TagDirectoryRead(fpt, tagDir->Tags[j].tagDir, message, mode);
199- DEBUGPRINT("TAGDIR READ END in dmFile3TagDirectoryRead\n");
200- break;
201- }
202- default: {
203- DEBUGPRINT("TAG READ START in dmFile3TagDirectoryRead\n");
204- dmFile3TagRead(fpt, &(tagDir->Tags[j]), message, mode);
205- DEBUGPRINT("TAG READ END in dmFile3TagDirectoryRead\n");
206- break;
207- }
208- }
209- DEBUGPRINT("TAG or TAGDIR switch End\n");
210- }
211- DEBUGPRINT("dmFile3TagDirectoryRead end\n");
212-}
213-
214-void
215-dmFile4TagDirectoryRead(FILE* fpt, dmFile4TagDirectory* tagDir, char* message, int mode)
216-{
217- int j;
218- DEBUGPRINT("dmFile4TagDirectoryRead Start\n");
219- dmFile4TagDirectoryHeaderRead(fpt, tagDir, message, mode);
220- DEBUGPRINT1("Number of Tages: %lld\n", tagDir->numberOfTags);
221- for(j=0; j<tagDir->numberOfTags; j++) {
222- DEBUGPRINT1("Tags-j(in tag directories): %d in dmFile4TagDirectoryRead\n", j);
223- dmFile4TagHeaderRead(fpt, &(tagDir->Tags[j]), message, mode);
224- DEBUGPRINT2("%d tagID(hex): %x dmFile4TagHeaderRead in dmFile4TagDirectoryRead\n", j, tagDir->Tags[j].tagID);
225-
226- DEBUGPRINT("TAG or TAGDIR switch Start\n");
227- switch(tagDir->Tags[j].tagID) {
228- case dmFileTagDirTypeTagDir: {
229- DEBUGPRINT("TAGDIR READ START in dmFile4TagDirectoryRead\n");
230- tagDir->Tags[j].tagDir = memoryAllocate(sizeof(dmFile4TagDirectory), message);
231- dmFile4TagDirectoryRead(fpt, tagDir->Tags[j].tagDir, message, mode);
232- DEBUGPRINT("TAGDIR READ END in dmFile3TagDirectoryRead\n");
233- break;
234- }
235- default: {
236- DEBUGPRINT("TAG READ START in dmFile4TagDirectoryRead\n");
237- dmFile4TagRead(fpt, &(tagDir->Tags[j]), message, mode);
238- DEBUGPRINT("TAG READ END in dmFile4TagDirectoryRead\n");
239- break;
240- }
241- }
242- DEBUGPRINT("TAG or TAGDIR switch End\n");
243- }
244- DEBUGPRINT("dmFile4TagDirectoryRead end\n");
245-}
246-
247-void
248-dmFile3TagDirectoryHeaderRead(FILE* fpt, dmFile3TagDirectory* RootTag3, char* message, int mode)
249-{
250- DEBUGPRINT("dmFile3TagDirectroyHeaderRead Start\n");
251- // Root Tag
252- fread(&(RootTag3->sortf), sizeof(dmFileInteger1), 1, fpt);
253- fread(&(RootTag3->closef), sizeof(dmFileInteger1), 1, fpt);
254- fread(&(RootTag3->numberOfTags), sizeof(dmFileInteger4), 1, fpt);
255-#ifdef II
256- memoryByteSwap(&(RootTag3->numberOfTags), sizeof(dmFileInteger4), 1);
257-#endif
258- DEBUGPRINT1("sortf: %d\n", RootTag3->sortf);
259- DEBUGPRINT1("closef: %d\n", RootTag3->closef);
260- DEBUGPRINT1("numberOfTags: %d\n", RootTag3->numberOfTags);
261- RootTag3->Tags = (dmFile3Tag*)memoryAllocate(sizeof(dmFile3Tag)*RootTag3->numberOfTags, "in dmFileRead");
262- DEBUGPRINT("dmFile3TagDirectroyHeaderRead End\n");
263-}
264-
265-void
266-dmFile4TagDirectoryHeaderRead(FILE* fpt, dmFile4TagDirectory* RootTag4, char* message, int mode)
267-{
268- DEBUGPRINT("dmFile4TagDirectoryHeaderRead");
269- // Root Tag
270- fread(&(RootTag4->sortf), sizeof(dmFileInteger1), 1, fpt);
271- fread(&(RootTag4->closef), sizeof(dmFileInteger1), 1, fpt);
272- fread(&(RootTag4->numberOfTags), sizeof(dmFileInteger8), 1, fpt);
273-#ifdef II
274- memoryByteSwap(&(RootTag4->numberOfTags), sizeof(dmFileInteger8), 1);
275-#endif
276- DEBUGPRINT1("sortf: %d\n", RootTag4->sortf);
277- DEBUGPRINT1("closef: %d\n", RootTag4->closef);
278- DEBUGPRINT1("numberOfTags: %lld\n", RootTag4->numberOfTags);
279- RootTag4->Tags = (dmFile4Tag*)memoryAllocate(sizeof(dmFile4Tag)*RootTag4->numberOfTags, "in dmFileRead");
280-}
281-
282-void
283-dmFile3TagHeaderRead(FILE* fpt, dmFile3Tag* dmTag, char* message, int mode)
284-{
285- DEBUGPRINT("dmFile3TagHeaderRead Start\n");
286- fread(&(dmTag->tagID), sizeof(dmFileInteger1), 1, fpt);
287- fread(&(dmTag->tagNameLength), sizeof(dmFileInteger2), 1, fpt);
288-#ifdef II
289- memoryByteSwap(&(dmTag->tagNameLength), sizeof(dmFileInteger2), 1);
290-#endif
291- if(0<dmTag->tagNameLength) {
292- dmTag->tagName = (char*)memoryAllocate(sizeof(char)*(dmTag->tagNameLength+1), "in dmFileRead");
293- fread(dmTag->tagName, sizeof(char), dmTag->tagNameLength, fpt);
294- DEBUGPRINT3("tagID(hex) %X tagNameLength %d tagName %s\n", dmTag->tagID, dmTag->tagNameLength, dmTag->tagName);
295- } else {
296- DEBUGPRINT2("tagID(hex) %X tagNameLength %d \n", dmTag->tagID, dmTag->tagNameLength);
297- }
298-
299- if(0<dmTag->tagNameLength) {
300- if(0==strncmp("Data", dmTag->tagName, dmTag->tagNameLength)) {
301- fprintf(stderr, "ImageData: %s %d\n", dmTag->tagName, dmTag->tagNameLength);
302- }
303- }
304-
305- DEBUGPRINT("dmFile3TagHeaderRead End\n");
306-}
307-
308-void
309-dmFile4TagHeaderRead(FILE* fpt, dmFile4Tag* dmTag, char* message, int mode)
310-{
311- DEBUGPRINT("dmFile4TagHeaderRead Start\n");
312- fread(&(dmTag->tagID), sizeof(dmFileInteger1), 1, fpt);
313- fread(&(dmTag->tagNameLength), sizeof(dmFileInteger2), 1, fpt);
314-#ifdef II
315- memoryByteSwap(&(dmTag->tagNameLength), sizeof(dmFileInteger2), 1);
316-#endif
317- if(0<dmTag->tagNameLength) {
318- dmTag->tagName = (char*)memoryAllocate(sizeof(char)*(dmTag->tagNameLength+1), "in dmFileRead");
319- fread(dmTag->tagName, sizeof(char), dmTag->tagNameLength, fpt);
320- DEBUGPRINT3("tagID(hex) %X tagNameLength %d tagName %s\n", dmTag->tagID, dmTag->tagNameLength, dmTag->tagName);
321- } else {
322- DEBUGPRINT2("tagID(hex) %X tagNameLength %d \n", dmTag->tagID, dmTag->tagNameLength);
323- }
324-
325- if(0<dmTag->tagNameLength) {
326- if(0==strncmp("Data", dmTag->tagName, dmTag->tagNameLength)) {
327- fprintf(stderr, "ImageData: %s %d\n", dmTag->tagName, dmTag->tagNameLength);
328- }
329- }
330- fread(&(dmTag->tagLength), sizeof(dmFileInteger8), 1, fpt);
331-#ifdef II
332- memoryByteSwap(&(dmTag->tagLength), sizeof(dmFileInteger8), 1);
333-#endif
334-
335- DEBUGPRINT1("Length: %lld\n", dmTag->tagLength);
336- DEBUGPRINT("dmFile4TagHeaderRead End\n");
337-}
338-
339-void
340-dmFile3TagRead(FILE* fpt, dmFile3Tag* dmTag, char* message, int mode)
341-{
342- int j;
343-
344- DEBUGPRINT("dmFile3TagRead Start\n");
345- fread(dmTag->seperator, sizeof(char), 4, fpt);
346- DEBUGPRINT1("%s\n",dmTag->seperator);
347- if(0!=strncmp(dmTag->seperator, "%%%%", 4)) {
348- fprintf(stderr, "Not supported : Strange!!!\n");
349- exit(EXIT_FAILURE);
350- } else {
351- DEBUGPRINT("\n");
352- }
353- fread(&(dmTag->ninfo), sizeof(dmFileInteger4), 1, fpt);
354-#ifdef II
355- memoryByteSwap(&(dmTag->ninfo), sizeof(dmFileInteger4), 1);
356-#endif
357- DEBUGPRINT1("tag ninfo %d\n", dmTag->ninfo);
358- if(0==dmTag->ninfo) {
359- DEBUGPRINT1("tag ninfo is zero: %d\n", dmTag->ninfo);
360- return;
361- }
362- dmTag->info = (dmFileInteger4*)memoryAllocate(sizeof(dmFileInteger4)*dmTag->ninfo, "in dmFileRead");
363- fread(dmTag->info, sizeof(dmFileInteger4), dmTag->ninfo, fpt);
364-#ifdef II
365- memoryByteSwap(dmTag->info, sizeof(dmFileInteger4), dmTag->ninfo);
366-#endif
367- DEBUGPRINT2("tag: info[0] %X ninfo %d\n", dmTag->info[0], dmTag->ninfo);
368- switch(dmTag->info[0]) { // dmTag->info[0]: tag data type
369- case dmFileTagDataTypeStruct: {
370- DEBUGPRINT1("Struct: numEntry %d\n", dmTag->info[2]);
371- // dmTag->info[0] ; 0x0f
372- // dmTag->info[1] ; 0x0 Group Name
373- // dmTag->info[2] ; num of Entries
374- // dmTag->info[2*n + 4] ; data type of value-n
375- dmTag->value2 = (void*)memoryAllocate(sizeof(void*)*dmTag->info[2], "in dmFileRead");
376- for(j=0; j<dmTag->info[2]; j++) {
377- DEBUGPRINT2("value %d type %d\n", j, dmTag->info[2*j+4]);
378- dmTag->value2[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+4]], "in dmFileRead");
379- fread(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1, fpt);
380-#ifdef II
381- //memoryByteSwap(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1);
382-#endif
383-#ifdef DEBUG2
384- dmFileValuePrint(stderr, dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1);
385-#endif
386- }
387- break;
388- }
389- case dmFileTagDataTypeArray: {
390- DEBUGPRINT2("ARRAY datatype(hex) %x dataType or 0x0f: %x\n", dmTag->info[0], dmTag->info[1]);
391- // dmTag->info[0] ; 0x14: array
392- // dmTag->info[1] ; data type or 0x0f: Struct
393- switch(dmTag->info[1]) {
394- case dmFileTagDataTypeStruct: { // array of struct : 0x0f
395- // dmTag->info[2] : 0x0 GroupNam
396- // dmTag->info[3] : num of Entries
397- // dmTag->info[4] : 0x0 FieldNum
398- // dmTag->info[2*n + 5] : data type of value-n
399- // dmTag->info[2*dmTag->info[3] + 5 + 2] : size of array
400- DEBUGPRINT1("EntryNum: %d\n", dmTag->info[3]);
401- dmTag->value3 = (void**)memoryAllocate(sizeof(void*)*dmTag->info[3], "in dmFileRead");
402- for(j=0; j<dmTag->info[3]; j++) {
403- DEBUGPRINT3("%d : valueType %x arraySize %d\n", j, dmTag->info[2*j+5], dmTag->info[2*dmTag->info[3] + 4 ]);
404- dmTag->value3[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+5]]*dmTag->info[2*dmTag->info[3] + 4 ], "in dmFileRead");
405- fread(dmTag->value3[j], __dmFileTagDataTypeSize[dmTag->info[2*j+5]], dmTag->info[2*dmTag->info[3] + 4], fpt);
406-
407-#ifdef II
408- //memoryByteSwap(dmTag->value3[j], __dmFileTagDataTypeSize[dmTag->info[2*j+5]], dmTag->info[2*dmTag->info[3] + 4]);
409-#endif
410-#ifdef DEBUG2
411- dmFileValuePrint(stderr, &(dmTag->value3[j]), dmTag->info[2*j+5], MIN(16,dmTag->info[2*dmTag->info[3] + 4]));
412-#endif
413- }
414- break;
415- }
416- default: {
417- // dmTag->info[1] ; data type
418- // dmTag->info[2] ; data array size
419- if(0<dmTag->info[2]) {
420- DEBUGPRINT3("%d : valueType %x arraySize %d\n", j, dmTag->info[1], dmTag->info[2]);
421- dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[1]]*dmTag->info[2], "in dmFileRead");
422- fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[1]], dmTag->info[2], fpt);
423-
424-#ifdef II
425- //memoryByteSwap(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[1]], dmTag->info[2]);
426-#endif
427-#ifdef DEBUG2
428- dmFileValuePrint(stderr, dmTag->value, dmTag->info[1], MIN(16,dmTag->info[2]));
429-#endif
430- } else {
431- fprintf(stderr, "Not supported array size: %d\n", dmTag->info[2]);
432- }
433- break;
434- }
435- }
436- break;
437- }
438- default: {
439- dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[0]], "in dmFileRead");
440- fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1, fpt);
441-#ifdef II
442- //memoryByteSwap(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1);
443-#endif
444- dmFileValuePrint(stderr, dmTag->value, dmTag->info[0], 1);
445- //fprintf(stderr, "Not supported tagType: %d\n", dmTag->info[j]);
446- break;
447- }
448- }
449- DEBUGPRINT("dmFile3TagRead End\n");
450-}
451-
452-void
453-dmFile4TagRead(FILE* fpt, dmFile4Tag* dmTag, char* message, int mode)
454-{
455- int j;
456-
457- DEBUGPRINT("dmFile4TagRead Start\n");
458- fread(dmTag->seperator, sizeof(char), 4, fpt);
459- DEBUGPRINT1("%s\n",dmTag->seperator);
460- if(0!=strncmp(dmTag->seperator, "%%%%", 4)) {
461- fprintf(stderr, "Not supported : Strange!!!\n");
462- exit(EXIT_FAILURE);
463- } else {
464- DEBUGPRINT("\n");
465- }
466- fread(&(dmTag->ninfo), sizeof(dmFileInteger4), 1, fpt);
467-#ifdef II
468- memoryByteSwap(&(dmTag->ninfo), sizeof(dmFileInteger4), 1);
469-#endif
470- DEBUGPRINT1("tag ninfo %d\n", dmTag->ninfo);
471- if(0==dmTag->ninfo) {
472- DEBUGPRINT1("tag ninfo is zero: %d\n", dmTag->ninfo);
473- return;
474- }
475- dmTag->info = (dmFileInteger4*)memoryAllocate(sizeof(dmFileInteger4)*dmTag->ninfo, "in dmFileRead");
476- fread(dmTag->info, sizeof(dmFileInteger4), dmTag->ninfo, fpt);
477-#ifdef II
478- memoryByteSwap(dmTag->info, sizeof(dmFileInteger4), dmTag->ninfo);
479-#endif
480- DEBUGPRINT2("tag: info[0] %llX ninfo %lld\n", dmTag->info[0], dmTag->ninfo);
481- switch(dmTag->info[0]) { // dmTag->info[0]: tag data type
482- case dmFileTagDataTypeStruct: {
483- DEBUGPRINT1("Struct: numEntry %lld\n", dmTag->info[2]);
484- // dmTag->info[0] ; 0x0f
485- // dmTag->info[1] ; 0x0 Group Name
486- // dmTag->info[2] ; num of Entries
487- // dmTag->info[2*n + 4] ; data type of value-n
488- dmTag->value2 = (void*)memoryAllocate(sizeof(void*)*dmTag->info[2], "in dmFileRead");
489- for(j=0; j<dmTag->info[2]; j++) {
490- DEBUGPRINT2("value %d type %lld\n", j, dmTag->info[2*j+4]);
491- dmTag->value2[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+4]], "in dmFileRead");
492- fread(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1, fpt);
493-#ifdef II
494- //memoryByteSwap(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1);
495-#endif
496-#ifdef DEBUG2
497- dmFileValuePrint(stderr, dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1);
498-#endif
499- }
500- break;
501- }
502- case dmFileTagDataTypeArray: {
503- DEBUGPRINT2("ARRAY datatype(hex) %llx dataType or 0x0f: %llx\n", dmTag->info[0], dmTag->info[1]);
504- // dmTag->info[0] ; 0x14: array
505- // dmTag->info[1] ; data type or 0x0f: Struct
506- switch(dmTag->info[1]) {
507- case dmFileTagDataTypeStruct: { // array of struct : 0x0f
508- // dmTag->info[2] : 0x0 GroupNam
509- // dmTag->info[3] : num of Entries
510- // dmTag->info[4] : 0x0 FieldNum
511- // dmTag->info[2*n + 5] : data type of value-n
512- // dmTag->info[2*dmTag->info[3] + 5 + 2] : size of array
513- DEBUGPRINT1("EntryNum: %lld\n", dmTag->info[3]);
514- dmTag->value3 = (void**)memoryAllocate(sizeof(void*)*dmTag->info[3], "in dmFileRead");
515- for(j=0; j<dmTag->info[3]; j++) {
516- DEBUGPRINT3("%d : valueType %llx arraySize %lld\n", j, dmTag->info[2*j+5], dmTag->info[2*dmTag->info[3] + 4 ]);
517- dmTag->value3[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+5]]*dmTag->info[2*dmTag->info[3] + 4 ], "in dmFileRead");
518- fread(dmTag->value3[j], __dmFileTagDataTypeSize[dmTag->info[2*j+5]], dmTag->info[2*dmTag->info[3] + 4], fpt);
519-
520-#ifdef II
521- //memoryByteSwap(dmTag->value3[j], __dmFileTagDataTypeSize[dmTag->info[2*j+5]], dmTag->info[2*dmTag->info[3] + 4]);
522-#endif
523-#ifdef DEBUG2
524- dmFileValuePrint(stderr, &(dmTag->value3[j]), dmTag->info[2*j+5], MIN(16,dmTag->info[2*dmTag->info[3] + 4]));
525-#endif
526- }
527- break;
528- }
529- default: {
530- // dmTag->info[1] ; data type
531- // dmTag->info[2] ; data array size
532- if(0<dmTag->info[2]) {
533- DEBUGPRINT3("%d : valueType %llx arraySize %lld\n", j, dmTag->info[1], dmTag->info[2]);
534- dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[1]]*dmTag->info[2], "in dmFileRead");
535- fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[1]], dmTag->info[2], fpt);
536-
537-#ifdef II
538- //memoryByteSwap(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[1]], dmTag->info[2]);
539-#endif
540-#ifdef DEBUG2
541- dmFileValuePrint(stderr, dmTag->value, dmTag->info[1], MIN(16,dmTag->info[2]));
542-#endif
543- } else {
544- fprintf(stderr, "Not supported array size: %lld\n", dmTag->info[2]);
545- }
546- break;
547- }
548- }
549- break;
550- }
551- default: {
552- dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[0]], "in dmFileRead");
553- fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1, fpt);
554-#ifdef II
555- //memoryByteSwap(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1);
556-#endif
557- dmFileValuePrint(stderr, dmTag->value, dmTag->info[0], 1);
558- //fprintf(stderr, "Not supported tagType: %d\n", dmTag->info[j]);
559- break;
560- }
561- }
562- DEBUGPRINT("dmFile3TagRead End\n");
563-}
564-
--- a/src/Objects/DataManip/dmFile/src/dmFileInfo.c
+++ b/src/Objects/DataManip/dmFile/src/dmFileInfo.c
@@ -174,6 +174,7 @@ dmFile3TagInfo(FILE* fpt, dmFile3Tag tag, int layer, int mode)
174174
175175 offset = 0;
176176 for(i=0; i<tag.info[3]; i++) {
177+ fprintf(fpt, "%sStructDataPValue-%d: %ld\n", nest, i, tag.pValue3[i]);
177178 fprintf(fpt, "%sStructDataValue-%d: ", nest, i);
178179 dmFileValuePrint(fpt, (char*)(tag.value3)+offset, tag.info[5+i*2], tag.info[5+2*tag.info[3]]);
179180 offset += tag.info[3]*__dmFileTagDataTypeSize[tag.info[5+i*2]];
@@ -183,6 +184,7 @@ dmFile3TagInfo(FILE* fpt, dmFile3Tag tag, int layer, int mode)
183184 default: { // Simple Array
184185 fprintf(fpt, "%sArrayDataType: %s\n", nest, __dmFileTagDataTypeChar[tag.info[1]]);
185186 fprintf(fpt, "%sArrayDataNum: %d\n", nest, tag.info[2]);
187+ fprintf(fpt, "%sDataPValue: %ld\n", nest, tag.pValue);
186188 fprintf(fpt, "%sDataValue: ", nest);
187189 if(0<tag.info[2]) {
188190 dmFileValuePrint(fpt, tag.value, tag.info[1], tag.info[2]);
@@ -200,12 +202,14 @@ dmFile3TagInfo(FILE* fpt, dmFile3Tag tag, int layer, int mode)
200202 fprintf(fpt, "%sStructDataType-%d: %s\n", nest, i, __dmFileTagDataTypeChar[tag.info[4+i*2]]);
201203 }
202204 for(i=0; i<tag.info[2]; i++) {
205+ fprintf(fpt, "%sStructDataPValue-%d: %ld\n", nest, i, tag.pValue2[i]);
203206 fprintf(fpt, "%sStructDataValue-%d: ", nest, i);
204207 dmFileValuePrint(fpt, tag.value2, tag.info[4+i*2], 1);
205208 }
206209 break;
207210 }
208211 default: {
212+ fprintf(fpt, "%sDataPValue: %ld\n", nest, tag.pValue);
209213 fprintf(fpt, "%sDataValue: ", nest);
210214 dmFileValuePrint(fpt, tag.value, tag.info[0], 1);
211215 break;
@@ -221,6 +225,7 @@ dmFile3TagInfo(FILE* fpt, dmFile3Tag tag, int layer, int mode)
221225 int offset;
222226 offset = 0;
223227 for(i=0; i<tag.info[3]; i++) {
228+ 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]);
224229 fprintf(fpt, "%s%s-%d[%d](%s): ", nest, tag.tagName, i, tag.info[5+2*tag.info[3]], __dmFileTagDataTypeChar[tag.info[5+i*2]]);
225230 dmFileValuePrint(fpt, (char*)(tag.value3)+offset, tag.info[5+i*2], tag.info[5+2*tag.info[3]]);
226231 offset += tag.info[3]*__dmFileTagDataTypeSize[tag.info[5+i*2]];
@@ -228,6 +233,7 @@ dmFile3TagInfo(FILE* fpt, dmFile3Tag tag, int layer, int mode)
228233 break;
229234 }
230235 default: { // Simple Array
236+ fprintf(fpt, "%s%s[%d](%s)-PValue: %ld\n", nest, tag.tagName, tag.info[2], __dmFileTagDataTypeChar[tag.info[1]], tag.pValue);
231237 fprintf(fpt, "%s%s[%d](%s): ", nest, tag.tagName, tag.info[2], __dmFileTagDataTypeChar[tag.info[1]]);
232238 if(0<tag.info[2]) {
233239 dmFileValuePrint(fpt, tag.value, tag.info[1], tag.info[2]);
@@ -241,12 +247,14 @@ dmFile3TagInfo(FILE* fpt, dmFile3Tag tag, int layer, int mode)
241247 }
242248 case dmFileTagDataTypeStruct: { // Simple Struct
243249 for(i=0; i<tag.info[2]; i++) {
250+ fprintf(fpt, "%s%s(%d:%s)-PValue: %ld\n", nest, tag.tagName, i, __dmFileTagDataTypeChar[tag.info[4+i*2]], tag.pValue2[i]);
244251 fprintf(fpt, "%s%s(%d:%s): ", nest, tag.tagName, i, __dmFileTagDataTypeChar[tag.info[4+i*2]]);
245252 dmFileValuePrint(fpt, tag.value2, tag.info[4+i*2], 1);
246253 }
247254 break;
248255 }
249256 default: {
257+ fprintf(fpt, "%s%s(%s)-PValue: %ld\n", nest, tag.tagName, __dmFileTagDataTypeChar[tag.info[0]], tag.pValue);
250258 fprintf(fpt, "%s%s(%s): ", nest, tag.tagName, __dmFileTagDataTypeChar[tag.info[0]]);
251259 dmFileValuePrint(fpt, tag.value, tag.info[0], 1);
252260 break;
@@ -370,6 +378,7 @@ dmFile4TagInfo(FILE* fpt, dmFile4Tag tag, int layer, int mode)
370378
371379 offset = 0;
372380 for(i=0; i<tag.info[3]; i++) {
381+ fprintf(fpt, "%sStructDataPValue-%d: %ld\n", nest, i, tag.pValue3[i]);
373382 fprintf(fpt, "%sStructDataValue-%d: ", nest, i);
374383 dmFileValuePrint(fpt, (char*)(tag.value3)+offset, tag.info[5+i*2], tag.info[5+2*tag.info[3]]);
375384 offset += tag.info[3]*__dmFileTagDataTypeSize[tag.info[5+i*2]];
@@ -379,6 +388,7 @@ dmFile4TagInfo(FILE* fpt, dmFile4Tag tag, int layer, int mode)
379388 default: { // Simple Array
380389 fprintf(fpt, "%sArrayDataType: %s\n", nest, __dmFileTagDataTypeChar[tag.info[1]]);
381390 fprintf(fpt, "%sArrayDataNum: %lld\n", nest, tag.info[2]);
391+ fprintf(fpt, "%sDataPValue: %ld\n", nest, tag.pValue);
382392 fprintf(fpt, "%sDataValue: ", nest);
383393 if(0<tag.info[2]) {
384394 dmFileValuePrint(fpt, tag.value, tag.info[1], tag.info[2]);
@@ -395,12 +405,14 @@ dmFile4TagInfo(FILE* fpt, dmFile4Tag tag, int layer, int mode)
395405 fprintf(fpt, "%sStructDataType-%d: %s\n", nest, i, __dmFileTagDataTypeChar[tag.info[4+i*2]]);
396406 }
397407 for(i=0; i<tag.info[2]; i++) {
408+ fprintf(fpt, "%sStructDataPValue-%d: %ld\n", nest, i, tag.pValue2[i]);
398409 fprintf(fpt, "%sStructDataValue-%d: ", nest, i);
399410 dmFileValuePrint(fpt, tag.value2, tag.info[4+i*2], 1);
400411 }
401412 break;
402413 }
403414 default: {
415+ fprintf(fpt, "%sDataPValue: %ld\n", nest, tag.pValue);
404416 fprintf(fpt, "%sDataValue: ", nest);
405417 dmFileValuePrint(fpt, tag.value, tag.info[0], 1);
406418 break;
@@ -417,6 +429,7 @@ dmFile4TagInfo(FILE* fpt, dmFile4Tag tag, int layer, int mode)
417429 int offset;
418430 offset = 0;
419431 for(i=0; i<tag.info[3]; i++) {
432+ 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]);
420433 fprintf(fpt, "%s%s-%d[%lld](%s): ", nest, tag.tagName, i, tag.info[5+2*tag.info[3]], __dmFileTagDataTypeChar[tag.info[5+i*2]]);
421434 dmFileValuePrint(fpt, (char*)(tag.value3)+offset, tag.info[5+i*2], tag.info[5+2*tag.info[3]]);
422435 offset += tag.info[3]*__dmFileTagDataTypeSize[tag.info[5+i*2]];
@@ -424,6 +437,7 @@ dmFile4TagInfo(FILE* fpt, dmFile4Tag tag, int layer, int mode)
424437 break;
425438 }
426439 default: { // Simple Array
440+ fprintf(fpt, "%s%s[%lld](%s)-PValue: %ld\n", nest, tag.tagName, tag.info[2], __dmFileTagDataTypeChar[tag.info[1]], tag.pValue);
427441 fprintf(fpt, "%s%s[%lld](%s): ", nest, tag.tagName, tag.info[2], __dmFileTagDataTypeChar[tag.info[1]]);
428442 if(0<tag.info[2]) {
429443 dmFileValuePrint(fpt, tag.value, tag.info[1], tag.info[2]);
@@ -437,12 +451,14 @@ dmFile4TagInfo(FILE* fpt, dmFile4Tag tag, int layer, int mode)
437451 }
438452 case dmFileTagDataTypeStruct: { // Simple Struct
439453 for(i=0; i<tag.info[2]; i++) {
454+ fprintf(fpt, "%s%s(%d:%s)-PValue: %ld\n", nest, tag.tagName, i, __dmFileTagDataTypeChar[tag.info[4+i*2]], tag.pValue2[i]);
440455 fprintf(fpt, "%s%s(%d:%s): ", nest, tag.tagName, i, __dmFileTagDataTypeChar[tag.info[4+i*2]]);
441456 dmFileValuePrint(fpt, tag.value2, tag.info[4+i*2], 1);
442457 }
443458 break;
444459 }
445460 default: {
461+ fprintf(fpt, "%s%s-PValue: %ld\n", nest, tag.tagName, tag.pValue);
446462 fprintf(fpt, "%s%s: ", nest, tag.tagName);
447463 dmFileValuePrint(fpt, tag.value, tag.info[0], 1);
448464 break;
@@ -456,3 +472,5 @@ dmFile4TagInfo(FILE* fpt, dmFile4Tag tag, int layer, int mode)
456472 }
457473 }
458474 }
475+
476+
--- a/src/Objects/DataManip/dmFile/src/dmFileRead.c
+++ b/src/Objects/DataManip/dmFile/src/dmFileRead.c
@@ -373,10 +373,12 @@ dmFile3TagRead(FILE* fpt, dmFile3Tag* dmTag, char* message, int mode)
373373 // dmTag->info[1] ; 0x0 Group Name
374374 // dmTag->info[2] ; num of Entries
375375 // dmTag->info[2*n + 4] ; data type of value-n
376- dmTag->value2 = (void*)memoryAllocate(sizeof(void*)*dmTag->info[2], "in dmFileRead");
376+ dmTag->pValue2 = (long*)memoryAllocate(sizeof(long)*dmTag->info[2], "in dmFileRead");
377+ dmTag->value2 = (void**)memoryAllocate(sizeof(void*)*dmTag->info[2], "in dmFileRead");
377378 for(j=0; j<dmTag->info[2]; j++) {
378379 DEBUGPRINT2("value %d type %d\n", j, dmTag->info[2*j+4]);
379380 dmTag->value2[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+4]], "in dmFileRead");
381+ dmTag->pValue2[j] = ftell(fpt);
380382 fread(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1, fpt);
381383 #ifdef II
382384 //memoryByteSwap(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1);
@@ -399,10 +401,12 @@ dmFile3TagRead(FILE* fpt, dmFile3Tag* dmTag, char* message, int mode)
399401 // dmTag->info[2*n + 5] : data type of value-n
400402 // dmTag->info[2*dmTag->info[3] + 5 + 2] : size of array
401403 DEBUGPRINT1("EntryNum: %d\n", dmTag->info[3]);
404+ dmTag->pValue3 = (long*)memoryAllocate(sizeof(long)*dmTag->info[3], "in dmFileRead");
402405 dmTag->value3 = (void**)memoryAllocate(sizeof(void*)*dmTag->info[3], "in dmFileRead");
403406 for(j=0; j<dmTag->info[3]; j++) {
404407 DEBUGPRINT3("%d : valueType %x arraySize %d\n", j, dmTag->info[2*j+5], dmTag->info[2*dmTag->info[3] + 4 ]);
405408 dmTag->value3[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+5]]*dmTag->info[2*dmTag->info[3] + 4 ], "in dmFileRead");
409+ dmTag->pValue3[j] = ftell(fpt);
406410 fread(dmTag->value3[j], __dmFileTagDataTypeSize[dmTag->info[2*j+5]], dmTag->info[2*dmTag->info[3] + 4], fpt);
407411
408412 #ifdef II
@@ -420,6 +424,7 @@ dmFile3TagRead(FILE* fpt, dmFile3Tag* dmTag, char* message, int mode)
420424 if(0<dmTag->info[2]) {
421425 DEBUGPRINT3("%d : valueType %x arraySize %d\n", j, dmTag->info[1], dmTag->info[2]);
422426 dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[1]]*dmTag->info[2], "in dmFileRead");
427+ dmTag->pValue = ftell(fpt);
423428 fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[1]], dmTag->info[2], fpt);
424429
425430 #ifdef II
@@ -438,6 +443,7 @@ dmFile3TagRead(FILE* fpt, dmFile3Tag* dmTag, char* message, int mode)
438443 }
439444 default: {
440445 dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[0]], "in dmFileRead");
446+ dmTag->pValue = ftell(fpt);
441447 fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1, fpt);
442448 #ifdef II
443449 //memoryByteSwap(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1);
@@ -486,10 +492,12 @@ dmFile4TagRead(FILE* fpt, dmFile4Tag* dmTag, char* message, int mode)
486492 // dmTag->info[1] ; 0x0 Group Name
487493 // dmTag->info[2] ; num of Entries
488494 // dmTag->info[2*n + 4] ; data type of value-n
489- dmTag->value2 = (void*)memoryAllocate(sizeof(void*)*dmTag->info[2], "in dmFileRead");
495+ dmTag->pValue2 = (long*)memoryAllocate(sizeof(long)*dmTag->info[2], "in dmFileRead");
496+ dmTag->value2 = (void**)memoryAllocate(sizeof(void*)*dmTag->info[2], "in dmFileRead");
490497 for(j=0; j<dmTag->info[2]; j++) {
491498 DEBUGPRINT2("value %d type %lld\n", j, dmTag->info[2*j+4]);
492499 dmTag->value2[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+4]], "in dmFileRead");
500+ dmTag->pValue2[j] = ftell(fpt);
493501 fread(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1, fpt);
494502 #ifdef II
495503 //memoryByteSwap(dmTag->value2[j], __dmFileTagDataTypeSize[dmTag->info[2*j+4]], 1);
@@ -512,10 +520,12 @@ dmFile4TagRead(FILE* fpt, dmFile4Tag* dmTag, char* message, int mode)
512520 // dmTag->info[2*n + 5] : data type of value-n
513521 // dmTag->info[2*dmTag->info[3] + 5 + 2] : size of array
514522 DEBUGPRINT1("EntryNum: %lld\n", dmTag->info[3]);
523+ dmTag->pValue3 = (long*)memoryAllocate(sizeof(long)*dmTag->info[3], "in dmFileRead");
515524 dmTag->value3 = (void**)memoryAllocate(sizeof(void*)*dmTag->info[3], "in dmFileRead");
516525 for(j=0; j<dmTag->info[3]; j++) {
517526 DEBUGPRINT3("%d : valueType %llx arraySize %lld\n", j, dmTag->info[2*j+5], dmTag->info[2*dmTag->info[3] + 4 ]);
518527 dmTag->value3[j] = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[2*j+5]]*dmTag->info[2*dmTag->info[3] + 4 ], "in dmFileRead");
528+ dmTag->pValue3[j] = ftell(fpt);
519529 fread(dmTag->value3[j], __dmFileTagDataTypeSize[dmTag->info[2*j+5]], dmTag->info[2*dmTag->info[3] + 4], fpt);
520530
521531 #ifdef II
@@ -533,6 +543,7 @@ dmFile4TagRead(FILE* fpt, dmFile4Tag* dmTag, char* message, int mode)
533543 if(0<dmTag->info[2]) {
534544 DEBUGPRINT4("%d ; valueType: %llx arraySize: %lld Each: %zu\n", j, dmTag->info[1], dmTag->info[2], __dmFileTagDataTypeSize[dmTag->info[1]]);
535545 dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[1]]*dmTag->info[2], "in dmFileRead");
546+ dmTag->pValue = ftell(fpt);
536547 fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[1]], dmTag->info[2], fpt);
537548
538549 #ifdef II
@@ -552,6 +563,7 @@ dmFile4TagRead(FILE* fpt, dmFile4Tag* dmTag, char* message, int mode)
552563 default: {
553564 DEBUGPRINT3("Single Ently %d ; valueType: %llx valueSize: %zu\n", j, dmTag->info[0], __dmFileTagDataTypeSize[dmTag->info[0]]);
554565 dmTag->value = memoryAllocate(__dmFileTagDataTypeSize[dmTag->info[0]], "in dmFileRead");
566+ dmTag->pValue = ftell(fpt);
555567 fread(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1, fpt);
556568 #ifdef II
557569 //memoryByteSwap(dmTag->value, __dmFileTagDataTypeSize[dmTag->info[0]], 1);
--- a/src/Objects/DataManip/dmFile/src/dmFileUtil.c
+++ b/src/Objects/DataManip/dmFile/src/dmFileUtil.c
@@ -19,7 +19,6 @@ static char __sccs_id[] = "%Z%dmFileUtil ver%I%; Date:%D% %Z%";
1919 #include "genUtil.h"
2020 #include "../inc/dmFile.h"
2121
22-
2322 void
2423 dmFileValuePrint(FILE* fpt, void* value, dmFileTagDataType valueType, int n)
2524 {
--- a/src/Objects/DataManip/dmFile/src/ldm2mrc.c
+++ b/src/Objects/DataManip/dmFile/src/ldm2mrc.c
@@ -44,6 +44,20 @@ dmFile3TagDirectory2mrc(dmFile* dm, dmFile3TagDirectory tagDir, int layer, int m
4444 dmFile3TagDirectory* curDir;
4545 mrcImage* curImage;
4646
47+ switch(mode) {
48+ case 0: {
49+ curImage = dm->image;
50+ break;
51+ }
52+ case 1: {
53+ curImage = dm->thumnail;
54+ break;
55+ }
56+ default: {
57+ break;
58+ }
59+ }
60+
4761 //fprintf(fpt, "%snumberOfTags: %lld\n", nest, tagDir.numberOfTags);
4862 for(i=0; i<tagDir.numberOfTags; i++) {
4963 if(0<tagDir.Tags[i].tagNameLength) {
@@ -82,19 +96,15 @@ dmFile3TagDirectory2mrc(dmFile* dm, dmFile3TagDirectory tagDir, int layer, int m
8296 DEBUGPRINT2("%d: %s\n", j, curDir->Tags[j].tagName);
8397 SSWITCH(curDir->Tags[j].tagName)
8498 SCASE("Dimensions") {
85- //curImage->HeaderN.x = curDir->Tags[j].tagDir->Tags[0];
86- //curImage->HeaderN.y = curDir->Tags[j].tagDir->Tags[1];
87- //curImage->HeaderN.z = 1;
99+ // curImage->HeaderN.x = curDir->Tags[j].tagDir->Tags[0];
100+ // curImage->HeaderN.y = curDir->Tags[j].tagDir->Tags[1];
101+ // curImage->HeaderN.z = 1;
88102 SBREAK;
89103 }
90104 SDEFAULT {
91105 }
92106 SSWITCHEND
93107
94- //curImage->HeaderN.x =
95- //curImage->HeaderN.y =
96- //curImage->HeaderN.z =
97-
98108 }
99109 return;
100110 }
Show on old repository browser