slowrx/common.h

152 wiersze
3.3 KiB
C
Czysty Zwykły widok Historia

2011-07-07 14:09:57 +00:00
#ifndef _COMMON_H_
#define _COMMON_H_
#define MINSLANT 30
#define MAXSLANT 150
2011-08-16 21:29:38 +00:00
#define BUFLEN 4096
#define SYNCPIXLEN 1.5e-3
2011-07-07 14:09:57 +00:00
extern gboolean Abort;
extern gboolean Adaptive;
extern gboolean *HasSync;
extern gboolean ManualActivated;
extern gboolean ManualResync;
extern guchar *StoredLum;
extern pthread_t thread1;
extern guchar VISmap[];
typedef struct _FFTStuff FFTStuff;
struct _FFTStuff {
double *in;
fftw_complex *out;
fftw_plan Plan1024;
fftw_plan Plan2048;
};
extern FFTStuff fft;
typedef struct _PcmData PcmData;
struct _PcmData {
snd_pcm_t *handle;
gint16 *Buffer;
int WindowPtr;
2013-01-19 09:51:29 +00:00
gboolean BufferDrop;
};
extern PcmData pcm;
2013-01-09 19:46:39 +00:00
typedef struct _GuiObjs GuiObjs;
struct _GuiObjs {
GtkWidget *button_abort;
GtkWidget *button_browse;
GtkWidget *button_clear;
GtkWidget *button_start;
GtkWidget *combo_card;
GtkWidget *combo_mode;
GtkWidget *entry_picdir;
GtkWidget *eventbox_img;
GtkWidget *frame_manual;
GtkWidget *frame_slant;
GtkWidget *grid_vu;
GtkWidget *iconview;
GtkWidget *image_devstatus;
GtkWidget *image_pwr;
GtkWidget *image_rx;
GtkWidget *image_snr;
GtkWidget *label_fskid;
GtkWidget *label_lastmode;
GtkWidget *label_utc;
GtkWidget *menuitem_about;
GtkWidget *menuitem_quit;
GtkWidget *spin_shift;
GtkWidget *statusbar;
GtkWidget *tog_adapt;
GtkWidget *tog_fsk;
GtkWidget *tog_rx;
GtkWidget *tog_save;
GtkWidget *tog_setedge;
GtkWidget *tog_slant;
GtkWidget *window_about;
GtkWidget *window_main;
2013-01-09 19:46:39 +00:00
};
extern GuiObjs gui;
2011-08-08 21:36:47 +00:00
2013-01-13 19:52:31 +00:00
extern GdkPixbuf *pixbuf_PWR;
extern GdkPixbuf *pixbuf_SNR;
extern GdkPixbuf *pixbuf_rx;
extern GdkPixbuf *pixbuf_disp;
2011-08-11 11:48:35 +00:00
2011-08-13 12:26:49 +00:00
extern GtkListStore *savedstore;
extern GKeyFile *config;
2013-01-09 19:02:41 +00:00
2011-07-29 20:09:42 +00:00
typedef struct _PicMeta PicMeta;
struct _PicMeta {
gshort HedrShift;
guchar Mode;
double Rate;
int Skip;
GdkPixbuf *thumbbuf;
char timestr[40];
};
extern PicMeta CurrentPic;
2011-08-14 16:34:14 +00:00
// SSTV modes
2011-07-07 14:09:57 +00:00
enum {
2011-08-07 17:46:35 +00:00
UNKNOWN=0,
2011-07-07 14:09:57 +00:00
M1, M2, M3, M4,
S1, S2, SDX,
R72, R36, R24, R24BW, R12BW, R8BW,
PD50, PD90, PD120, PD160, PD180, PD240, PD290,
P3, P5, P7,
2011-08-07 17:46:35 +00:00
W2120, W2180
2011-07-07 14:09:57 +00:00
};
2011-08-14 16:34:14 +00:00
// Color encodings
2011-07-07 14:09:57 +00:00
enum {
GBR, RGB, YUV, BW
};
typedef struct ModeSpec {
char *Name;
char *ShortName;
2015-07-17 07:43:32 +00:00
double SyncTime;
double PorchTime;
double SeptrTime;
double PixelTime;
double LineTime;
gushort ImgWidth;
gushort NumLines;
guchar LineHeight;
guchar ColorEnc;
} _ModeSpec;
2011-07-07 14:09:57 +00:00
extern _ModeSpec ModeSpec[];
2011-07-07 14:09:57 +00:00
double power (fftw_complex coeff);
guchar clip (double a);
void createGUI ();
2011-08-20 05:51:27 +00:00
double deg2rad (double Deg);
double FindSync (guchar Mode, double Rate, int *Skip);
2011-08-20 05:51:27 +00:00
void GetFSK (char *dest);
gboolean GetVideo (guchar Mode, double Rate, int Skip, gboolean Redraw);
guchar GetVIS ();
guint GetBin (double Freq, guint FFTLen);
int initPcmDevice ();
2013-01-09 19:02:41 +00:00
void *Listen ();
void populateDeviceList ();
void readPcm (gint numsamples);
void saveCurrentPic();
void setVU (double *Power, int FFTLen, int WinIdx, gboolean ShowWin);
2013-01-13 19:52:31 +00:00
void evt_AbortRx ();
void evt_changeDevices ();
void evt_chooseDir ();
void evt_clearPix ();
void evt_clickimg ();
2013-01-13 19:52:31 +00:00
void evt_deletewindow ();
void evt_GetAdaptive ();
void evt_ManualStart ();
void evt_show_about ();
2011-08-02 23:42:56 +00:00
2011-07-07 14:09:57 +00:00
#endif