Browse Source

Clean up console output

Martijn Braam 4 years ago
parent
commit
23b1051794
1 changed files with 34 additions and 36 deletions
  1. 34 36
      main.c

+ 34 - 36
main.c

@@ -109,7 +109,7 @@ GtkWidget *main_stack;
 GtkWidget *thumb_last;
 GtkWidget *control_box;
 GtkWidget *control_name;
-GtkWidget *control_slider;
+GtkAdjustment *control_slider;
 GtkWidget *control_auto;
 
 static int
@@ -344,6 +344,9 @@ draw_controls()
 		cairo_surface_destroy(status_surface);
 
 	// Make a service to show status of controls, 32px high
+	if (gtk_widget_get_window(preview) == NULL) {
+		return;
+	}
 	status_surface = gdk_window_create_similar_surface(gtk_widget_get_window(preview),
 		CAIRO_CONTENT_COLOR_ALPHA,
 		preview_width, 32);
@@ -404,7 +407,7 @@ init_sensor(char *fn, int width, int height, int mbus, int rate)
 	struct v4l2_subdev_format fmt = {};
 	fd = open(fn, O_RDWR);
 
-	g_printerr("Setting sensor rate to %d\n", rate);
+	g_print("Setting sensor rate to %d\n", rate);
 	interval.pad = 0;
 	interval.interval.numerator = 1;
 	interval.interval.denominator = rate;
@@ -413,10 +416,11 @@ init_sensor(char *fn, int width, int height, int mbus, int rate)
 		errno_exit("VIDIOC_SUBDEV_S_FRAME_INTERVAL");
 	}
 
-	g_printerr("Driver returned %d/%d frameinterval\n",
-		interval.interval.numerator, interval.interval.denominator);
+	if (interval.interval.numerator != 1 || interval.interval.denominator != rate)
+		g_printerr("Driver chose %d/%d instead\n",
+			interval.interval.numerator, interval.interval.denominator);
 
