Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

GUILofar.hh

Go to the documentation of this file.
00001 /*
00002 
00003     LOFAR/DEMON GUI, header
00004     Copyright (C) 2000-2003 Jussi Laako
00005 
00006     This program is free software; you can redistribute it and/or modify
00007     it under the terms of the GNU General Public License as published by
00008     the Free Software Foundation; either version 2 of the License, or
00009     (at your option) any later version.
00010 
00011     This program is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014     GNU General Public License for more details.
00015 
00016     You should have received a copy of the GNU General Public License
00017     along with this program; if not, write to the Free Software
00018     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
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             /* glib types */
00149             GList *glServer;
00150             /* gtk+ types */
00151             gint giGdkTag;
00152             guint guSbCtxt;
00153             // Top level
00154             GtkWidget *gwWindow;
00155             GtkWidget *gwVBox;
00156             GtkWidget *gwCBHide;
00157             GtkWidget *gwStatusBar;
00158             // Table 1
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             // Table 2
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             // Table 3
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             // Table 4
00219             GtkWidget *gwTable4;
00220             GtkWidget *gwLClipValue;
00221             GtkObject *goAClipValue;
00222             GtkWidget *gwHSClipValue;
00223             // Table lofar
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             // Drawing primitives and cursors
00235             GdkGC *ggcLofarBG;
00236             GdkGC *ggcLofarFG;
00237             GdkGC *ggcLineBG;
00238             GdkGC *ggcLineFG;
00239             GdkGC *ggcCursorBG;
00240             GdkGC *ggcCursorFG;
00241             GdkCursor *gcCrossHair;
00242             // Classes
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             /* Methods */
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 

Generated on Sun Oct 26 19:11:20 2003 for HASAS by doxygen 1.3.3