diff --git a/arch/agat/encoder.cc b/arch/agat/encoder.cc index b60d591c..4ece7bab 100644 --- a/arch/agat/encoder.cc +++ b/arch/agat/encoder.cc @@ -1,9 +1,9 @@ #include "lib/core/globals.h" +#include "lib/core/utils.h" #include "lib/decoders/decoders.h" #include "lib/encoders/encoders.h" #include "agat.h" #include "lib/core/crc.h" -#include "lib/readerwriter.h" #include "lib/data/image.h" #include "lib/data/layout.h" #include "arch/agat/agat.pb.h" diff --git a/arch/amiga/encoder.cc b/arch/amiga/encoder.cc index bec5d82e..6a1f5bb1 100644 --- a/arch/amiga/encoder.cc +++ b/arch/amiga/encoder.cc @@ -1,9 +1,9 @@ #include "lib/core/globals.h" +#include "lib/core/utils.h" #include "lib/decoders/decoders.h" #include "lib/encoders/encoders.h" #include "amiga.h" #include "lib/core/crc.h" -#include "lib/readerwriter.h" #include "lib/data/image.h" #include "arch/amiga/amiga.pb.h" #include "lib/encoders/encoders.pb.h" diff --git a/arch/apple2/encoder.cc b/arch/apple2/encoder.cc index 089f528e..24355939 100644 --- a/arch/apple2/encoder.cc +++ b/arch/apple2/encoder.cc @@ -1,9 +1,9 @@ #include "lib/core/globals.h" +#include "lib/core/utils.h" #include "arch/apple2/apple2.h" #include "lib/decoders/decoders.h" #include "lib/encoders/encoders.h" #include "lib/data/sector.h" -#include "lib/readerwriter.h" #include "lib/data/image.h" #include "fmt/format.h" #include "lib/encoders/encoders.pb.h" diff --git a/arch/brother/encoder.cc b/arch/brother/encoder.cc index 188a27f6..f41cf98a 100644 --- a/arch/brother/encoder.cc +++ b/arch/brother/encoder.cc @@ -1,9 +1,9 @@ #include "lib/core/globals.h" +#include "lib/core/utils.h" #include "lib/decoders/decoders.h" #include "lib/encoders/encoders.h" #include "brother.h" #include "lib/core/crc.h" -#include "lib/readerwriter.h" #include "lib/data/image.h" #include "arch/brother/brother.pb.h" #include "lib/encoders/encoders.pb.h" diff --git a/arch/build.py b/arch/build.py index f6ed5a7f..4fa9c2f9 100644 --- a/arch/build.py +++ b/arch/build.py @@ -98,5 +98,5 @@ cxxlibrary( "arch/tartu/tartu.h": "./tartu/tartu.h", "arch/arch.h": "./arch.h", }, - deps=["+lib"], + deps=["lib/core", "lib/data", "lib/config", "lib/encoders", "lib/decoders"], ) diff --git a/arch/c64/encoder.cc b/arch/c64/encoder.cc index ae0c0469..0bf45e0b 100644 --- a/arch/c64/encoder.cc +++ b/arch/c64/encoder.cc @@ -1,10 +1,10 @@ #include "lib/core/globals.h" +#include "lib/core/utils.h" #include "lib/decoders/decoders.h" #include "lib/encoders/encoders.h" #include "c64.h" #include "lib/core/crc.h" #include "lib/data/sector.h" -#include "lib/readerwriter.h" #include "lib/data/image.h" #include "fmt/format.h" #include "arch/c64/c64.pb.h" diff --git a/arch/ibm/encoder.cc b/arch/ibm/encoder.cc index 2ad9c644..25c3496a 100644 --- a/arch/ibm/encoder.cc +++ b/arch/ibm/encoder.cc @@ -4,7 +4,6 @@ #include "lib/encoders/encoders.h" #include "ibm.h" #include "lib/core/crc.h" -#include "lib/readerwriter.h" #include "lib/data/image.h" #include "arch/ibm/ibm.pb.h" #include "lib/encoders/encoders.pb.h" diff --git a/arch/macintosh/encoder.cc b/arch/macintosh/encoder.cc index 50b6e6b7..75fd59a3 100644 --- a/arch/macintosh/encoder.cc +++ b/arch/macintosh/encoder.cc @@ -1,9 +1,9 @@ #include "lib/core/globals.h" +#include "lib/core/utils.h" #include "lib/decoders/decoders.h" #include "lib/encoders/encoders.h" #include "macintosh.h" #include "lib/core/crc.h" -#include "lib/readerwriter.h" #include "lib/data/image.h" #include "fmt/format.h" #include "lib/encoders/encoders.pb.h" diff --git a/arch/tids990/encoder.cc b/arch/tids990/encoder.cc index f87d2b8b..0b78b99d 100644 --- a/arch/tids990/encoder.cc +++ b/arch/tids990/encoder.cc @@ -3,7 +3,6 @@ #include "lib/encoders/encoders.h" #include "tids990.h" #include "lib/core/crc.h" -#include "lib/readerwriter.h" #include "lib/data/image.h" #include "arch/tids990/tids990.pb.h" #include "lib/encoders/encoders.pb.h" diff --git a/arch/victor9k/encoder.cc b/arch/victor9k/encoder.cc index e5387ac3..683494c5 100644 --- a/arch/victor9k/encoder.cc +++ b/arch/victor9k/encoder.cc @@ -1,10 +1,10 @@ #include "lib/core/globals.h" +#include "lib/core/utils.h" #include "lib/decoders/decoders.h" #include "lib/encoders/encoders.h" #include "victor9k.h" #include "lib/core/crc.h" #include "lib/data/sector.h" -#include "lib/readerwriter.h" #include "lib/data/image.h" #include "fmt/format.h" #include "arch/victor9k/victor9k.pb.h" diff --git a/build.py b/build.py index bb7c0c68..4d7fcc2c 100644 --- a/build.py +++ b/build.py @@ -22,11 +22,9 @@ clibrary(name="protocol", hdrs={"protocol.h": "./protocol.h"}) cxxlibrary( name="lib", srcs=[ - "./lib/encoders/encoders.cc", "./lib/readerwriter.cc", ], hdrs={ - "lib/encoders/encoders.h": "./lib/encoders/encoders.h", "lib/readerwriter.h": "./lib/readerwriter.h", }, deps=[ @@ -47,6 +45,7 @@ cxxlibrary( "lib/imagereader", "lib/imagewriter", "lib/decoders", + "lib/encoders", ], ) diff --git a/lib/core/utils.cc b/lib/core/utils.cc index 812700e4..a63b1cec 100644 --- a/lib/core/utils.cc +++ b/lib/core/utils.cc @@ -249,3 +249,18 @@ void warning(const std::string msg) { log(msg); } + +void fillBitmapTo(std::vector& bitmap, + unsigned& cursor, + unsigned terminateAt, + const std::vector& pattern) +{ + while (cursor < terminateAt) + { + for (bool b : pattern) + { + if (cursor < bitmap.size()) + bitmap[cursor++] = b; + } + } +} diff --git a/lib/core/utils.h b/lib/core/utils.h index 89e87a9a..c5903ee4 100644 --- a/lib/core/utils.h +++ b/lib/core/utils.h @@ -23,6 +23,11 @@ extern int countSetBits(uint32_t word); extern uint32_t unbcd(uint32_t bcd); extern int findLowestSetBit(uint64_t value); +extern void fillBitmapTo(std::vector& bitmap, + unsigned& cursor, + unsigned terminateAt, + const std::vector& pattern); + template std::map reverseMap(const std::map& map) { diff --git a/lib/encoders/build.py b/lib/encoders/build.py index 7972f9f6..fe7a8ba4 100644 --- a/lib/encoders/build.py +++ b/lib/encoders/build.py @@ -1,5 +1,5 @@ from build.protobuf import proto, protocc - +from build.c import cxxlibrary proto( name="proto", @@ -11,3 +11,10 @@ protocc( srcs=[".+proto"], deps=["lib+common_proto_lib", "arch+proto_lib"], ) + +cxxlibrary( + name="encoders", + srcs=["./encoders.cc"], + hdrs={"lib/encoders/encoders.h": "./encoders.h"}, + deps=["lib/core", "lib/data", "lib/config", ".+proto_lib"], +) diff --git a/lib/encoders/encoders.cc b/lib/encoders/encoders.cc index 11d776b2..dd51e723 100644 --- a/lib/encoders/encoders.cc +++ b/lib/encoders/encoders.cc @@ -1,7 +1,6 @@ #include "lib/core/globals.h" #include "lib/config/config.h" #include "lib/data/fluxmap.h" -#include "lib/decoders/decoders.h" #include "lib/encoders/encoders.h" #include "lib/encoders/encoders.pb.h" #include "lib/config/proto.h" diff --git a/lib/readerwriter.cc b/lib/readerwriter.cc index a85aaea7..fc0bf839 100644 --- a/lib/readerwriter.cc +++ b/lib/readerwriter.cc @@ -768,18 +768,3 @@ void rawReadDiskCommand(FluxSource& fluxsource, FluxSink& fluxsink) log(EndOperationLogMessage{"Raw read complete"}); } - -void fillBitmapTo(std::vector& bitmap, - unsigned& cursor, - unsigned terminateAt, - const std::vector& pattern) -{ - while (cursor < terminateAt) - { - for (bool b : pattern) - { - if (cursor < bitmap.size()) - bitmap[cursor++] = b; - } - } -} diff --git a/lib/readerwriter.h b/lib/readerwriter.h index 8295e740..3a2341e2 100644 --- a/lib/readerwriter.h +++ b/lib/readerwriter.h @@ -86,11 +86,6 @@ extern void writeTracksAndVerify(FluxSink& fluxSink, const Image& image, std::vector>& locations); -extern void fillBitmapTo(std::vector& bitmap, - unsigned& cursor, - unsigned terminateAt, - const std::vector& pattern); - extern void writeDiskCommand(const Image& image, Encoder& encoder, FluxSink& fluxSink, diff --git a/src/fe-analysedriveresponse.cc b/src/fe-analysedriveresponse.cc index 218af90d..52bfc14e 100644 --- a/src/fe-analysedriveresponse.cc +++ b/src/fe-analysedriveresponse.cc @@ -5,7 +5,6 @@ #include "lib/core/bitmap.h" #include "lib/data/fluxmap.h" #include "lib/data/fluxmapreader.h" -#include "lib/readerwriter.h" #include "protocol.h" #include "lib/config/proto.h" #include "lib/fluxsink/fluxsink.h" diff --git a/src/fe-format.cc b/src/fe-format.cc index c8440a08..1552c035 100644 --- a/src/fe-format.cc +++ b/src/fe-format.cc @@ -3,7 +3,6 @@ #include "lib/data/fluxmap.h" #include "lib/data/sector.h" #include "lib/config/proto.h" -#include "lib/readerwriter.h" #include "lib/imagereader/imagereader.h" #include "lib/imagewriter/imagewriter.h" #include "lib/fluxsource/fluxsource.h" diff --git a/src/fe-getdiskinfo.cc b/src/fe-getdiskinfo.cc index 28d890bb..2dc64b9f 100644 --- a/src/fe-getdiskinfo.cc +++ b/src/fe-getdiskinfo.cc @@ -3,7 +3,6 @@ #include "lib/data/fluxmap.h" #include "lib/data/sector.h" #include "lib/config/proto.h" -#include "lib/readerwriter.h" #include "lib/imagereader/imagereader.h" #include "lib/imagewriter/imagewriter.h" #include "lib/fluxsource/fluxsource.h" diff --git a/src/fe-getfile.cc b/src/fe-getfile.cc index bc4daf80..2a6ffd10 100644 --- a/src/fe-getfile.cc +++ b/src/fe-getfile.cc @@ -3,7 +3,6 @@ #include "lib/data/fluxmap.h" #include "lib/data/sector.h" #include "lib/config/proto.h" -#include "lib/readerwriter.h" #include "lib/imagereader/imagereader.h" #include "lib/imagewriter/imagewriter.h" #include "lib/fluxsource/fluxsource.h" diff --git a/src/fe-getfileinfo.cc b/src/fe-getfileinfo.cc index 801f5980..9b764a01 100644 --- a/src/fe-getfileinfo.cc +++ b/src/fe-getfileinfo.cc @@ -3,7 +3,6 @@ #include "lib/data/fluxmap.h" #include "lib/data/sector.h" #include "lib/config/proto.h" -#include "lib/readerwriter.h" #include "lib/imagereader/imagereader.h" #include "lib/imagewriter/imagewriter.h" #include "lib/fluxsource/fluxsource.h" diff --git a/src/fe-inspect.cc b/src/fe-inspect.cc index d024baae..d66cddc4 100644 --- a/src/fe-inspect.cc +++ b/src/fe-inspect.cc @@ -1,7 +1,6 @@ #include "lib/core/globals.h" #include "lib/config/config.h" #include "lib/config/flags.h" -#include "lib/readerwriter.h" #include "lib/data/fluxmap.h" #include "lib/data/fluxmapreader.h" #include "lib/decoders/fluxdecoder.h" diff --git a/src/fe-ls.cc b/src/fe-ls.cc index 0854cdb9..25e2a23b 100644 --- a/src/fe-ls.cc +++ b/src/fe-ls.cc @@ -3,7 +3,6 @@ #include "lib/data/fluxmap.h" #include "lib/data/sector.h" #include "lib/config/proto.h" -#include "lib/readerwriter.h" #include "lib/decoders/decoders.h" #include "lib/fluxsource/fluxsource.h" #include "lib/imagereader/imagereader.h"