comparison 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
comparison
equal deleted inserted replaced
92:961ee171d933 93:5945e81734a3
21 21
22 #pragma once 22 #pragma once
23 23
24 #include "IWebService.h" 24 #include "IWebService.h"
25 #include "SlicesSorter.h" 25 #include "SlicesSorter.h"
26 #include "../Enumerations.h"
26 27
27 #include <boost/shared_ptr.hpp> 28 #include <boost/shared_ptr.hpp>
28 29
29 namespace OrthancStone 30 namespace OrthancStone
30 { 31 {
43 virtual void NotifyGeometryError(const OrthancSlicesLoader& loader) = 0; 44 virtual void NotifyGeometryError(const OrthancSlicesLoader& loader) = 0;
44 45
45 virtual void NotifySliceImageReady(const OrthancSlicesLoader& loader, 46 virtual void NotifySliceImageReady(const OrthancSlicesLoader& loader,
46 unsigned int sliceIndex, 47 unsigned int sliceIndex,
47 const Slice& slice, 48 const Slice& slice,
48 Orthanc::ImageAccessor* image) = 0; 49 Orthanc::ImageAccessor* image,
50 SliceImageQuality quality) = 0;
49 51
50 virtual void NotifySliceImageError(const OrthancSlicesLoader& loader, 52 virtual void NotifySliceImageError(const OrthancSlicesLoader& loader,
51 unsigned int sliceIndex, 53 unsigned int sliceIndex,
52 const Slice& slice) = 0; 54 const Slice& slice,
55 SliceImageQuality quality) = 0;
53 }; 56 };
54 57
55 private: 58 private:
56 enum State 59 enum State
57 { 60 {
76 ICallback& userCallback_; 79 ICallback& userCallback_;
77 IWebService& orthanc_; 80 IWebService& orthanc_;
78 State state_; 81 State state_;
79 SlicesSorter slices_; 82 SlicesSorter slices_;
80 83
81 84 void NotifySliceImageSuccess(const Operation& operation,
85 Orthanc::ImageAccessor* image) const;
86
87 void NotifySliceImageError(const Operation& operation) const;
88
82 void ParseSeriesGeometry(const void* answer, 89 void ParseSeriesGeometry(const void* answer,
83 size_t size); 90 size_t size);
84 91
85 void ParseInstanceGeometry(const std::string& instanceId, 92 void ParseInstanceGeometry(const std::string& instanceId,
86 unsigned int frame, 93 unsigned int frame,
87 const void* answer, 94 const void* answer,
88 size_t size); 95 size_t size);
89 96
90 void ParseSliceImage(const Operation& operation, 97 void ParseSliceImagePng(const Operation& operation,
91 const void* answer, 98 const void* answer,
92 size_t size); 99 size_t size);
100
101 void ParseSliceImageJpeg(const Operation& operation,
102 const void* answer,
103 size_t size);
104
105 void ScheduleSliceImagePng(size_t index);
93 106
107 void ScheduleSliceImageJpeg(size_t index,
108 SliceImageQuality quality);
94 109
95 public: 110 public:
96 OrthancSlicesLoader(ICallback& callback, 111 OrthancSlicesLoader(ICallback& callback,
97 IWebService& orthanc); 112 IWebService& orthanc);
98 113
108 const Slice& GetSlice(size_t index) const; 123 const Slice& GetSlice(size_t index) const;
109 124
110 bool LookupSlice(size_t& index, 125 bool LookupSlice(size_t& index,
111 const SliceGeometry& plane) const; 126 const SliceGeometry& plane) const;
112 127
113 void ScheduleLoadSliceImage(size_t index); 128 void ScheduleLoadSliceImage(size_t index,
129 SliceImageQuality quality);
114 }; 130 };
115 } 131 }