-	g_printerr("Setting sensor to %dx%d fmt %d\n",
+	g_print("Setting sensor to %dx%d fmt %d\n",
 		width, height, mbus);
 	fmt.pad = 0;
 	fmt.which = V4L2_SUBDEV_FORMAT_ACTIVE;
@@ -428,10 +432,10 @@ init_sensor(char *fn, int width, int height, int mbus, int rate)
 	if (xioctl(fd, VIDIOC_SUBDEV_S_FMT, &fmt) == -1) {
 		errno_exit("VIDIOC_SUBDEV_S_FMT");
 	}
-
-	g_printerr("Driver returned %dx%d fmt %d\n",
-		fmt.format.width, fmt.format.height,
-		fmt.format.code);
+	if (fmt.format.width != width || fmt.format.height != height || fmt.format.code != mbus)
+		g_printerr("Driver chose %dx%d fmt %d instead\n",
+			fmt.format.width, fmt.format.height,
+			fmt.format.code);
 
 	// Trigger continuous auto focus if the sensor supports it
 	if (v4l2_has_control(fd, V4L2_CID_FOCUS_AUTO)) {
@@ -515,7 +519,7 @@ init_device(int fd)
 		.type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
 	};
 	if (current.width > 0) {
-		g_printerr("Setting camera to %dx%d fmt %d\n",
+		g_print("Setting camera to %dx%d fmt %d\n",
 			current.width, current.height, current.fmt);
 		fmt.fmt.pix.width = current.width;
 		fmt.fmt.pix.height = current.height;
@@ -527,20 +531,20 @@ init_device(int fd)
 			show_error("Could not set camera mode");
 			return -1;
 		}
-		
-		g_printerr("Driver returned %dx%d fmt %d\n",
-			fmt.fmt.pix.width, fmt.fmt.pix.height,
-			fmt.fmt.pix.pixelformat);
+		if (fmt.fmt.pix.width != current.width ||
+			fmt.fmt.pix.height != current.height ||
+			fmt.fmt.pix.pixelformat != current.fmt)
+			g_printerr("Driver returned %dx%d fmt %d\n",
+				fmt.fmt.pix.width, fmt.fmt.pix.height,
+				fmt.fmt.pix.pixelformat);
 
 
 		/* Note VIDIOC_S_FMT may change width and height. */
 	} else {
-		g_printerr("Querying camera format\n");
-		/* Preserve original settings as set by v4l2-ctl for example */
 		if (xioctl(fd, VIDIOC_G_FMT, &fmt) == -1) {
 			errno_exit("VIDIOC_G_FMT");
 		}
-		g_printerr("Driver returned %dx%d fmt %d\n",
+		g_print("Got %dx%d fmt %d from the driver\n",
 			fmt.fmt.pix.width, fmt.fmt.pix.height,
 			fmt.fmt.pix.pixelformat);
 		current.width = fmt.fmt.pix.width;
@@ -784,7 +788,7 @@ process_image(const int *p, int size)
 			g_object_unref(pixbuf);
 
 			// Start post-processing the captured burst
-			g_printerr("Post process %s to %s.ext\n", burst_dir, fname_target);
+			g_print("Post process %s to %s.ext\n", burst_dir, fname_target);
 			sprintf(command, "%s %s %s &", processing_script, burst_dir, fname_target);
 			system(command);
 
@@ -1109,7 +1113,6 @@ find_cameras()
 		if (ret < 0) {
 			break;
 		}
-		printf("At node %s, (0x%x)\n", entity.name, entity.type);
 		if (strncmp(entity.name, front_cam.dev_name, strlen(front_cam.dev_name)) == 0) {
 			front_cam.entity_id = entity.id;
 			find_dev_node(entity.dev.major, entity.dev.minor, front_cam.dev);
@@ -1147,17 +1150,17 @@ find_media_fd()
 	while ((dir = readdir(d)) != NULL) {
 		if (strncmp(dir->d_name, "media", 5) == 0) {
 			sprintf(fnbuf, "/dev/%s", dir->d_name);
-			printf("Checking %s\n", fnbuf);
 			fd = open(fnbuf, O_RDWR);
 			xioctl(fd, MEDIA_IOC_DEVICE_INFO, &mdi);
-			printf("Found media device: %s\n", mdi.driver);
 			if (strcmp(mdi.driver, media_drv_name) == 0) {
+				printf("Found media device: %s (%s)\n", fnbuf, mdi.driver);
 				media_fd = fd;
 				return 0;
 			}
 			close(fd);
 		}
 	}
+	g_printerr("Could not find /dev/media* node matching '%s'\n", media_drv_name);
 	return 1;
 }
 
@@ -1228,18 +1231,18 @@ on_preview_tap(GtkWidget *widget, GdkEventButton *event, gpointer user_data)
 			current_control = USER_CONTROL_ISO;
 			gtk_label_set_text(GTK_LABEL(control_name), "ISO");
 			gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(control_auto), auto_gain);
-			gtk_adjustment_set_lower(GTK_ADJUSTMENT(control_slider), 0.0);
-			gtk_adjustment_set_upper(GTK_ADJUSTMENT(control_slider), (float)current.gain_max);
-			gtk_adjustment_set_value(GTK_ADJUSTMENT(control_slider), (double)gain);
+			gtk_adjustment_set_lower(control_slider, 0.0);
+			gtk_adjustment_set_upper(control_slider, (float)current.gain_max);
+			gtk_adjustment_set_value(control_slider, (double)gain);
 
 		} else if (event->x > 60 && event->x < 120) {
 			// Shutter angle
 			current_control = USER_CONTROL_SHUTTER;
 			gtk_label_set_text(GTK_LABEL(control_name), "Shutter");
 			gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(control_auto), auto_exposure);
-			gtk_adjustment_set_lower(GTK_ADJUSTMENT(control_slider), 1.0);
-			gtk_adjustment_set_upper(GTK_ADJUSTMENT(control_slider), 360.0);
-			gtk_adjustment_set_value(GTK_ADJUSTMENT(control_slider), (double)exposure);
+			gtk_adjustment_set_lower(control_slider, 1.0);
+			gtk_adjustment_set_upper(control_slider, 360.0);
+			gtk_adjustment_set_value(control_slider, (double)exposure);
 		}
 
 		return;
