kopia lustrzana https://github.com/windytan/slowrx
"clear" button
rodzic
ce8eb4942d
commit
f6b2b8a115
11
common.c
11
common.c
|
@ -105,7 +105,7 @@ void changeDevices() {
|
|||
gtk_widget_set_tooltip_text(gui.devstatusicon, "Device was opened, but doesn't support 44100 Hz");
|
||||
break;
|
||||
case -2:
|
||||
gtk_image_set_from_stock(GTK_IMAGE(gui.devstatusicon),GTK_STOCK_NO,GTK_ICON_SIZE_SMALL_TOOLBAR);
|
||||
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");
|
||||
break;
|
||||
}
|
||||
|
@ -115,3 +115,12 @@ void changeDevices() {
|
|||
pthread_create (&thread1, NULL, Listen, NULL);
|
||||
|
||||
}
|
||||
|
||||
// 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), "");
|
||||
}
|
||||
|
|
2
common.h
2
common.h
|
@ -50,6 +50,7 @@ struct _GuiObjs {
|
|||
GtkWidget *picdirentry;
|
||||
GtkWidget *browsebtn;
|
||||
GtkWidget *aboutdialog;
|
||||
GtkWidget *btnclear;
|
||||
};
|
||||
extern GuiObjs gui;
|
||||
|
||||
|
@ -120,5 +121,6 @@ void populateDeviceList ();
|
|||
void setNewRxDir ();
|
||||
void chooseDir ();
|
||||
void show_aboutdialog();
|
||||
void clearPix ();
|
||||
|
||||
#endif
|
||||
|
|
18
gui.c
18
gui.c
|
@ -45,17 +45,19 @@ void createGUI() {
|
|||
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"));
|
||||
|
||||
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 (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);
|
||||
|
||||
savedstore = GTK_LIST_STORE(gtk_icon_view_get_model(GTK_ICON_VIEW(iconview)));
|
||||
|
||||
|
|
9
pcm.c
9
pcm.c
|
@ -27,9 +27,12 @@ void readPcm(gint numsamples) {
|
|||
if (samplesread < numsamples) {
|
||||
|
||||
if (samplesread == -EPIPE) printf("ALSA: buffer overrun\n");
|
||||
else if (samplesread == -EBADFD) printf("ALSA: PCM is not in the right state\n");
|
||||
else if (samplesread == -ESTRPIPE) printf("ALSA: a suspend event occurred\n");
|
||||
else if (samplesread < 0) printf("ALSA error %d\n", samplesread);
|
||||
else if (samplesread < 0) {
|
||||
printf("ALSA error %d (%s)\n", samplesread, snd_strerror(samplesread));
|
||||
gtk_widget_set_tooltip_text(gui.devstatusicon, "ALSA error");
|
||||
Abort = true;
|
||||
pthread_exit(NULL);
|
||||
}
|
||||
else printf("Can't read %d samples\n", numsamples);
|
||||
|
||||
// On first appearance of error, update the status icon
|
||||
|
|
15
slowrx.c
15
slowrx.c
|
@ -72,6 +72,7 @@ void *Listen() {
|
|||
gdk_threads_enter ();
|
||||
gtk_widget_set_sensitive (gui.vugrid, true);
|
||||
gtk_widget_set_sensitive (gui.btnabort, false);
|
||||
gtk_widget_set_sensitive (gui.btnclear, true);
|
||||
gdk_threads_leave ();
|
||||
|
||||
HedrShift = 0;
|
||||
|
@ -81,12 +82,15 @@ void *Listen() {
|
|||
snd_pcm_start (pcm_handle);
|
||||
Abort = false;
|
||||
|
||||
// Wait for VIS
|
||||
Mode = GetVIS();
|
||||
do {
|
||||
|
||||
if (Abort) pthread_exit(NULL);
|
||||
// Wait for VIS
|
||||
Mode = GetVIS();
|
||||
|
||||
if (Mode == 0) exit(EXIT_FAILURE);
|
||||
// Stop listening on ALSA error
|
||||
if (Abort) pthread_exit(NULL);
|
||||
|
||||
} while (Mode == 0);
|
||||
|
||||
printf(" ==== %s ====\n", ModeSpec[Mode].Name);
|
||||
|
||||
|
@ -117,6 +121,7 @@ void *Listen() {
|
|||
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_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);
|
||||
|
@ -247,7 +252,7 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
gtk_main();
|
||||
|
||||
// Save config
|
||||
// Save config on exit
|
||||
ConfFile = fopen(confpath->str,"w");
|
||||
if (ConfFile == NULL) {
|
||||
perror("Unable to open config file for writing");
|
||||
|
|
2
vis.c
2
vis.c
|
@ -180,5 +180,3 @@ guchar GetVIS () {
|
|||
else printf(" No VIS found\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue