diff Framework/Toolbox/OrthancSlicesLoader.h @ 93:5945e81734a3 wasm

decoding of JPEG images
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 29 May 2017 17:28:31 +0200
parents f5f54ed8d307
children efd9ef2b67f1
line wrap: on
line diff
--- a/Framework/Toolbox/OrthancSlicesLoader.h	Mon May 29 11:42:53 2017 +0200
+++ b/Framework/Toolbox/OrthancSlicesLoader.h	Mon May 29 17:28:31 2017 +0200
@@ -23,6 +23,7 @@
 
 #include "IWebService.h"
 #include "SlicesSorter.h"
+#include "../Enumerations.h"
 
 #include <boost/shared_ptr.hpp>
 
@@ -45,11 +46,13 @@
       virtual void NotifySliceImageReady(const OrthancSlicesLoader& loader,
                                          unsigned int sliceIndex,
                                          const Slice& slice,
-                                         Orthanc::ImageAccessor* image) = 0;
+                                         Orthanc::ImageAccessor* image,
+                                         SliceImageQuality quality) = 0;
 
       virtual void NotifySliceImageError(const OrthancSlicesLoader& loader,
                                          unsigned int sliceIndex,
-                                         const Slice& slice) = 0;
+                                         const Slice& slice,
+                                         SliceImageQuality quality) = 0;
     };
     
   private:
@@ -78,7 +81,11 @@
     State         state_;
     SlicesSorter  slices_;
 
-
+    void NotifySliceImageSuccess(const Operation& operation,
+                                 Orthanc::ImageAccessor* image) const;
+  
+    void NotifySliceImageError(const Operation& operation) const;
+    
     void ParseSeriesGeometry(const void* answer,
                              size_t size);
 
@@ -87,10 +94,18 @@
                                const void* answer,
                                size_t size);
 
-    void ParseSliceImage(const Operation& operation,
-                         const void* answer,
-                         size_t size);
+    void ParseSliceImagePng(const Operation& operation,
+                            const void* answer,
+                            size_t size);
+
+    void ParseSliceImageJpeg(const Operation& operation,
+                             const void* answer,
+                             size_t size);
+
+    void ScheduleSliceImagePng(size_t index);
     
+    void ScheduleSliceImageJpeg(size_t index,
+                                SliceImageQuality quality);
     
   public:
     OrthancSlicesLoader(ICallback& callback,
@@ -110,6 +125,7 @@
     bool LookupSlice(size_t& index,
                      const SliceGeometry& plane) const;
 
-    void ScheduleLoadSliceImage(size_t index);
+    void ScheduleLoadSliceImage(size_t index,
+                                SliceImageQuality quality);
   };
 }