kopia lustrzana https://github.com/windytan/slowrx
code cleanup: sed renaming of variables, alphabetical sort, etc
rodzic
f6b2b8a115
commit
19de6d649d
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<!-- interface-requires gtk+ 3.0 -->
|
||||
<object class="GtkAboutDialog" id="aboutdialog">
|
||||
<object class="GtkAboutDialog" id="window_about">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">5</property>
|
||||
<property name="resizable">False</property>
|
||||
|
@ -26,12 +26,12 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</property>
|
||||
<property name="license_type">custom</property>
|
||||
<child internal-child="vbox">
|
||||
<object class="GtkBox" id="aboutdialog-vbox1">
|
||||
<object class="GtkBox" id="window_about-vbox1">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">2</property>
|
||||
<child internal-child="action_area">
|
||||
<object class="GtkButtonBox" id="aboutdialog-action_area1">
|
||||
<object class="GtkButtonBox" id="window_about-action_area1">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="layout_style">end</property>
|
||||
</object>
|
||||
|
|
30
common.c
30
common.c
|
@ -60,6 +60,10 @@ double deg2rad (double Deg) {
|
|||
return (Deg / 180) * M_PI;
|
||||
}
|
||||
|
||||
|
||||
/*** Gtk+ event handlers ***/
|
||||
|
||||
|
||||
// Quit
|
||||
void delete_event() {
|
||||
gtk_main_quit ();
|
||||
|
@ -67,7 +71,7 @@ void delete_event() {
|
|||
|
||||
// Transform the NoiseAdapt toggle state into a variable
|
||||
void GetAdaptive() {
|
||||
Adaptive = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(gui.togadapt));
|
||||
Adaptive = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(gui.tog_adapt));
|
||||
}
|
||||
|
||||
// Manual Start clicked
|
||||
|
@ -92,25 +96,25 @@ void changeDevices() {
|
|||
|
||||
if (pcm_handle != NULL) snd_pcm_close(pcm_handle);
|
||||
|
||||
status = initPcmDevice(gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(gui.cardcombo)));
|
||||
status = initPcmDevice(gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(gui.combo_card)));
|
||||
|
||||
|
||||
switch(status) {
|
||||
case 0:
|
||||
gtk_image_set_from_stock(GTK_IMAGE(gui.devstatusicon),GTK_STOCK_YES,GTK_ICON_SIZE_SMALL_TOOLBAR);
|
||||
gtk_widget_set_tooltip_text(gui.devstatusicon, "Device successfully opened");
|
||||
gtk_image_set_from_stock(GTK_IMAGE(gui.image_devstatus),GTK_STOCK_YES,GTK_ICON_SIZE_SMALL_TOOLBAR);
|
||||
gtk_widget_set_tooltip_text(gui.image_devstatus, "Device successfully opened");
|
||||
break;
|
||||
case -1:
|
||||
gtk_image_set_from_stock(GTK_IMAGE(gui.devstatusicon),GTK_STOCK_DIALOG_WARNING,GTK_ICON_SIZE_SMALL_TOOLBAR);
|
||||
gtk_widget_set_tooltip_text(gui.devstatusicon, "Device was opened, but doesn't support 44100 Hz");
|
||||
gtk_image_set_from_stock(GTK_IMAGE(gui.image_devstatus),GTK_STOCK_DIALOG_WARNING,GTK_ICON_SIZE_SMALL_TOOLBAR);
|
||||
gtk_widget_set_tooltip_text(gui.image_devstatus, "Device was opened, but doesn't support 44100 Hz");
|
||||
break;
|
||||
case -2:
|
||||
gtk_image_set_from_stock(GTK_IMAGE(gui.devstatusicon),GTK_STOCK_DIALOG_ERROR,GTK_ICON_SIZE_SMALL_TOOLBAR);
|
||||
gtk_widget_set_tooltip_text(gui.devstatusicon, "Failed to open device");
|
||||
gtk_image_set_from_stock(GTK_IMAGE(gui.image_devstatus),GTK_STOCK_DIALOG_ERROR,GTK_ICON_SIZE_SMALL_TOOLBAR);
|
||||
gtk_widget_set_tooltip_text(gui.image_devstatus, "Failed to open device");
|
||||
break;
|
||||
}
|
||||
|
||||
g_key_file_set_string(keyfile,"slowrx","device",gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(gui.cardcombo)));
|
||||
g_key_file_set_string(keyfile,"slowrx","device",gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(gui.combo_card)));
|
||||
|
||||
pthread_create (&thread1, NULL, Listen, NULL);
|
||||
|
||||
|
@ -119,8 +123,8 @@ void changeDevices() {
|
|||
// Clear received picture & metadata
|
||||
void clearPix() {
|
||||
gdk_pixbuf_fill (DispPixbuf, 0);
|
||||
gtk_image_set_from_pixbuf(GTK_IMAGE(gui.RxImage), DispPixbuf);
|
||||
gtk_label_set_markup (GTK_LABEL(gui.idlabel), "");
|
||||
gtk_label_set_markup (GTK_LABEL(gui.utclabel), "");
|
||||
gtk_label_set_markup (GTK_LABEL(gui.lastmodelabel), "");
|
||||
gtk_image_set_from_pixbuf(GTK_IMAGE(gui.image_rx), DispPixbuf);
|
||||
gtk_label_set_markup (GTK_LABEL(gui.label_fskid), "");
|
||||
gtk_label_set_markup (GTK_LABEL(gui.label_utc), "");
|
||||
gtk_label_set_markup (GTK_LABEL(gui.label_lastmode), "");
|
||||
}
|
||||
|
|
113
common.h
113
common.h
|
@ -5,52 +5,53 @@
|
|||
#define MAXSLANT 150
|
||||
#define BUFLEN 4096
|
||||
|
||||
extern guchar VISmap[];
|
||||
extern bool Abort;
|
||||
extern bool Adaptive;
|
||||
extern bool BufferDrop;
|
||||
extern bool *HasSync;
|
||||
extern gshort HedrShift;
|
||||
extern double *in;
|
||||
extern bool ManualActivated;
|
||||
extern int MaxPcm;
|
||||
extern double *out;
|
||||
extern gint16 *PcmBuffer;
|
||||
extern int PcmPointer;
|
||||
extern int PWRdBthresh[];
|
||||
extern int SNRdBthresh[];
|
||||
extern int MaxPcm;
|
||||
extern gint16 *PcmBuffer;
|
||||
extern guchar *StoredLum;
|
||||
extern double *in;
|
||||
extern double *out;
|
||||
extern gshort HedrShift;
|
||||
extern bool Adaptive;
|
||||
extern bool ManualActivated;
|
||||
extern bool Abort;
|
||||
extern bool BufferDrop;
|
||||
extern bool *HasSync;
|
||||
|
||||
extern pthread_t thread1;
|
||||
extern pthread_t thread1;
|
||||
extern guchar VISmap[];
|
||||
|
||||
typedef struct _GuiObjs GuiObjs;
|
||||
struct _GuiObjs {
|
||||
GtkWidget *mainwindow;
|
||||
GtkWidget *RxImage;
|
||||
GtkWidget *button_abort;
|
||||
GtkWidget *button_browse;
|
||||
GtkWidget *button_clear;
|
||||
GtkWidget *button_start;
|
||||
GtkWidget *combo_card;
|
||||
GtkWidget *combo_mode;
|
||||
GtkWidget *entry_picdir;
|
||||
GtkWidget *frame_manual;
|
||||
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 *vugrid;
|
||||
GtkWidget *infolabel;
|
||||
GtkWidget *utclabel;
|
||||
GtkWidget *lastmodelabel;
|
||||
GtkWidget *cardcombo;
|
||||
GtkWidget *modecombo;
|
||||
GtkWidget *togslant;
|
||||
GtkWidget *togsave;
|
||||
GtkWidget *togadapt;
|
||||
GtkWidget *togrx;
|
||||
GtkWidget *togfsk;
|
||||
GtkWidget *btnabort;
|
||||
GtkWidget *btnstart;
|
||||
GtkWidget *manualframe;
|
||||
GtkWidget *shiftspin;
|
||||
GtkWidget *pwrimage;
|
||||
GtkWidget *snrimage;
|
||||
GtkWidget *idlabel;
|
||||
GtkWidget *devstatusicon;
|
||||
GtkWidget *picdirentry;
|
||||
GtkWidget *browsebtn;
|
||||
GtkWidget *aboutdialog;
|
||||
GtkWidget *btnclear;
|
||||
GtkWidget *tog_adapt;
|
||||
GtkWidget *tog_fsk;
|
||||
GtkWidget *tog_rx;
|
||||
GtkWidget *tog_save;
|
||||
GtkWidget *tog_slant;
|
||||
GtkWidget *window_about;
|
||||
GtkWidget *window_main;
|
||||
};
|
||||
extern GuiObjs gui;
|
||||
|
||||
|
@ -100,27 +101,27 @@ typedef struct ModeSpecDef {
|
|||
|
||||
extern ModeSpecDef ModeSpec[];
|
||||
|
||||
void createGUI ();
|
||||
bool GetVideo (guchar Mode, double Rate, int Skip, bool Redraw);
|
||||
guint GetBin (double Freq, guint FFTLen);
|
||||
guchar clip (double a);
|
||||
void setVU (short int PcmValue, double SNRdB);
|
||||
guchar GetVIS ();
|
||||
double FindSync (guchar Mode, double Rate, int *Skip);
|
||||
double deg2rad (double Deg);
|
||||
int initPcmDevice ();
|
||||
void delete_event ();
|
||||
void GetAdaptive ();
|
||||
void ManualStart ();
|
||||
void AbortRx ();
|
||||
void GetFSK (char *dest);
|
||||
void readPcm (gint numsamples);
|
||||
void *Listen ();
|
||||
void changeDevices ();
|
||||
void populateDeviceList ();
|
||||
void setNewRxDir ();
|
||||
void chooseDir ();
|
||||
void show_aboutdialog();
|
||||
void clearPix ();
|
||||
guchar clip (double a);
|
||||
void createGUI ();
|
||||
double deg2rad (double Deg);
|
||||
void delete_event ();
|
||||
double FindSync (guchar Mode, double Rate, int *Skip);
|
||||
void GetAdaptive ();
|
||||
void GetFSK (char *dest);
|
||||
bool GetVideo (guchar Mode, double Rate, int Skip, bool Redraw);
|
||||
guchar GetVIS ();
|
||||
guint GetBin (double Freq, guint FFTLen);
|
||||
int initPcmDevice ();
|
||||
void *Listen ();
|
||||
void ManualStart ();
|
||||
void populateDeviceList ();
|
||||
void readPcm (gint numsamples);
|
||||
void setNewRxDir ();
|
||||
void setVU (short int PcmValue, double SNRdB);
|
||||
void show_window_about();
|
||||
|
||||
#endif
|
||||
|
|
106
gui.c
106
gui.c
|
@ -11,76 +11,72 @@
|
|||
void createGUI() {
|
||||
|
||||
GtkBuilder *builder;
|
||||
GtkWidget *quititem, *aboutitem;
|
||||
GtkWidget *iconview;
|
||||
|
||||
builder = gtk_builder_new();
|
||||
gtk_builder_add_from_file(builder, "slowrx.ui", NULL);
|
||||
gtk_builder_add_from_file(builder, "aboutdialog.ui", NULL);
|
||||
gtk_builder_add_from_file(builder, "window_about.ui", NULL);
|
||||
|
||||
quititem = GTK_WIDGET(gtk_builder_get_object(builder,"quititem"));
|
||||
aboutitem = GTK_WIDGET(gtk_builder_get_object(builder,"aboutitem"));
|
||||
|
||||
gui.mainwindow = GTK_WIDGET(gtk_builder_get_object(builder,"mainwindow"));
|
||||
gui.aboutdialog = GTK_WIDGET(gtk_builder_get_object(builder,"aboutdialog"));
|
||||
gui.vugrid = GTK_WIDGET(gtk_builder_get_object(builder,"vugrid"));
|
||||
gui.RxImage = GTK_WIDGET(gtk_builder_get_object(builder,"RxImage"));
|
||||
gui.statusbar = GTK_WIDGET(gtk_builder_get_object(builder,"statusbar"));
|
||||
gui.utclabel = GTK_WIDGET(gtk_builder_get_object(builder,"utclabel"));
|
||||
gui.lastmodelabel = GTK_WIDGET(gtk_builder_get_object(builder,"lastmodelabel"));
|
||||
gui.cardcombo = GTK_WIDGET(gtk_builder_get_object(builder,"cardcombo"));
|
||||
gui.togslant = GTK_WIDGET(gtk_builder_get_object(builder,"TogSlant"));
|
||||
gui.togsave = GTK_WIDGET(gtk_builder_get_object(builder,"TogSave"));
|
||||
gui.togadapt = GTK_WIDGET(gtk_builder_get_object(builder,"TogAdapt"));
|
||||
gui.togrx = GTK_WIDGET(gtk_builder_get_object(builder,"TogRx"));
|
||||
gui.togfsk = GTK_WIDGET(gtk_builder_get_object(builder,"TogFSK"));
|
||||
gui.modecombo = GTK_WIDGET(gtk_builder_get_object(builder,"modecombo"));
|
||||
gui.btnabort = GTK_WIDGET(gtk_builder_get_object(builder,"BtnAbort"));
|
||||
gui.btnstart = GTK_WIDGET(gtk_builder_get_object(builder,"BtnStart"));
|
||||
gui.manualframe = GTK_WIDGET(gtk_builder_get_object(builder,"ManualFrame"));
|
||||
gui.shiftspin = GTK_WIDGET(gtk_builder_get_object(builder,"ShiftSpin"));
|
||||
gui.pwrimage = GTK_WIDGET(gtk_builder_get_object(builder,"PowerImage"));
|
||||
gui.snrimage = GTK_WIDGET(gtk_builder_get_object(builder,"SNRImage"));
|
||||
gui.idlabel = GTK_WIDGET(gtk_builder_get_object(builder,"IDLabel"));
|
||||
gui.devstatusicon = GTK_WIDGET(gtk_builder_get_object(builder,"devstatusicon"));
|
||||
gui.browsebtn = GTK_WIDGET(gtk_builder_get_object(builder,"browsebtn"));
|
||||
gui.picdirentry = GTK_WIDGET(gtk_builder_get_object(builder,"picdirentry"));
|
||||
gui.btnclear = GTK_WIDGET(gtk_builder_get_object(builder,"BtnClear"));
|
||||
|
||||
iconview = GTK_WIDGET(gtk_builder_get_object(builder,"SavedIconView"));
|
||||
gui.button_abort = GTK_WIDGET(gtk_builder_get_object(builder,"BtnAbort"));
|
||||
gui.button_browse = GTK_WIDGET(gtk_builder_get_object(builder,"button_browse"));
|
||||
gui.button_clear = GTK_WIDGET(gtk_builder_get_object(builder,"BtnClear"));
|
||||
gui.button_start = GTK_WIDGET(gtk_builder_get_object(builder,"BtnStart"));
|
||||
gui.combo_card = GTK_WIDGET(gtk_builder_get_object(builder,"combo_card"));
|
||||
gui.combo_mode = GTK_WIDGET(gtk_builder_get_object(builder,"combo_mode"));
|
||||
gui.entry_picdir = GTK_WIDGET(gtk_builder_get_object(builder,"entry_picdir"));
|
||||
gui.frame_manual = GTK_WIDGET(gtk_builder_get_object(builder,"ManualFrame"));
|
||||
gui.grid_vu = GTK_WIDGET(gtk_builder_get_object(builder,"grid_vu"));
|
||||
gui.image_devstatus = GTK_WIDGET(gtk_builder_get_object(builder,"image_devstatus"));
|
||||
gui.image_pwr = GTK_WIDGET(gtk_builder_get_object(builder,"PowerImage"));
|
||||
gui.image_rx = GTK_WIDGET(gtk_builder_get_object(builder,"image_rx"));
|
||||
gui.image_snr = GTK_WIDGET(gtk_builder_get_object(builder,"SNRImage"));
|
||||
gui.label_fskid = GTK_WIDGET(gtk_builder_get_object(builder,"IDLabel"));
|
||||
gui.label_lastmode = GTK_WIDGET(gtk_builder_get_object(builder,"label_lastmode"));
|
||||
gui.label_utc = GTK_WIDGET(gtk_builder_get_object(builder,"label_utc"));
|
||||
gui.menuitem_quit = GTK_WIDGET(gtk_builder_get_object(builder,"menuitem_quit"));
|
||||
gui.menuitem_about = GTK_WIDGET(gtk_builder_get_object(builder,"menuitem_about"));
|
||||
gui.spin_shift = GTK_WIDGET(gtk_builder_get_object(builder,"ShiftSpin"));
|
||||
gui.statusbar = GTK_WIDGET(gtk_builder_get_object(builder,"statusbar"));
|
||||
gui.tog_adapt = GTK_WIDGET(gtk_builder_get_object(builder,"TogAdapt"));
|
||||
gui.tog_fsk = GTK_WIDGET(gtk_builder_get_object(builder,"TogFSK"));
|
||||
gui.tog_rx = GTK_WIDGET(gtk_builder_get_object(builder,"TogRx"));
|
||||
gui.tog_save = GTK_WIDGET(gtk_builder_get_object(builder,"TogSave"));
|
||||
gui.tog_slant = GTK_WIDGET(gtk_builder_get_object(builder,"TogSlant"));
|
||||
gui.window_about = GTK_WIDGET(gtk_builder_get_object(builder,"window_about"));
|
||||
gui.window_main = GTK_WIDGET(gtk_builder_get_object(builder,"window_main"));
|
||||
gui.iconview = GTK_WIDGET(gtk_builder_get_object(builder,"SavedIconView"));
|
||||
|
||||
g_signal_connect (quititem, "activate", G_CALLBACK(delete_event), NULL);
|
||||
g_signal_connect (gui.mainwindow, "delete-event", G_CALLBACK(delete_event), NULL);
|
||||
g_signal_connect (aboutitem, "activate", G_CALLBACK(show_aboutdialog), NULL);
|
||||
g_signal_connect_swapped(gui.togadapt, "toggled", G_CALLBACK(GetAdaptive), NULL);
|
||||
g_signal_connect (gui.btnstart, "clicked", G_CALLBACK(ManualStart), NULL);
|
||||
g_signal_connect (gui.btnabort, "clicked", G_CALLBACK(AbortRx), NULL);
|
||||
g_signal_connect (gui.cardcombo, "changed", G_CALLBACK(changeDevices), NULL);
|
||||
g_signal_connect (gui.browsebtn, "clicked", G_CALLBACK(chooseDir), NULL);
|
||||
g_signal_connect (gui.btnclear, "clicked", G_CALLBACK(clearPix), NULL);
|
||||
g_signal_connect (gui.menuitem_quit, "activate", G_CALLBACK(delete_event), NULL);
|
||||
g_signal_connect (gui.window_main, "delete-event", G_CALLBACK(delete_event), NULL);
|
||||
g_signal_connect (gui.menuitem_about,"activate", G_CALLBACK(show_window_about), NULL);
|
||||
g_signal_connect_swapped(gui.tog_adapt, "toggled", G_CALLBACK(GetAdaptive), NULL);
|
||||
g_signal_connect (gui.button_start, "clicked", G_CALLBACK(ManualStart), NULL);
|
||||
g_signal_connect (gui.button_abort, "clicked", G_CALLBACK(AbortRx), NULL);
|
||||
g_signal_connect (gui.combo_card, "changed", G_CALLBACK(changeDevices), NULL);
|
||||
g_signal_connect (gui.button_browse, "clicked", G_CALLBACK(chooseDir), NULL);
|
||||
g_signal_connect (gui.button_clear, "clicked", G_CALLBACK(clearPix), NULL);
|
||||
|
||||
savedstore = GTK_LIST_STORE(gtk_icon_view_get_model(GTK_ICON_VIEW(iconview)));
|
||||
savedstore = GTK_LIST_STORE(gtk_icon_view_get_model(GTK_ICON_VIEW(gui.iconview)));
|
||||
|
||||
RxPixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, false, 8, 320, 256);
|
||||
gdk_pixbuf_fill(RxPixbuf, 0x000000ff);
|
||||
DispPixbuf = gdk_pixbuf_scale_simple (RxPixbuf, 500, 400, GDK_INTERP_BILINEAR);
|
||||
gtk_image_set_from_pixbuf(GTK_IMAGE(gui.RxImage), DispPixbuf);
|
||||
gtk_image_set_from_pixbuf(GTK_IMAGE(gui.image_rx), DispPixbuf);
|
||||
|
||||
pixbufPWR = gdk_pixbuf_new (GDK_COLORSPACE_RGB, false, 8, 100, 20);
|
||||
pixbufSNR = gdk_pixbuf_new (GDK_COLORSPACE_RGB, false, 8, 100, 20);
|
||||
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(gui.modecombo), 0);
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(gui.combo_mode), 0);
|
||||
|
||||
if (g_key_file_get_string(keyfile,"slowrx","rxdir",NULL) != NULL) {
|
||||
gtk_entry_set_text(GTK_ENTRY(gui.picdirentry),g_key_file_get_string(keyfile,"slowrx","rxdir",NULL));
|
||||
gtk_entry_set_text(GTK_ENTRY(gui.entry_picdir),g_key_file_get_string(keyfile,"slowrx","rxdir",NULL));
|
||||
} else {
|
||||
g_key_file_set_string(keyfile,"slowrx","rxdir",g_get_home_dir());
|
||||
gtk_entry_set_text(GTK_ENTRY(gui.picdirentry),g_key_file_get_string(keyfile,"slowrx","rxdir",NULL));
|
||||
gtk_entry_set_text(GTK_ENTRY(gui.entry_picdir),g_key_file_get_string(keyfile,"slowrx","rxdir",NULL));
|
||||
}
|
||||
|
||||
setVU(0, -100);
|
||||
|
||||
gtk_widget_show_all (gui.mainwindow);
|
||||
gtk_widget_show_all (gui.window_main);
|
||||
|
||||
}
|
||||
|
||||
|
@ -130,8 +126,8 @@ void setVU (short int PcmValue, double SNRdB) {
|
|||
}
|
||||
|
||||
gdk_threads_enter();
|
||||
gtk_image_set_from_pixbuf(GTK_IMAGE(gui.pwrimage), pixbufPWR);
|
||||
gtk_image_set_from_pixbuf(GTK_IMAGE(gui.snrimage), pixbufSNR);
|
||||
gtk_image_set_from_pixbuf(GTK_IMAGE(gui.image_pwr), pixbufPWR);
|
||||
gtk_image_set_from_pixbuf(GTK_IMAGE(gui.image_snr), pixbufSNR);
|
||||
gdk_threads_leave();
|
||||
|
||||
}
|
||||
|
@ -139,7 +135,7 @@ void setVU (short int PcmValue, double SNRdB) {
|
|||
void chooseDir() {
|
||||
GtkWidget *dialog;
|
||||
dialog = gtk_file_chooser_dialog_new ("Select folder",
|
||||
GTK_WINDOW(gui.mainwindow),
|
||||
GTK_WINDOW(gui.window_main),
|
||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
|
||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
|
||||
|
@ -147,13 +143,13 @@ void chooseDir() {
|
|||
|
||||
if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
|
||||
g_key_file_set_string(keyfile,"slowrx","rxdir",gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)));
|
||||
gtk_entry_set_text(GTK_ENTRY(gui.picdirentry),gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)));
|
||||
gtk_entry_set_text(GTK_ENTRY(gui.entry_picdir),gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)));
|
||||
}
|
||||
|
||||
gtk_widget_destroy (dialog);
|
||||
}
|
||||
|
||||
void show_aboutdialog() {
|
||||
gtk_dialog_run(GTK_DIALOG(gui.aboutdialog));
|
||||
gtk_widget_hide(gui.aboutdialog);
|
||||
void show_window_about() {
|
||||
gtk_dialog_run(GTK_DIALOG(gui.window_about));
|
||||
gtk_widget_hide(gui.window_about);
|
||||
}
|
||||
|
|
12
pcm.c
12
pcm.c
|
@ -29,7 +29,7 @@ void readPcm(gint numsamples) {
|
|||
if (samplesread == -EPIPE) printf("ALSA: buffer overrun\n");
|
||||
else if (samplesread < 0) {
|
||||
printf("ALSA error %d (%s)\n", samplesread, snd_strerror(samplesread));
|
||||
gtk_widget_set_tooltip_text(gui.devstatusicon, "ALSA error");
|
||||
gtk_widget_set_tooltip_text(gui.image_devstatus, "ALSA error");
|
||||
Abort = true;
|
||||
pthread_exit(NULL);
|
||||
}
|
||||
|
@ -38,8 +38,8 @@ void readPcm(gint numsamples) {
|
|||
// On first appearance of error, update the status icon
|
||||
if (!BufferDrop) {
|
||||
gdk_threads_enter();
|
||||
gtk_image_set_from_stock(GTK_IMAGE(gui.devstatusicon),GTK_STOCK_DIALOG_WARNING,GTK_ICON_SIZE_SMALL_TOOLBAR);
|
||||
gtk_widget_set_tooltip_text(gui.devstatusicon, "Device is dropping samples");
|
||||
gtk_image_set_from_stock(GTK_IMAGE(gui.image_devstatus),GTK_STOCK_DIALOG_WARNING,GTK_ICON_SIZE_SMALL_TOOLBAR);
|
||||
gtk_widget_set_tooltip_text(gui.image_devstatus, "Device is dropping samples");
|
||||
gdk_threads_leave();
|
||||
BufferDrop = true;
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ void populateDeviceList() {
|
|||
int numcards, row;
|
||||
|
||||
gdk_threads_enter();
|
||||
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gui.cardcombo), "default");
|
||||
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gui.combo_card), "default");
|
||||
gdk_threads_leave();
|
||||
|
||||
numcards = 0;
|
||||
|
@ -82,9 +82,9 @@ void populateDeviceList() {
|
|||
row++;
|
||||
snd_card_get_name(card,&cardname);
|
||||
gdk_threads_enter();
|
||||
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gui.cardcombo), cardname);
|
||||
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(gui.combo_card), cardname);
|
||||
if (strcmp(cardname,g_key_file_get_string(keyfile,"slowrx","device",NULL)) == 0)
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(gui.cardcombo), row);
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(gui.combo_card), row);
|
||||
|
||||
gdk_threads_leave();
|
||||
numcards++;
|
||||
|
|
2
prefs.ui
2
prefs.ui
|
@ -68,7 +68,7 @@
|
|||
<property name="left_padding">12</property>
|
||||
<property name="right_padding">10</property>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="cardcombo">
|
||||
<object class="GtkComboBoxText" id="combo_card">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
|
|
36
slowrx.c
36
slowrx.c
|
@ -70,9 +70,9 @@ void *Listen() {
|
|||
while (true) {
|
||||
|
||||
gdk_threads_enter ();
|
||||
gtk_widget_set_sensitive (gui.vugrid, true);
|
||||
gtk_widget_set_sensitive (gui.btnabort, false);
|
||||
gtk_widget_set_sensitive (gui.btnclear, true);
|
||||
gtk_widget_set_sensitive (gui.grid_vu, true);
|
||||
gtk_widget_set_sensitive (gui.button_abort, false);
|
||||
gtk_widget_set_sensitive (gui.button_clear, true);
|
||||
gdk_threads_leave ();
|
||||
|
||||
HedrShift = 0;
|
||||
|
@ -117,47 +117,47 @@ void *Listen() {
|
|||
// Get video
|
||||
strftime(rctime, sizeof(rctime)-1, "%H:%Mz", timeptr);
|
||||
gdk_threads_enter ();
|
||||
gtk_label_set_text (GTK_LABEL(gui.idlabel), "");
|
||||
gtk_widget_set_sensitive (gui.manualframe, false);
|
||||
gtk_widget_set_sensitive (gui.cardcombo, false);
|
||||
gtk_widget_set_sensitive (gui.btnabort, true);
|
||||
gtk_widget_set_sensitive (gui.btnclear, false);
|
||||
gtk_label_set_text (GTK_LABEL(gui.label_fskid), "");
|
||||
gtk_widget_set_sensitive (gui.frame_manual, false);
|
||||
gtk_widget_set_sensitive (gui.combo_card, false);
|
||||
gtk_widget_set_sensitive (gui.button_abort, true);
|
||||
gtk_widget_set_sensitive (gui.button_clear, false);
|
||||
gtk_statusbar_push (GTK_STATUSBAR(gui.statusbar), 0, "Receiving video..." );
|
||||
gtk_label_set_markup (GTK_LABEL(gui.lastmodelabel), ModeSpec[Mode].Name);
|
||||
gtk_label_set_markup (GTK_LABEL(gui.utclabel), rctime);
|
||||
gtk_label_set_markup (GTK_LABEL(gui.label_lastmode), ModeSpec[Mode].Name);
|
||||
gtk_label_set_markup (GTK_LABEL(gui.label_utc), rctime);
|
||||
gdk_threads_leave ();
|
||||
printf(" getvideo @ %.1f Hz, Skip %d, HedrShift %+d Hz\n", 44100.0, 0, HedrShift);
|
||||
|
||||
Finished = GetVideo(Mode, 44100, 0, false);
|
||||
|
||||
gdk_threads_enter ();
|
||||
gtk_widget_set_sensitive (gui.btnabort, false);
|
||||
gtk_widget_set_sensitive (gui.manualframe, true);
|
||||
gtk_widget_set_sensitive (gui.cardcombo, true);
|
||||
gtk_widget_set_sensitive (gui.button_abort, false);
|
||||
gtk_widget_set_sensitive (gui.frame_manual, true);
|
||||
gtk_widget_set_sensitive (gui.combo_card, true);
|
||||
gdk_threads_leave ();
|
||||
|
||||
id[0] = '\0';
|
||||
|
||||
if (Finished && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui.togfsk))) {
|
||||
if (Finished && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui.tog_fsk))) {
|
||||
gdk_threads_enter ();
|
||||
gtk_statusbar_push (GTK_STATUSBAR(gui.statusbar), 0, "Receiving FSK ID..." );
|
||||
gdk_threads_leave ();
|
||||
GetFSK(id);
|
||||
printf(" FSKID \"%s\"\n",id);
|
||||
gdk_threads_enter ();
|
||||
gtk_label_set_text (GTK_LABEL(gui.idlabel), id);
|
||||
gtk_label_set_text (GTK_LABEL(gui.label_fskid), id);
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
snd_pcm_drop(pcm_handle);
|
||||
|
||||
if (Finished && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui.togslant))) {
|
||||
if (Finished && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui.tog_slant))) {
|
||||
|
||||
// Fix slant
|
||||
setVU(0,-100);
|
||||
gdk_threads_enter ();
|
||||
gtk_statusbar_push (GTK_STATUSBAR(gui.statusbar), 0, "Calculating slant..." );
|
||||
gtk_widget_set_sensitive (gui.vugrid, false);
|
||||
gtk_widget_set_sensitive (gui.grid_vu, false);
|
||||
gdk_threads_leave ();
|
||||
printf(" FindSync @ %.1f Hz\n",Rate);
|
||||
Rate = FindSync(Mode, Rate, &Skip);
|
||||
|
@ -181,7 +181,7 @@ void *Listen() {
|
|||
gtk_list_store_set (savedstore, &iter, 0, thumbbuf, 1, id, -1);
|
||||
gdk_threads_leave ();
|
||||
|
||||
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(gui.togsave))) {
|
||||
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(gui.tog_save))) {
|
||||
|
||||
pngfilename = g_string_new(g_key_file_get_string(keyfile,"slowrx","rxdir",NULL));
|
||||
g_string_append_printf(pngfilename, "/%s_%s.png", timestr, ModeSpec[Mode].ShortName);
|
||||
|
|
28
slowrx.ui
28
slowrx.ui
|
@ -1,14 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<!-- interface-requires gtk+ 3.0 -->
|
||||
<object class="GtkAction" id="action1"/>
|
||||
<object class="GtkAdjustment" id="ShiftAdj">
|
||||
<property name="lower">-700</property>
|
||||
<property name="upper">1400</property>
|
||||
<property name="step_increment">10</property>
|
||||
<property name="page_increment">100</property>
|
||||
</object>
|
||||
<object class="GtkAction" id="action1"/>
|
||||
<object class="GtkWindow" id="mainwindow">
|
||||
<object class="GtkWindow" id="window_main">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="title" translatable="yes">slowrx</property>
|
||||
<property name="resizable">False</property>
|
||||
|
@ -52,7 +52,7 @@
|
|||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem" id="quititem">
|
||||
<object class="GtkImageMenuItem" id="menuitem_quit">
|
||||
<property name="label">gtk-quit</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
|
@ -77,13 +77,13 @@
|
|||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem" id="aboutitem">
|
||||
<object class="GtkImageMenuItem" id="menuitem_about">
|
||||
<property name="label">gtk-about</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_stock">True</property>
|
||||
<signal name="activate" handler="aboutdialog" swapped="no"/>
|
||||
<signal name="activate" handler="window_about" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
@ -145,7 +145,7 @@
|
|||
<property name="can_focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkImage" id="RxImage">
|
||||
<object class="GtkImage" id="image_rx">
|
||||
<property name="width_request">500</property>
|
||||
<property name="height_request">375</property>
|
||||
<property name="visible">True</property>
|
||||
|
@ -220,7 +220,7 @@
|
|||
<property name="can_focus">False</property>
|
||||
<property name="left_padding">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="utclabel">
|
||||
<object class="GtkLabel" id="label_utc">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
|
@ -261,7 +261,7 @@
|
|||
<property name="can_focus">False</property>
|
||||
<property name="left_padding">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="lastmodelabel">
|
||||
<object class="GtkLabel" id="label_lastmode">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
|
@ -589,7 +589,7 @@
|
|||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="modecombo">
|
||||
<object class="GtkComboBoxText" id="combo_mode">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="has_tooltip">True</property>
|
||||
|
@ -727,7 +727,7 @@
|
|||
<property name="left_padding">10</property>
|
||||
<property name="right_padding">10</property>
|
||||
<child>
|
||||
<object class="GtkGrid" id="vugrid">
|
||||
<object class="GtkGrid" id="grid_vu">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="row_spacing">4</property>
|
||||
|
@ -839,7 +839,7 @@
|
|||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="cardcombo">
|
||||
<object class="GtkComboBoxText" id="combo_card">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="has_tooltip">True</property>
|
||||
|
@ -858,7 +858,7 @@
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage" id="devstatusicon">
|
||||
<object class="GtkImage" id="image_devstatus">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-dialog-error</property>
|
||||
|
@ -909,7 +909,7 @@
|
|||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkEntry" id="picdirentry">
|
||||
<object class="GtkEntry" id="entry_picdir">
|
||||
<property name="width_request">300</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
|
@ -925,7 +925,7 @@
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="browsebtn">
|
||||
<object class="GtkButton" id="button_browse">
|
||||
<property name="label" translatable="yes">Browse...</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="related_action">action1</property>
|
||||
|
|
4
video.c
4
video.c
|
@ -94,7 +94,7 @@ bool GetVideo(guchar Mode, double Rate, int Skip, bool Redraw) {
|
|||
500.0/ModeSpec[Mode].ImgWidth * ModeSpec[Mode].ImgHeight * ModeSpec[Mode].YScale, GDK_INTERP_BILINEAR);
|
||||
|
||||
gdk_threads_enter();
|
||||
gtk_image_set_from_pixbuf(GTK_IMAGE(gui.RxImage), DispPixbuf);
|
||||
gtk_image_set_from_pixbuf(GTK_IMAGE(gui.image_rx), DispPixbuf);
|
||||
gdk_threads_leave();
|
||||
|
||||
Length = ModeSpec[Mode].LineLen * ModeSpec[Mode].ImgHeight * 44100;
|
||||
|
@ -378,7 +378,7 @@ bool GetVideo(guchar Mode, double Rate, int Skip, bool Redraw) {
|
|||
500.0/ModeSpec[Mode].ImgWidth * ModeSpec[Mode].ImgHeight * ModeSpec[Mode].YScale, GDK_INTERP_BILINEAR);
|
||||
|
||||
gdk_threads_enter();
|
||||
gtk_image_set_from_pixbuf(GTK_IMAGE(gui.RxImage), DispPixbuf);
|
||||
gtk_image_set_from_pixbuf(GTK_IMAGE(gui.image_rx), DispPixbuf);
|
||||
gdk_threads_leave();
|
||||
}
|
||||
}
|
||||
|
|
14
vis.c
14
vis.c
|
@ -123,8 +123,8 @@ guchar GetVIS () {
|
|||
gotvis = false;
|
||||
} else {
|
||||
gdk_threads_enter();
|
||||
gtk_combo_box_set_active (GTK_COMBO_BOX(gui.modecombo), VISmap[VIS]-1);
|
||||
gtk_spin_button_set_value (GTK_SPIN_BUTTON(gui.shiftspin), HedrShift);
|
||||
gtk_combo_box_set_active (GTK_COMBO_BOX(gui.combo_mode), VISmap[VIS]-1);
|
||||
gtk_spin_button_set_value (GTK_SPIN_BUTTON(gui.spin_shift), HedrShift);
|
||||
gdk_threads_leave();
|
||||
break;
|
||||
}
|
||||
|
@ -134,18 +134,18 @@ guchar GetVIS () {
|
|||
}
|
||||
|
||||
if (gotvis)
|
||||
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui.togrx))) break;
|
||||
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui.tog_rx))) break;
|
||||
|
||||
// Manual start
|
||||
if (ManualActivated) {
|
||||
|
||||
gdk_threads_enter();
|
||||
gtk_widget_set_sensitive( gui.manualframe, false );
|
||||
gtk_widget_set_sensitive( gui.cardcombo, false );
|
||||
gtk_widget_set_sensitive( gui.frame_manual, false );
|
||||
gtk_widget_set_sensitive( gui.combo_card, false );
|
||||
gdk_threads_leave();
|
||||
|
||||
selmode = gtk_combo_box_get_active (GTK_COMBO_BOX(gui.modecombo)) + 1;
|
||||
HedrShift = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(gui.shiftspin));
|
||||
selmode = gtk_combo_box_get_active (GTK_COMBO_BOX(gui.combo_mode)) + 1;
|
||||
HedrShift = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(gui.spin_shift));
|
||||
VIS = 0;
|
||||
for (i=0; i<0x80; i++) {
|
||||
if (VISmap[i] == selmode) {
|
||||
|
|
Ładowanie…
Reference in New Issue