File indexing completed on 2024-04-28 03:43:19
0001 /* 0002 SPDX-FileCopyrightText: 2024 Hy Murveit <hy@murveit.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QList> 0010 #include <QUrl> 0011 #include <QString> 0012 #include "sequencejob.h" 0013 0014 /** 0015 * @class SequenceJob 0016 * @short SequenceQueue represents a sequence of capture jobs to be executed 0017 * by the capture module. 0018 * 0019 * @author Hy Murveit 0020 * @version 1.0 0021 */ 0022 namespace Ekos 0023 { 0024 0025 class SequenceJob; 0026 class CaptureDeviceAdaptor; 0027 class CaptureModuleState; 0028 0029 class SequenceQueue : public QObject 0030 { 0031 Q_OBJECT 0032 0033 public: 0034 SequenceQueue() {} 0035 0036 bool load(const QString &fileURL, const QString &targetName, 0037 const QSharedPointer<CaptureDeviceAdaptor> devices, 0038 const QSharedPointer<CaptureModuleState> sharedState); 0039 0040 bool save(const QString &path, const QString &observerName); 0041 0042 void setOptions(); 0043 void loadOptions(); 0044 0045 QList<SequenceJob *> &allJobs() 0046 { 0047 return m_allJobs; 0048 } 0049 const QUrl &sequenceURL() const 0050 { 0051 return m_SequenceURL; 0052 } 0053 void setSequenceURL(const QUrl &newSequenceURL) 0054 { 0055 m_SequenceURL = newSequenceURL; 0056 } 0057 bool getEnforceGuideDeviation() 0058 { 0059 return m_EnforceGuideDeviation; 0060 } 0061 void setEnforceGuideDeviation(bool value) 0062 { 0063 m_EnforceGuideDeviation = value; 0064 } 0065 double getGuideDeviation() 0066 { 0067 return m_GuideDeviation; 0068 } 0069 void setGuideDeviation(double value) 0070 { 0071 m_GuideDeviation = value; 0072 } 0073 bool getEnforceStartGuiderDrift() 0074 { 0075 return m_EnforceStartGuiderDrift; 0076 } 0077 void setEnforceStartGuiderDrift(bool value) 0078 { 0079 m_EnforceStartGuiderDrift = value; 0080 } 0081 double getStartGuideDeviation() 0082 { 0083 return m_StartGuideDeviation; 0084 } 0085 void setStartGuideDeviation(double value) 0086 { 0087 m_StartGuideDeviation = value; 0088 } 0089 bool getEnforceAutofocusHFR() 0090 { 0091 return m_EnforceAutofocusHFR; 0092 } 0093 void setEnforceAutofocusHFR(bool value) 0094 { 0095 m_EnforceAutofocusHFR = value; 0096 } 0097 double getHFRDeviation() 0098 { 0099 return m_HFRDeviation; 0100 } 0101 void setHFRDeviation(double value) 0102 { 0103 m_HFRDeviation = value; 0104 } 0105 bool getEnforceAutofocusOnTemperature() 0106 { 0107 return m_EnforceAutofocusOnTemperature; 0108 } 0109 void setEnforceAutofocusOnTemperature(bool value) 0110 { 0111 m_EnforceAutofocusOnTemperature = value; 0112 } 0113 double getMaxFocusTemperatureDelta() 0114 { 0115 return m_MaxFocusTemperatureDelta; 0116 } 0117 void setMaxFocusTemperatureDelta(double value) 0118 { 0119 m_MaxFocusTemperatureDelta = value; 0120 } 0121 bool getEnforceRefocusEveryN() 0122 { 0123 return m_EnforceRefocusEveryN; 0124 } 0125 void setEnforceRefocusEveryN(bool value) 0126 { 0127 m_EnforceRefocusEveryN = value; 0128 } 0129 double getRefocusEveryN() 0130 { 0131 return m_RefocusEveryN; 0132 } 0133 void setRefocusEveryN(double value) 0134 { 0135 m_RefocusEveryN = value; 0136 } 0137 bool getRefocusAfterMeridianFlip() 0138 { 0139 return m_RefocusAfterMeridianFlip; 0140 } 0141 void setRefocusAfterMeridianFlip(bool value) 0142 { 0143 m_RefocusAfterMeridianFlip = value; 0144 } 0145 0146 signals: 0147 void newLog(const QString &message); 0148 0149 private: 0150 0151 // list of all sequence jobs 0152 QList<SequenceJob *> m_allJobs; 0153 // URL where the sequence queue file is stored. 0154 QUrl m_SequenceURL; 0155 0156 bool m_GuideDeviationSet { false }; 0157 bool m_EnforceGuideDeviation {false}; 0158 double m_GuideDeviation = 0; 0159 0160 bool m_GuideStartDeviationSet { false }; 0161 bool m_EnforceStartGuiderDrift {false}; 0162 double m_StartGuideDeviation = 0; 0163 0164 bool m_AutofocusSet { false }; 0165 bool m_EnforceAutofocusHFR { false }; 0166 HFR_CHECK_ALGORITHM m_HFRCheckAlgorithm { HFR_CHECK_LAST_AUTOFOCUS }; 0167 double m_HFRCheckThresholdPercentage = HFR_CHECK_DEFAULT_THRESHOLD; 0168 int m_HFRCheckFrames = 1; 0169 double m_HFRDeviation = 0; 0170 0171 bool m_RefocusOnTemperatureDeltaSet { false }; 0172 bool m_EnforceAutofocusOnTemperature { false }; 0173 double m_MaxFocusTemperatureDelta = 0; 0174 0175 bool m_RefocusEveryNSet { false }; 0176 bool m_EnforceRefocusEveryN { false }; 0177 double m_RefocusEveryN = 0; 0178 0179 bool m_RefocusOnMeridianFlipSet { false }; 0180 bool m_RefocusAfterMeridianFlip { false }; 0181 }; 0182 0183 }