Mercurial > hg > orthanc-stone
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 } |