double leftsampledouble;
double rightsampledouble;
-fprintf(stderr,"process_iq_data: %d\n",rx);
-
sequence=((buffer[0]&0xFF)<<24)+((buffer[1]&0xFF)<<16)+((buffer[2]&0xFF)<<8)+(buffer[3]&0xFF);
timestamp=((long long)(buffer[4]&0xFF)<<56)+((long long)(buffer[5]&0xFF)<<48)+((long long)(buffer[6]&0xFF)<<40)+((long long)(buffer[7]&0xFF)<<32);
((long long)(buffer[8]&0xFF)<<24)+((long long)(buffer[9]&0xFF)<<16)+((long long)(buffer[10]&0xFF)<<8)+(long long)(buffer[11]&0xFF);
}
static void *level_thread(void* arg) {
- while(run_level && !gtk_widget_in_destruction(dialog)) {
+ while(run_level) {
peak=vox_get_peak();
g_idle_add(level_update,NULL);
usleep(100000); // 100ms
static void start_level_thread() {
int rc;
- fprintf(stderr,"start_level_thread\n");
run_level=1;
rc=pthread_create(&level_thread_id,NULL,level_thread,NULL);
if(rc != 0) {
}
}
+static void destroy_cb(GtkWidget *widget, gpointer data) {
+ run_level=0;
+}
+
static void vox_cb(GtkWidget *widget, gpointer data) {
vox_enabled=vox_enabled==1?0:1;
if(vox_enabled) {
parent_window=parent;
dialog=gtk_dialog_new();
+ g_signal_connect (dialog, "destroy", G_CALLBACK(destroy_cb), NULL);
gtk_window_set_transient_for(GTK_WINDOW(dialog),GTK_WINDOW(parent_window));
gtk_window_set_decorated(GTK_WINDOW(dialog),FALSE);