@@ -1304,7 +1307,7 @@ on_control_auto_toggled(GtkToggleButton *widget, gpointer user_data)
 			} else {
 				v4l2_ctrl_set(fd, V4L2_CID_AUTOGAIN, 0);
 				gain = v4l2_ctrl_get(fd, V4L2_CID_GAIN);
-				gtk_adjustment_set_value(GTK_ADJUSTMENT(control_slider), (double)gain);
+				gtk_adjustment_set_value(control_slider, (double)gain);
 			}
 			break;
 		case USER_CONTROL_SHUTTER:
@@ -1314,7 +1317,7 @@ on_control_auto_toggled(GtkToggleButton *widget, gpointer user_data)
 			} else {
 				v4l2_ctrl_set(fd, V4L2_CID_EXPOSURE_AUTO, V4L2_EXPOSURE_MANUAL);
 				exposure = v4l2_ctrl_get(fd, V4L2_CID_EXPOSURE);
-				gtk_adjustment_set_value(GTK_ADJUSTMENT(control_slider), (double)exposure);
+				gtk_adjustment_set_value(control_slider, (double)exposure);
 			}
 			break;
 	}
@@ -1476,7 +1479,6 @@ main(int argc, char *argv[])
 	GtkBuilder *builder = gtk_builder_new_from_resource("/org/postmarketos/Megapixels/camera.glade");
 
 	GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder, "window"));
-	GtkWidget *preview_box = GTK_WIDGET(gtk_builder_get_object(builder, "preview_box"));
 	GtkWidget *shutter = GTK_WIDGET(gtk_builder_get_object(builder, "shutter"));
 	GtkWidget *switch_btn = GTK_WIDGET(gtk_builder_get_object(builder, "switch_camera"));
 	GtkWidget *settings_btn = GTK_WIDGET(gtk_builder_get_object(builder, "settings"));
@@ -1491,7 +1493,7 @@ main(int argc, char *argv[])
 	thumb_last = GTK_WIDGET(gtk_builder_get_object(builder, "thumb_last"));
 	control_box = GTK_WIDGET(gtk_builder_get_object(builder, "control_box"));
 	control_name = GTK_WIDGET(gtk_builder_get_object(builder, "control_name"));
-	control_slider = GTK_WIDGET(gtk_builder_get_object(builder, "control_adj"));
+	control_slider = GTK_ADJUSTMENT(gtk_builder_get_object(builder, "control_adj"));
 	control_auto = GTK_WIDGET(gtk_builder_get_object(builder, "control_auto"));
 	g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
 	g_signal_connect(shutter, "clicked", G_CALLBACK(on_shutter_clicked), NULL);
@@ -1515,11 +1517,7 @@ main(int argc, char *argv[])
 	} else {
 		gtk_css_provider_load_from_resource(provider, "/org/postmarketos/Megapixels/camera.css");
 	}
-	GtkStyleContext *context = gtk_widget_get_style_context(preview_box);
-	gtk_style_context_add_provider(context,
-		GTK_STYLE_PROVIDER(provider),
-		GTK_STYLE_PROVIDER_PRIORITY_USER);
-	context = gtk_widget_get_style_context(error_box);
+	GtkStyleContext *context = gtk_widget_get_style_context(error_box);
 	gtk_style_context_add_provider(context,
 		GTK_STYLE_PROVIDER(provider),
 		GTK_STYLE_PROVIDER_PRIORITY_USER);