00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include <ctime>
00024 #include <string>
00025
00026 #include <Alloc.hh>
00027 #include <dsp/DSPOp.hh>
00028
00029 #include "Config.h"
00030 #include "CfgFile.hh"
00031 #include "FrameBuf.hh"
00032 #include "GtkUtils.hh"
00033 #include "Messages.hh"
00034 #include "SockClie.hh"
00035 #include "SockOp.hh"
00036
00037
00038 #ifndef GUILOFAR_HH
00039 #define GUILOFAR_HH
00040
00041 #define LGUI_VER_MAJ GLOBAL_VERSMAJ
00042 #define LGUI_VER_MIN GLOBAL_VERSMIN
00043 #define LGUI_VER_PL GLOBAL_VERSPL
00044 #define LGUI_PADDING 8
00045 #define LGUI_ENTRY_WIDTH 80
00046 #define LGUI_LINESPECT_HEIGHT 40
00047 #define LGUI_CURSOR_HEIGHT 16
00048 #define LGUI_SERVER_MAXLEN 255
00049 #define LGUI_CH_LOWER 1
00050 #define LGUI_CH_UPPER 16
00051 #define LGUI_LOFAR_BG 0x00ffffff
00052 #define LGUI_LOFAR_FG 0x00000000
00053 #define LGUI_LINE_BG 0x00ffffff
00054 #define LGUI_LINE_FG 0x000000ff
00055 #define LGUI_CURSOR_BG 0x00ffffff
00056 #define LGUI_CURSOR_FG 0x00ff0000
00057 #define LGUI_CONV_BUF_SIZE 255
00058
00059 #define LGUI_TYPE_ITEMS 3
00060 #define LGUI_WINDOW_ITEMS 12
00061 #define LGUI_WIN_LENGTH_ITEMS 7
00062 #define LGUI_REMOVE_NOISE_ITEMS 6
00063 #define LGUI_CLIP_ITEMS 13
00064 #define LGUI_PALETTE_ITEMS 11
00065
00066
00070 enum
00071 {
00072 LGUI_PAL_BW = 0,
00073 LGUI_PAL_HSV = 1,
00074 LGUI_PAL_LIGHT = 2,
00075 LGUI_PAL_TEMP = 3,
00076 LGUI_PAL_DIR = 4,
00077 LGUI_PAL_GREEN = 5,
00078 LGUI_PAL_GREEN2 = 6,
00079 LGUI_PAL_GREEN3 = 7,
00080 LGUI_PAL_GREEN4 = 8,
00081 LGUI_PAL_PUREGREEN = 9,
00082 LGUI_PAL_WB = 10
00083 };
00084
00088 enum
00089 {
00090 LGUI_FIT_NONE = 0,
00091 LGUI_FIT_NEIGHBOR = 1,
00092 LGUI_FIT_AVERAGE = 2
00093 };
00094
00098 enum
00099 {
00100 LGUI_CURSOR_11 = 0,
00101 LGUI_CURSOR_INF = 1
00102 };
00103
00104
00108 typedef struct _stLofarCursor
00109 {
00110 int iType;
00111 int iPosition;
00112 int iDistance;
00113 } stLofarCursor, *stpLofarCursor;
00114
00115
00119 class clGUILofar
00120 {
00121 bool bRun;
00122 bool bConnected;
00123 bool bFreezed;
00124 bool bConfigured;
00125 bool bAveraged;
00126 bool bCursorDrag;
00127 bool bSaving;
00128 int iResMsgBufSize;
00129 int iFit;
00130 int iPalette;
00131 int iLofarWidth;
00132 int iLofarHeight;
00133 int iCursorX;
00134 int iCursorY;
00135 int iClips;
00136 int iTIFFCompression;
00137 int iJPEGQuality;
00138 int iContSaveScans;
00139 int iCompressMode;
00140 int iScanCount;
00141 int iImgCount;
00142 int iBeamCount;
00143 long lSpectSize;
00144 GDT fClip;
00145 stLofarReq sLofarRq;
00146 stLofarRes sLofarResHdr;
00147 stLofarCursor sLCursor;
00148
00149 GList *glServer;
00150
00151 gint giGdkTag;
00152 guint guSbCtxt;
00153
00154 GtkWidget *gwWindow;
00155 GtkWidget *gwVBox;
00156 GtkWidget *gwCBHide;
00157 GtkWidget *gwStatusBar;
00158
00159 GtkWidget *gwTable1;
00160 GtkWidget *gwLServer;
00161 GtkWidget *gwCServer;
00162 GtkWidget *gwLChannel;
00163 GtkObject *goAChannel;
00164 GtkWidget *gwSBChannel;
00165 GtkWidget *gwBConnect;
00166 GtkWidget *gwBDisconnect;
00167 GtkWidget *gwCBFreeze;
00168
00169 GtkWidget *gwTable2;
00170 GtkWidget *gwLType;
00171 GtkWidget *gwOMType;
00172 GtkWidget *gwMType;
00173 GtkWidget *gwaMIType[LGUI_TYPE_ITEMS];
00174 GtkWidget *gwLWindow;
00175 GtkWidget *gwOMWindow;
00176 GtkWidget *gwMWindow;
00177 GtkWidget *gwaMIWindow[LGUI_WINDOW_ITEMS];
00178 GtkWidget *gwLWinParam;
00179 GtkWidget *gwEWinParam;
00180 GtkWidget *gwLWinLength;
00181 GtkWidget *gwOMWinLength;
00182 GtkWidget *gwMWinLength;
00183 GtkWidget *gwaMIWinLength[LGUI_WIN_LENGTH_ITEMS];
00184 GtkWidget *gwLLowerFreq;
00185 GtkWidget *gwELowerFreq;
00186 GtkWidget *gwLHigherFreq;
00187 GtkWidget *gwEHigherFreq;
00188 GtkWidget *gwLOverlap;
00189 GtkWidget *gwEOverlap;
00190
00191 GtkWidget *gwTable3;
00192 GtkWidget *gwLRemoveNoise;
00193 GtkWidget *gwOMRemoveNoise;
00194 GtkWidget *gwMRemoveNoise;
00195 GtkWidget *gwaMIRemoveNoise[LGUI_REMOVE_NOISE_ITEMS];
00196 GtkWidget *gwLAlpha;
00197 GtkWidget *gwEAlpha;
00198 GtkWidget *gwLMeanLength;
00199 GtkWidget *gwEMeanLength;
00200 GtkWidget *gwLGapLength;
00201 GtkWidget *gwEGapLength;
00202 GtkWidget *gwLAverageCount;
00203 GtkWidget *gwEAverageCount;
00204 GtkWidget *gwLClip;
00205 GtkWidget *gwOMClip;
00206 GtkWidget *gwMClip;
00207 GtkWidget *gwaMIClip[LGUI_CLIP_ITEMS];
00208 GtkWidget *gwCBLinear;
00209 GtkWidget *gwCBDemon;
00210 GtkWidget *gwLPalette;
00211 GtkWidget *gwOMPalette;
00212 GtkWidget *gwMPalette;
00213 GtkWidget *gwaMIPalette[LGUI_PALETTE_ITEMS];
00214 GtkWidget *gwCBAverage;
00215 GtkWidget *gwCBSaving;
00216 GtkWidget *gwBSave;
00217 GtkWidget *gwFSSave;
00218
00219 GtkWidget *gwTable4;
00220 GtkWidget *gwLClipValue;
00221 GtkObject *goAClipValue;
00222 GtkWidget *gwHSClipValue;
00223
00224 GtkWidget *gwTableLofar;
00225 GtkWidget *gwLTopTime;
00226 GtkWidget *gwLBottomTime;
00227 GtkWidget *gwSWLofar;
00228 GtkWidget *gwTableLofar2;
00229 GtkWidget *gwHRFrequency;
00230 GtkWidget *gwVRTime;
00231 GtkWidget *gwDALine;
00232 GtkWidget *gwDACursor;
00233 GtkWidget *gwDALofar;
00234
00235 GdkGC *ggcLofarBG;
00236 GdkGC *ggcLofarFG;
00237 GdkGC *ggcLineBG;
00238 GdkGC *ggcLineFG;
00239 GdkGC *ggcCursorBG;
00240 GdkGC *ggcCursorFG;
00241 GdkCursor *gcCrossHair;
00242
00243 std::string strImgFileName;
00244 clAlloc SpectData;
00245 clAlloc AvgSpectData;
00246 clCfgFile Cfg;
00247 clDSPOp DSP;
00248 clFrameBuf FBLofar;
00249 clGtkUtils GtkUtils;
00250 clLofarMsg LofarMsg;
00251 clSockClie SClient;
00252 clSockOp SOp;
00253
00254 bool Build ();
00255 bool BuildTable1 ();
00256 bool BuildTable2 ();
00257 bool BuildTable3 ();
00258 bool BuildTable4 ();
00259 bool BuildTableLofar ();
00260 bool BuildDrawingPrims ();
00261 void FreeDrawingPrims ();
00262 bool ConnectSignals ();
00263 bool ParseServerStr (char *, int *, const char *);
00264 bool InitConnection (const char *, int);
00265 bool SendSettings ();
00266 void PrintStatus ();
00267 void SetPalette (int);
00268 void Configure ();
00269 void ConfigureHeight ();
00270 void DrawCursor ();
00271 void SaveInfo (const char *, time_t);
00272 void StartNewImgFile ();
00273 public:
00274 clGUILofar (int *, char ***);
00275 ~clGUILofar ();
00276 int Exec ();
00277 gint OnDelete (GtkWidget *, GdkEventAny *);
00278 void OnHideToggled (GtkToggleButton *, gpointer);
00279 gint OnConnectClick (GtkWidget *, gpointer);
00280 void OnFreezeToggled (GtkToggleButton *, gpointer);
00281 gint OnExposeLofar (GtkWidget *, GdkEventExpose *, gpointer);
00282 gint OnConfigureLofar (GtkWidget *, GdkEventConfigure *, gpointer);
00283 gint OnExposeLine (GtkWidget *, GdkEventExpose *, gpointer);
00284 gint OnExposeCursor (GtkWidget *, GdkEventExpose *, gpointer);
00285 gint OnMotionLofar (GtkWidget *, GdkEventMotion *, gpointer);
00286 gint OnPaletteActivate (GtkWidget *, gpointer);
00287 void OnAverageToggled (GtkToggleButton *, gpointer);
00288 void OnClipValueChanged (GtkAdjustment *, gpointer);
00289 void OnSaveClicks (GtkWidget *, gpointer);
00290 void OnGdkInput (gpointer, gint, GdkInputCondition);
00291 };
00292
00293 #endif
00294