1 /*
2     Gpredict: Real-time satellite tracking and orbit prediction program
3 
4     Copyright (C)  2001-2009  Alexandru Csete, OZ9AEC.
5 
6     Authors: Alexandru Csete <oz9aec@gmail.com>
7 
8     Comments, questions and bugreports should be submitted via
9     http://sourceforge.net/projects/gpredict/
10     More details can be found at the project home page:
11 
12             http://gpredict.oz9aec.net/
13 
14     This program is free software; you can redistribute it and/or modify
15     it under the terms of the GNU General Public License as published by
16     the Free Software Foundation; either version 2 of the License, or
17     (at your option) any later version.
18 
19     This program is distributed in the hope that it will be useful,
20     but WITHOUT ANY WARRANTY; without even the implied warranty of
21     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22     GNU General Public License for more details.
23 
24     You should have received a copy of the GNU General Public License
25     along with this program; if not, visit http://www.fsf.org/
26 */
27 #ifndef SAT_PASS_DIALOGS_H
28 #define SAT_PASS_DIALOGS_H 1
29 
30 #include <glib.h>
31 #include <gtk/gtk.h>
32 
33 #include "gtk-sat-data.h"
34 #include "predict-tools.h"
35 
36 /** Column definitions for multi-pass listings. */
37 typedef enum {
38     MULTI_PASS_COL_AOS_TIME = 0,        /*!< AOS time. */
39     MULTI_PASS_COL_TCA,         /*!< Time of closest approach. */
40     MULTI_PASS_COL_LOS_TIME,    /*!< LOS time. */
41     MULTI_PASS_COL_DURATION,    /*!< Duration. */
42     MULTI_PASS_COL_MAX_EL,      /*!< Maximum elevation. */
43     MULTI_PASS_COL_AOS_AZ,      /*!< Azimuth at AOS. */
44     MULTI_PASS_COL_MAX_EL_AZ,   /*!< Azimuth at max el. */
45     MULTI_PASS_COL_LOS_AZ,      /*!< Azimuth at LOS. */
46     MULTI_PASS_COL_ORBIT,       /*!< Orbit number. */
47     MULTI_PASS_COL_VIS,         /*!< Visibility. */
48     MULTI_PASS_COL_NUMBER
49 } multi_pass_col_t;
50 
51 /** Column flags for multi-pass listings. */
52 typedef enum {
53     MULTI_PASS_FLAG_AOS_TIME = 1 << MULTI_PASS_COL_AOS_TIME,    /*!< AOS time. */
54     MULTI_PASS_FLAG_TCA = 1 << MULTI_PASS_COL_TCA,      /*!< Time of closest approach. */
55     MULTI_PASS_FLAG_LOS_TIME = 1 << MULTI_PASS_COL_LOS_TIME,    /*!< LOS time. */
56     MULTI_PASS_FLAG_DURATION = 1 << MULTI_PASS_COL_DURATION,    /*!< Duration. */
57     MULTI_PASS_FLAG_MAX_EL = 1 << MULTI_PASS_COL_MAX_EL,        /*!< Maximum elevation. */
58     MULTI_PASS_FLAG_AOS_AZ = 1 << MULTI_PASS_COL_AOS_AZ,        /*!< Azimuth at AOS. */
59     MULTI_PASS_FLAG_MAX_EL_AZ = 1 << MULTI_PASS_COL_MAX_EL_AZ,  /*!< Azimuth at max el. */
60     MULTI_PASS_FLAG_LOS_AZ = 1 << MULTI_PASS_COL_LOS_AZ,        /*!< Azimuth at LOS. */
61     MULTI_PASS_FLAG_ORBIT = 1 << MULTI_PASS_COL_ORBIT,  /*!< Orbit number. */
62     MULTI_PASS_FLAG_VIS = 1 << MULTI_PASS_COL_VIS       /*!< Visibility. */
63 } multi_pass_flag_t;
64 
65 /** Column definition for single-pass listings. */
66 typedef enum {
67     SINGLE_PASS_COL_TIME = 0,
68     SINGLE_PASS_COL_AZ,         /*!< Azimuth. */
69     SINGLE_PASS_COL_EL,         /*!< Elvation. */
70     SINGLE_PASS_COL_RA,         /*!< Right Ascension. */
71     SINGLE_PASS_COL_DEC,        /*!< Declination. */
72     SINGLE_PASS_COL_RANGE,      /*!< Range. */
73     SINGLE_PASS_COL_RANGE_RATE, /*!< Range rate. */
74     SINGLE_PASS_COL_LAT,        /*!< Latitude. */
75     SINGLE_PASS_COL_LON,        /*!< Longitude. */
76     SINGLE_PASS_COL_SSP,        /*!< Sub satellite point grid square */
77     SINGLE_PASS_COL_FOOTPRINT,  /*!< Footprint. */
78     SINGLE_PASS_COL_ALT,        /*!< Altitude. */
79     SINGLE_PASS_COL_VEL,        /*!< Velocity. */
80     SINGLE_PASS_COL_DOPPLER,    /*!< Doppler shift at 100 MHz. */
81     SINGLE_PASS_COL_LOSS,       /*!< Path Loss at 100 MHz. */
82     SINGLE_PASS_COL_DELAY,      /*!< Signal delay */
83     SINGLE_PASS_COL_MA,         /*!< Mean Anomaly. */
84     SINGLE_PASS_COL_PHASE,      /*!< Phase. */
85     SINGLE_PASS_COL_VIS,        /*!< Visibility. */
86     SINGLE_PASS_COL_NUMBER
87 } single_pass_col_t;
88 
89 /** Column flags for single-pass listings. */
90 typedef enum {
91     SINGLE_PASS_FLAG_TIME = 1 << SINGLE_PASS_COL_TIME,
92     SINGLE_PASS_FLAG_AZ = 1 << SINGLE_PASS_COL_AZ,      /*!< Azimuth. */
93     SINGLE_PASS_FLAG_EL = 1 << SINGLE_PASS_COL_EL,      /*!< Elvation. */
94     SINGLE_PASS_FLAG_RA = 1 << SINGLE_PASS_COL_RA,      /*!< Right Ascension. */
95     SINGLE_PASS_FLAG_DEC = 1 << SINGLE_PASS_COL_DEC,    /*!< Declination. */
96     SINGLE_PASS_FLAG_RANGE = 1 << SINGLE_PASS_COL_RANGE,        /*!< Range. */
97     SINGLE_PASS_FLAG_RANGE_RATE = 1 << SINGLE_PASS_COL_RANGE_RATE,      /*!< Range rate. */
98     SINGLE_PASS_FLAG_LAT = 1 << SINGLE_PASS_COL_LAT,    /*!< Latitude. */
99     SINGLE_PASS_FLAG_LON = 1 << SINGLE_PASS_COL_LON,    /*!< Longitude. */
100     SINGLE_PASS_FLAG_SSP = 1 << SINGLE_PASS_COL_SSP,    /*!< Sub satellite point grid square */
101     SINGLE_PASS_FLAG_FOOTPRINT = 1 << SINGLE_PASS_COL_FOOTPRINT,        /*!< Footprint. */
102     SINGLE_PASS_FLAG_ALT = 1 << SINGLE_PASS_COL_ALT,    /*!< Altitude. */
103     SINGLE_PASS_FLAG_VEL = 1 << SINGLE_PASS_COL_VEL,    /*!< Velocity. */
104     SINGLE_PASS_FLAG_DOPPLER = 1 << SINGLE_PASS_COL_DOPPLER,    /*!< Doppler shift at 100 MHz. */
105     SINGLE_PASS_FLAG_LOSS = 1 << SINGLE_PASS_COL_LOSS,  /*!< Path Loss at 100 MHz. */
106     SINGLE_PASS_FLAG_DELAY = 1 << SINGLE_PASS_COL_DELAY,        /*!< Signal delay */
107     SINGLE_PASS_FLAG_MA = 1 << SINGLE_PASS_COL_MA,      /*!< Mean Anomaly. */
108     SINGLE_PASS_FLAG_PHASE = 1 << SINGLE_PASS_COL_PHASE,        /*!< Phase. */
109     SINGLE_PASS_FLAG_VIS = 1 << SINGLE_PASS_COL_VIS     /*!< Visibility. */
110 } single_pass_flag_t;
111 
112 void            show_pass(const gchar * satname, qth_t * qth, pass_t * pass,
113                           GtkWidget * toplevel);
114 void            show_passes(const gchar * satname, qth_t * qth,
115                             GSList * passes, GtkWidget * toplevel);
116 
117 #endif
118