From d296b3af772509098eb24dfb0d228e033af106dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20DEL=20NERO?= Date: Sun, 11 Oct 2026 23:26:49 +0200 Subject: [PATCH] xml export : stream informations (WIP) --- .../sources/loaders/xml_loader/xml_writer.c | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/libhxcfe/sources/loaders/xml_loader/xml_writer.c b/libhxcfe/sources/loaders/xml_loader/xml_writer.c index 39d518ad..c6827f1d 100644 --- a/libhxcfe/sources/loaders/xml_loader/xml_writer.c +++ b/libhxcfe/sources/loaders/xml_loader/xml_writer.c @@ -44,6 +44,10 @@ #include "version.h" +#include "misc/env.h" + +#include "stream_analyzer/fluxStreamAnalyzer.h" + void gettracktype(HXCFE_SECTORACCESS* ss,int track,int side,int * nbsect,int *firstsectid,char * format,int * format_id, int *sectorsize) { int i; @@ -143,6 +147,7 @@ int XML_libWrite_DiskFile(HXCFE_IMGLDR* imgldr_ctx,HXCFE_FLOPPY * floppy,char * int t,size; #define HISTOSIZE 32 unsigned int mini_histo[HISTOSIZE]; + streamconv * strconv; sectoffset = NULL; sorted_sectoffset = NULL; @@ -290,6 +295,86 @@ int XML_libWrite_DiskFile(HXCFE_IMGLDR* imgldr_ctx,HXCFE_FLOPPY * floppy,char * fprintf(xmlfile,"\t\t\t\t%d\n",cnt); fprintf(xmlfile,"\t\t\t\t%.4f\n",((double)cnt/(double)size) * 100.0); } + + if( floppy->tracks[j]->sides[i]->stream_dump ) + { + strconv = initStreamConvert(imgldr_ctx->hxcfe,floppy->tracks[j]->sides[i], 10000, (10000/1000)*65536,-1,-1,64+1,5000000); + + if(strconv) + { + int indexcnt,roti,i_rot; + int64_t p_tmp; + int64_t cumul_t; + int64_t cumul_r; + int64_t cumul_rot[256]; + int64_t pulses_cnt_rot[256]; + int64_t pulses_cnt,pulses_cnt_t; + fprintf(xmlfile,"\t\t\t\tno\n"); + + roti = 0; + cumul_t = 0; + cumul_r = 0; + indexcnt = 0; + pulses_cnt = 0; + pulses_cnt_t = 0; + memset(cumul_rot,0,sizeof(cumul_rot)); + memset(pulses_cnt_rot,0,sizeof(pulses_cnt_rot)); + while(!strconv->stream_end_event) + { + p_tmp = StreamConvert_getNextPulse(strconv); + pulses_cnt++; + pulses_cnt_t++; + cumul_t += p_tmp; + cumul_r += p_tmp; + + if(strconv->index_event && indexcnt < 256) + { + cumul_rot[roti] = cumul_r; + pulses_cnt_rot[roti] = pulses_cnt; + roti++; + cumul_r = 0; + pulses_cnt = 0; + indexcnt++; + } + } + + cumul_rot[roti] = cumul_r; + pulses_cnt_rot[roti] = pulses_cnt; + roti++; + + fprintf(xmlfile,"\t\t\t\t%d\n",indexcnt); + fprintf(xmlfile,"\t\t\t\t%ld\n",cumul_t); + fprintf(xmlfile,"\t\t\t\t%ld\n",pulses_cnt_t); + + fprintf(xmlfile,"\t\t\t\t"); + i_rot = 0; + fprintf(xmlfile,"%ld",pulses_cnt_rot[i_rot]); + i_rot++; + while(i_rot\n"); + + fprintf(xmlfile,"\t\t\t\t"); + i_rot = 0; + fprintf(xmlfile,"%ld",cumul_rot[i_rot]); + i_rot++; + while(i_rot\n"); + + deinitStreamConvert(strconv); + } + } + else + { + fprintf(xmlfile,"\t\t\t\tno\n"); + } } gettracktype(ss,j,i,&nbsect,&firstsectid,(char*)&trackformat,&trackformatid,§orsize);