File indexing completed on 2025-01-19 09:45:51
0001 /* 0002 SPDX-FileCopyrightText: 2009 Prakash Mohan <prakash.mohan@kdemail.net> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #pragma once 0007 0008 #include "oal/oal.h" 0009 #include <QString> 0010 #include "ekos/ekos.h" 0011 0012 #define NULL_FILTER "--" 0013 0014 struct filterProperties 0015 { 0016 QString vendor; 0017 QString model; 0018 QString type; 0019 QString color; 0020 int offset; 0021 double exposure; 0022 bool useAutoFocus; 0023 QString lockedFilter; 0024 int absFocusPos; 0025 double focusTemperature; 0026 double focusAltitude; 0027 double focusTicksPerTemp; 0028 double focusTicksPerAlt; 0029 double wavelength; 0030 0031 filterProperties(QString _vendor, QString _model, QString _type, QString _color, 0032 int _offset = 0, double _exposure = 1.0, bool _useAutoFocus = false, QString _lockedFilter = NULL_FILTER, 0033 int _absFocusPos = 0, double _focusTemperature = Ekos::INVALID_VALUE, double _focusAltitude = Ekos::INVALID_VALUE, 0034 double _focusTicksPerTemp = 0.0, double _focusTicksPerAlt = 0.0, double _wavelength = 500.0) : 0035 vendor(_vendor), model(_model), type(_type), color(_color), 0036 offset(_offset), exposure(_exposure), useAutoFocus(_useAutoFocus), lockedFilter(_lockedFilter), 0037 absFocusPos(_absFocusPos), focusTemperature(_focusTemperature), focusAltitude(_focusAltitude), 0038 focusTicksPerTemp(_focusTicksPerTemp), focusTicksPerAlt(_focusTicksPerAlt), wavelength(_wavelength) {} 0039 }; 0040 0041 /** 0042 * @class OAL::Filter 0043 * 0044 * Information of user filters 0045 */ 0046 0047 class OAL::Filter 0048 { 0049 public: 0050 Filter(const QString &id, const filterProperties *fp); 0051 0052 QString id() const 0053 { 0054 return m_Id; 0055 } 0056 QString name() const 0057 { 0058 return m_Name; 0059 } 0060 QString model() const 0061 { 0062 return m_Model; 0063 } 0064 QString vendor() const 0065 { 0066 return m_Vendor; 0067 } 0068 QString type() const 0069 { 0070 return m_Type; 0071 } 0072 QString color() const 0073 { 0074 return m_Color; 0075 } 0076 0077 // Additional fields used by Ekos 0078 int offset() const 0079 { 0080 return m_Offset; 0081 } 0082 void setOffset(int _offset) 0083 { 0084 m_Offset = _offset; 0085 } 0086 0087 double exposure() const 0088 { 0089 return m_Exposure; 0090 } 0091 void setExposure(double _exposure) 0092 { 0093 m_Exposure = _exposure; 0094 } 0095 0096 QString lockedFilter() const 0097 { 0098 return m_LockedFilter; 0099 } 0100 void setLockedFilter(const QString &_filter) 0101 { 0102 m_LockedFilter = _filter; 0103 } 0104 0105 bool useAutoFocus() const 0106 { 0107 return m_UseAutoFocus; 0108 } 0109 void setUseAutoFocus(bool enabled) 0110 { 0111 m_UseAutoFocus = enabled; 0112 } 0113 0114 int absoluteFocusPosition() 0115 { 0116 return m_AbsoluteFocusPosition; 0117 } 0118 void setAbsoluteFocusPosition(int newAbsFocusPos) 0119 { 0120 m_AbsoluteFocusPosition = newAbsFocusPos; 0121 } 0122 0123 double focusTemperature() 0124 { 0125 return m_FocusTemperature; 0126 } 0127 void setFocusTemperature(double newFocusTemperature) 0128 { 0129 m_FocusTemperature = newFocusTemperature; 0130 } 0131 0132 double focusAltitude() 0133 { 0134 return m_FocusAltitude; 0135 } 0136 void setFocusAltitude(double newFocusAltitude) 0137 { 0138 m_FocusAltitude = newFocusAltitude; 0139 } 0140 0141 double focusTicksPerTemp() 0142 { 0143 return m_FocusTicksPerTemp; 0144 } 0145 void setFocusTicksPerTemp(double newFocusTicksPerTemp) 0146 { 0147 m_FocusTicksPerTemp = newFocusTicksPerTemp; 0148 } 0149 0150 double focusTicksPerAlt() 0151 { 0152 return m_FocusTicksPerAlt; 0153 } 0154 void setFocusTicksPerAlt(double newFocusTicksPerAlt) 0155 { 0156 m_FocusTicksPerAlt = newFocusTicksPerAlt; 0157 } 0158 0159 double wavelength() 0160 { 0161 return m_Wavelength; 0162 } 0163 void setWavelength(double newWavelength) 0164 { 0165 m_Wavelength = newWavelength; 0166 } 0167 0168 private: 0169 QString m_Id, m_Model, m_Vendor, m_Type, m_Color, m_Name, m_LockedFilter; 0170 int m_Offset { 0 }; 0171 int m_AbsoluteFocusPosition { 0 }; 0172 double m_Exposure { 1.0 }; 0173 bool m_UseAutoFocus { false }; 0174 double m_FocusTemperature { 0 }; 0175 double m_FocusAltitude { 0 }; 0176 double m_FocusTicksPerTemp { 0 }; 0177 double m_FocusTicksPerAlt { 0 }; 0178 double m_Wavelength { 0 }; 0179 };