aboutsummaryrefslogtreecommitdiffstats
path: root/src/sls.cpp
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2020-07-21 15:40:19 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2020-07-21 15:40:19 +0200
commit60df978a075e57ca2b4de611e0cb4ded3c36cd0a (patch)
treef2e70976b384c65ababa07889b605960be37e8b1 /src/sls.cpp
parent11767aaaf3b60791c7c29c6cfc55d676fd4cdf28 (diff)
downloadODR-PadEnc-60df978a075e57ca2b4de611e0cb4ded3c36cd0a.tar.gz
ODR-PadEnc-60df978a075e57ca2b4de611e0cb4ded3c36cd0a.tar.bz2
ODR-PadEnc-60df978a075e57ca2b4de611e0cb4ded3c36cd0a.zip
Add dump current and completed slide options
Diffstat (limited to 'src/sls.cpp')
-rw-r--r--src/sls.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/sls.cpp b/src/sls.cpp
index f19829f..f0b72f7 100644
--- a/src/sls.cpp
+++ b/src/sls.cpp
@@ -353,8 +353,23 @@ size_t SLSEncoder::resizeImage(MagickWand* m_wand, unsigned char** blob, const s
}
#endif
+static void dump_slide(const std::string& dump_name, const uint8_t *blob, size_t size)
+{
+ FILE* fd = fopen(dump_name.c_str(), "w");
+
+ if (fd == nullptr) {
+ perror(("ODR-PadEnc Error: Unable to open file '" + dump_name + "' for writing").c_str());
+ return;
+ }
+
+ if (fwrite(blob, size, 1, fd) == 0) {
+ perror(("ODR-PadEnc Error: Unable to write to file '" + dump_name + "'").c_str());
+ }
+
+ fclose(fd);
+}
-bool SLSEncoder::encodeSlide(const std::string& fname, int fidx, bool raw_slides, size_t max_slide_size)
+bool SLSEncoder::encodeSlide(const std::string& fname, int fidx, bool raw_slides, size_t max_slide_size, const std::string& dump_name)
{
bool result = false;
@@ -566,6 +581,10 @@ bool SLSEncoder::encodeSlide(const std::string& fname, int fidx, bool raw_slides
pad_packetizer->AddDG(mscdg, false);
}
+ if (not dump_name.empty()) {
+ dump_slide(dump_name, blob, blobsize);
+ }
+
result = true;
}