1 /* 2 * imagelogger.h 3 * PHD2 Guiding 4 * 5 * Created by Andy Galasso 6 * Copyright (c) 2017 openphdguiding.org 7 * All rights reserved. 8 * 9 * This source code is distributed under the following "BSD" license 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions are met: 12 * Redistributions of source code must retain the above copyright notice, 13 * this list of conditions and the following disclaimer. 14 * Redistributions in binary form must reproduce the above copyright notice, 15 * this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * Neither the name of OpenPHDGuiding.org nor the names of its 18 * contributors may be used to endorse or promote products derived from 19 * this software without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 25 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31 * POSSIBILITY OF SUCH DAMAGE. 32 * 33 */ 34 35 #ifndef IMAGELOGGER_INCLUDED 36 #define IMAGELOGGER_INCLUDED 37 38 struct ImageLoggerSettings 39 { 40 bool loggingEnabled; 41 bool logFramesOverThreshRel; 42 bool logFramesOverThreshPx; 43 bool logFramesDropped; 44 bool logAutoSelectFrames; 45 bool logNextNFrames; 46 double guideErrorThreshRel; // relative error theshold 47 double guideErrorThreshPx; // pixel error theshold 48 unsigned int logNextNFramesCount; 49 ImageLoggerSettingsImageLoggerSettings50 ImageLoggerSettings() : 51 loggingEnabled(false), logFramesOverThreshRel(false), logFramesOverThreshPx(false), 52 logFramesDropped(false), logAutoSelectFrames(false), logNextNFrames(false) 53 { } 54 }; 55 56 class ImageLogger 57 { 58 public: 59 60 static void Init(); 61 static void Destroy(); 62 63 static void GetSettings(ImageLoggerSettings *settings); 64 static void ApplySettings(const ImageLoggerSettings& settings); 65 66 static void SaveImage(usImage *img); 67 static void LogImage(const usImage *img, const FrameDroppedInfo& info); 68 static void LogImage(const usImage *img, double distance); 69 static void LogImageStarDeselected(const usImage *img); 70 static void LogAutoSelectImage(const usImage *img, bool succeeded); 71 }; 72 73 #endif // IMAGELOGGER_INCLUDED 74