diff options
author | Mike Buland <mike@xagasoft.com> | 2024-09-30 11:50:17 -0700 |
---|---|---|
committer | Mike Buland <mike@xagasoft.com> | 2024-09-30 11:50:17 -0700 |
commit | 0befcc026be9e4f6c40f8771c7f26f767ebddbf7 (patch) | |
tree | e549bee70f50def02d24ef386b490e017bc6043b /src/tools | |
parent | 84c93fbf0f371bcd26893d1c33e3a5bf1a61223e (diff) | |
download | libbu++-0befcc026be9e4f6c40f8771c7f26f767ebddbf7.tar.gz libbu++-0befcc026be9e4f6c40f8771c7f26f767ebddbf7.tar.bz2 libbu++-0befcc026be9e4f6c40f8771c7f26f767ebddbf7.tar.xz libbu++-0befcc026be9e4f6c40f8771c7f26f767ebddbf7.zip |
Erasing streams works, stream map building works.
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/myriad.cpp | 59 |
1 files changed, 47 insertions, 12 deletions
diff --git a/src/tools/myriad.cpp b/src/tools/myriad.cpp index 346cd85..0dd9840 100644 --- a/src/tools/myriad.cpp +++ b/src/tools/myriad.cpp | |||
@@ -94,6 +94,49 @@ Bu::Formatter &operator>>( Bu::Formatter &f, Mode & /*e*/ ) | |||
94 | return f; | 94 | return f; |
95 | } | 95 | } |
96 | 96 | ||
97 | void printMap( const Bu::BitString &bs ) | ||
98 | { | ||
99 | for( int j = 0; j < bs.getSize(); j++ ) | ||
100 | { | ||
101 | if( j>0 && (j%50) == 0 ) | ||
102 | Bu::println(""); | ||
103 | if( bs.getBit( j ) ) | ||
104 | Bu::print("#"); | ||
105 | else | ||
106 | Bu::print("-"); | ||
107 | } | ||
108 | Bu::println("\n"); | ||
109 | } | ||
110 | |||
111 | void printMap( const Bu::Array<int32_t> &bm ) | ||
112 | { | ||
113 | int iBigest = 0; | ||
114 | for( int j = 0; j < bm.getSize(); j++ ) | ||
115 | { | ||
116 | if( iBigest < bm[j] ) | ||
117 | iBigest = bm[j]; | ||
118 | } | ||
119 | int iWidth = Bu::String("%1").arg( iBigest ).end().getSize(); | ||
120 | Bu::String sEmpty; | ||
121 | for( int j = 0; j < iWidth; j++ ) | ||
122 | { | ||
123 | sEmpty += '-'; | ||
124 | } | ||
125 | int iBreakAt = 60/(iWidth+1); | ||
126 | for( int j = 0; j < bm.getSize(); j++ ) | ||
127 | { | ||
128 | if( j>0 && (j%iBreakAt) == 0 ) | ||
129 | Bu::println(""); | ||
130 | |||
131 | if( bm[j] < 0 ) | ||
132 | Bu::print("%1 ").arg( sEmpty, Bu::Fmt(2).right().fill(' ')); | ||
133 | else | ||
134 | Bu::print("%1 ").arg( bm[j], Bu::Fmt(2).right().fill(' ')); | ||
135 | |||
136 | } | ||
137 | Bu::println("\n"); | ||
138 | } | ||
139 | |||
97 | int main( int argc, char *argv[] ) | 140 | int main( int argc, char *argv[] ) |
98 | { | 141 | { |
99 | Options opts( argc, argv ); | 142 | Options opts( argc, argv ); |
@@ -168,6 +211,8 @@ int main( int argc, char *argv[] ) | |||
168 | File fOut( opts.sFile, File::Write|File::Read ); | 211 | File fOut( opts.sFile, File::Write|File::Read ); |
169 | Myriad m( fOut ); | 212 | Myriad m( fOut ); |
170 | m.erase( opts.iStream ); | 213 | m.erase( opts.iStream ); |
214 | printMap( m.buildBlockUseMap() ); | ||
215 | printMap( m.buildBlockMap() ); | ||
171 | } | 216 | } |
172 | break; | 217 | break; |
173 | 218 | ||
@@ -273,17 +318,8 @@ int main( int argc, char *argv[] ) | |||
273 | { | 318 | { |
274 | File fIn( opts.sFile, File::Write|File::Read ); | 319 | File fIn( opts.sFile, File::Write|File::Read ); |
275 | Myriad m( fIn ); | 320 | Myriad m( fIn ); |
276 | /* Bu::BitString bs = m.getBlocksUsed(); | 321 | printMap( m.buildBlockUseMap() ); |
277 | for( int j = 0; j < bs.getSize(); j++ ) | 322 | printMap( m.buildBlockMap() ); |
278 | { | ||
279 | if( j>0 && (j%50) == 0 ) | ||
280 | Bu::println(""); | ||
281 | if( bs.getBit( j ) ) | ||
282 | Bu::print("#"); | ||
283 | else | ||
284 | Bu::print("-"); | ||
285 | }*/ | ||
286 | Bu::println("\n"); | ||
287 | } | 323 | } |
288 | break; | 324 | break; |
289 | 325 | ||
@@ -295,4 +331,3 @@ int main( int argc, char *argv[] ) | |||
295 | 331 | ||
296 | return 0; | 332 | return 0; |
297 | } | 333 | } |
298 | |||