47 Q_PROPERTY(
bool StreamingEnabled MEMBER m_StreamingEnabled)
53 typedef enum { UPLOAD_CLIENT, UPLOAD_LOCAL, UPLOAD_BOTH } UploadMode;
62 typedef enum { TELESCOPE_PRIMARY, TELESCOPE_GUIDE, TELESCOPE_UNKNOWN } TelescopeType;
71 void registerProperty(INDI::Property prop)
override;
72 void removeProperty(INDI::Property prop)
override;
74 void processSwitch(INDI::Property prop)
override;
75 void processText(INDI::Property prop)
override;
76 void processNumber(INDI::Property prop)
override;
77 bool processBLOB(INDI::Property prop)
override;
89 bool hasCoolerControl();
90 bool setCoolerControl(
bool enable);
95 return HasVideoStream;
99 bool getTemperature(
double *value);
100 bool setTemperature(
double value);
103 bool getTemperatureRegulation(
double &ramp,
double &threshold);
104 bool setTemperatureRegulation(
double ramp,
double threshold);
106 bool setScopeInfo(
double focalLength,
double aperture);
109 void setSeqPrefix(
const QString &preFix)
113 void setNextSequenceID(
int count)
115 nextSequenceID = count;
121 return gainN !=
nullptr;
123 bool getGain(
double *value);
124 IPerm getGainPermission()
const
128 bool setGain(
double value);
129 bool getGainMinMaxStep(
double *min,
double *max,
double *step);
134 return offsetN !=
nullptr;
136 bool getOffset(
double *value);
137 IPerm getOffsetPermission()
const
141 bool setOffset(
double value);
142 bool getOffsetMinMaxStep(
double *min,
double *max,
double *step);
145 bool configureRapidGuide(CameraChip *targetChip,
bool autoLoop,
bool sendImage =
false,
bool showMarker =
false);
146 bool setRapidGuide(CameraChip *targetChip,
bool enable);
149 void updateUploadSettings(
const QString &uploadDirectory,
const QString &uploadFile);
150 UploadMode getUploadMode();
151 bool setUploadMode(UploadMode mode);
154 const QString &getEncodingFormat()
const
156 return m_EncodingFormat;
158 bool setEncodingFormat(
const QString &value);
161 return m_EncodingFormats;
167 return m_CaptureFormats;
169 QString getCaptureFormat()
const;
170 bool setCaptureFormat(
const QString &format);
173 bool isBLOBEnabled();
174 bool setBLOBEnabled(
bool enable,
const QString &prop =
QString());
177 bool setVideoStreamEnabled(
bool enable);
178 bool resetStreamingFrame();
179 bool setStreamingFrame(
int x,
int y,
int w,
int h);
180 bool isStreamingEnabled();
181 bool setStreamExposure(
double duration);
182 bool getStreamExposure(
double *duration);
183 bool setStreamLimits(uint16_t maxBufferSize, uint16_t maxPreviewFPS);
186 bool setSERNameDirectory(
const QString &filename,
const QString &directory);
188 bool startRecording();
189 bool startDurationRecording(
double duration);
190 bool startFramesRecording(uint32_t frames);
191 bool stopRecording();
194 TelescopeType getTelescopeType()
196 return telescopeType;
198 bool setTelescopeType(TelescopeType type);
203 CameraChip *getChip(CameraChip::ChipType cType);
205 bool setFastExposureEnabled(
bool enable);
206 bool isFastExposureEnabled()
const
208 return m_FastExposureEnabled;
210 bool setFastCount(uint32_t count);
214 return m_ExposurePresets;
216 const QPair<double, double> getExposurePresetsMinMax()
const
218 return m_ExposurePresetsMinMax;
229 void StreamWindowHidden();
231 void setBLOBManager(
const char *device, INDI::Property prop);
237 void newTemperatureValue(
double value);
238 void newExposureValue(
ISD::CameraChip *chip,
double value, IPState state);
239 void newGuideStarData(
ISD::CameraChip *chip,
double dx,
double dy,
double fit);
240 void newBLOBManager(INDI::Property prop);
242 void coolerToggled(
bool enabled);
243 void error(ErrorType type);
245 void videoStreamToggled(
bool enabled);
246 void videoRecordToggled(
bool enabled);
247 void newFPS(
double instantFPS,
double averageFPS);
255 void processStream(INDI::Property prop);
256 bool WriteImageFileInternal(
const QString &filename,
char *buffer,
const size_t size);
258 bool HasGuideHead {
false };
259 bool HasCooler {
false };
260 bool CanCool {
false };
261 bool HasCoolerControl {
false };
262 bool HasVideoStream {
false };
263 bool m_FastExposureEnabled {
false };
266 int nextSequenceID { 0 };
267 std::unique_ptr<StreamWG> streamWindow;
270 int normalTabID { -1 };
271 int calibrationTabID { -1 };
272 int focusTabID { -1 };
273 int guideTabID { -1 };
274 int alignTabID { -1 };
276 INDI::Property primaryCCDBLOB;
278 std::unique_ptr<CameraChip> primaryChip;
279 std::unique_ptr<CameraChip> guideChip;
280 std::unique_ptr<WSMedia> m_Media;
281 QString m_EncodingFormat {
"FITS"};
284 bool m_StreamingEnabled {
true};
285 int m_CaptureFormatIndex {-1};
286 TelescopeType telescopeType { TELESCOPE_UNKNOWN };
289 INumber *gainN {
nullptr };
290 IPerm gainPerm { IP_RO };
292 INumber *offsetN {
nullptr };
293 IPerm offsetPerm { IP_RO };
301 QPair<double, double> m_ExposurePresetsMinMax;
304 void updateFileBuffer(INDI::Property prop,
bool is_fits);
305 char *fileWriteBuffer {
nullptr };
306 int fileWriteBufferSize { 0 };