1 /*
2     SPDX-FileCopyrightText: 2017 Jasem Mutlaq <mutlaqja@ikarustech.com>
3 
4     SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #ifndef PROFILEWIZARD_H
8 #define PROFILEWIZARD_H
9 
10 #include "ui_profilewizard.h"
11 
12 #include <QProgressDialog>
13 #include <QHostInfo>
14 #include <QPointer>
15 
16 namespace Ekos
17 {
18 class Manager;
19 }
20 
21 class ProfileWizard : public QDialog, public Ui::ProfileWizard
22 {
23         Q_OBJECT
24 
25     public:
26         enum
27         {
28             INTRO,
29             EQUIPMENT_LOCATION,
30             REMOTE_EQUIPMENT_SELECTION,
31             GENERIC_EQUIPMENT,
32             PI_EQUIPMENT,
33             WINDOWS_LOCAL,
34             MAC_LOCAL,
35             CREATE_PROFILE
36         };
37         typedef enum { INTERNAL_GUIDER, PHD2_GUIDER, LIN_GUIDER } GuiderType;
38 
39         ProfileWizard();
40 
41         QStringList selectedAuxDrivers();
42         int selectedExternalGuider();
43 
44     protected slots:
45         void reset();
46         void processLocalEquipment();
47         void processRemoteEquipmentSelection();
48         void processRemoteEquipment();
49         void processPiEquipment();
50         void processLocalMac();
51         void createProfile();
52         void detectStellarMate();
53         void processHostInfo(QHostInfo info);
54         void detectStellarMateTimeout();
55 
56     private:
57         bool useInternalServer   = true;
58         bool useWebManager       = false;
59         bool useJoystick         = false;
60         bool useRemoteAstrometry = false;
61         bool useWatchDog         = false;
62         bool useSkySafari        = false;
63         GuiderType useGuiderType = INTERNAL_GUIDER;
64 
65         QString profileName, host, port;
66         QPointer<QProgressDialog> stellarMateDetectDialog;
67 
68         friend class Ekos::Manager;
69 };
70 
71 #endif
72