diff --git a/main.c b/main.c index 8e7ba28..afd9983 100644 --- a/main.c +++ b/main.c @@ -123,11 +123,11 @@ stop_capturing(int fd) printf("Stopping capture\n"); enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - if(xioctl(fd, VIDIOC_STREAMOFF, &type) == -1) { + if (xioctl(fd, VIDIOC_STREAMOFF, &type) == -1) { errno_exit("VIDIOC_STREAMOFF"); } - for(i=0;imessage); g_clear_error(&error); } } else { - scale = (double)preview_width/gdk_pixbuf_get_width(pixbufrot); + scale = (double) preview_width / gdk_pixbuf_get_width(pixbufrot); cr = cairo_create(surface); - cairo_set_source_rgb(cr, 0,0,0); + cairo_set_source_rgb(cr, 0, 0, 0); cairo_paint(cr); cairo_scale(cr, scale, scale); gdk_cairo_set_source_pixbuf(cr, pixbufrot, 0, 0); @@ -406,30 +406,30 @@ process_image(const int *p, int size) } capture = 0; t = clock() - t; - time_taken = ((double)t)/CLOCKS_PER_SEC; - printf("%f fps\n", 1.0/time_taken); + time_taken = ((double) t) / CLOCKS_PER_SEC; + printf("%f fps\n", 1.0 / time_taken); } static gboolean -preview_draw (GtkWidget *widget, cairo_t *cr, gpointer data) +preview_draw(GtkWidget *widget, cairo_t *cr, gpointer data) { - cairo_set_source_surface(cr, surface, 0,0); + cairo_set_source_surface(cr, surface, 0, 0); cairo_paint(cr); return FALSE; } static gboolean -preview_configure (GtkWidget *widget, GdkEventConfigure *event) +preview_configure(GtkWidget *widget, GdkEventConfigure *event) { cairo_t *cr; if (surface) cairo_surface_destroy(surface); - - surface = gdk_window_create_similar_surface (gtk_widget_get_window(widget), - CAIRO_CONTENT_COLOR, - gtk_widget_get_allocated_width (widget), - gtk_widget_get_allocated_height (widget)); + + surface = gdk_window_create_similar_surface(gtk_widget_get_window(widget), + CAIRO_CONTENT_COLOR, + gtk_widget_get_allocated_width(widget), + gtk_widget_get_allocated_height(widget)); preview_width = gtk_widget_get_allocated_width(widget); preview_height = gtk_widget_get_allocated_height(widget); @@ -559,8 +559,6 @@ get_frame(int fd) } - - static int config_ini_handler(void *user, const char *section, const char *name, const char *value) @@ -603,7 +601,7 @@ config_ini_handler(void *user, const char *section, const char *name, g_printerr("Unsupported pixelformat %s\n", value); exit(1); } - } else if (strcmp(name, "driver") == 0){ + } else if (strcmp(name, "driver") == 0) { rear_dev_name = strdup(value); } else { g_printerr("Unknown key '%s' in [rear]\n", name); @@ -647,7 +645,7 @@ config_ini_handler(void *user, const char *section, const char *name, g_printerr("Unsupported pixelformat %s\n", value); exit(1); } - } else if (strcmp(name, "driver") == 0){ + } else if (strcmp(name, "driver") == 0) { front_dev_name = strdup(value); } else { g_printerr("Unknown key '%s' in [front]\n", name); @@ -668,17 +666,17 @@ config_ini_handler(void *user, const char *section, const char *name, } int -find_dev_node(int maj, int min, char* fnbuf) +find_dev_node(int maj, int min, char *fnbuf) { DIR *d; struct dirent *dir; struct stat info; - + d = opendir("/dev"); while ((dir = readdir(d)) != NULL) { sprintf(fnbuf, "/dev/%s", dir->d_name); stat(fnbuf, &info); - if (!S_ISCHR(info.st_mode)){ + if (!S_ISCHR(info.st_mode)) { continue; } if (major(info.st_rdev) == maj && minor(info.st_rdev) == min) { @@ -700,7 +698,7 @@ setup_rear() link.sink.entity = interface_entity_id; link.sink.index = 0; - if(xioctl(media_fd, MEDIA_IOC_SETUP_LINK, &link) < 0){ + if (xioctl(media_fd, MEDIA_IOC_SETUP_LINK, &link) < 0) { g_printerr("Could not disable front camera link\n"); return -1; } @@ -712,7 +710,7 @@ setup_rear() link.sink.entity = interface_entity_id; link.sink.index = 0; - if(xioctl(media_fd, MEDIA_IOC_SETUP_LINK, &link) < 0){ + if (xioctl(media_fd, MEDIA_IOC_SETUP_LINK, &link) < 0) { g_printerr("Could not enable rear camera link\n"); return -1; } @@ -738,7 +736,7 @@ setup_front() link.sink.entity = interface_entity_id; link.sink.index = 0; - if(xioctl(media_fd, MEDIA_IOC_SETUP_LINK, &link) < 0){ + if (xioctl(media_fd, MEDIA_IOC_SETUP_LINK, &link) < 0) { g_printerr("Could not disable rear camera link\n"); return -1; } @@ -750,7 +748,7 @@ setup_front() link.sink.entity = interface_entity_id; link.sink.index = 0; - if(xioctl(media_fd, MEDIA_IOC_SETUP_LINK, &link) < 0){ + if (xioctl(media_fd, MEDIA_IOC_SETUP_LINK, &link) < 0) { g_printerr("Could not enable front camera link\n"); return -1; } @@ -773,17 +771,17 @@ find_cameras() while (1) { entity.id = entity.id | MEDIA_ENT_ID_FLAG_NEXT; ret = xioctl(media_fd, MEDIA_IOC_ENUM_ENTITIES, &entity); - if (ret < 0){ + if (ret < 0) { break; } printf("At node %s, (0x%x)\n", entity.name, entity.type); - if(strncmp(entity.name, front_dev_name, strlen(front_dev_name)) == 0) { + if (strncmp(entity.name, front_dev_name, strlen(front_dev_name)) == 0) { front_entity_id = entity.id; find_dev_node(entity.dev.major, entity.dev.minor, front_dev); printf("Found front cam, is %s at %s\n", entity.name, front_dev); found++; } - if(strncmp(entity.name, rear_dev_name, strlen(rear_dev_name)) == 0) { + if (strncmp(entity.name, rear_dev_name, strlen(rear_dev_name)) == 0) { rear_entity_id = entity.id; find_dev_node(entity.dev.major, entity.dev.minor, rear_dev); printf("Found rear cam, is %s at %s\n", entity.name, rear_dev); @@ -795,7 +793,7 @@ find_cameras() printf("Found v4l2 interface node at %s\n", dev_name); } } - if(found < 2){ + if (found < 2) { return -1; } return 0; @@ -812,13 +810,13 @@ find_media_fd() struct media_device_info mdi = {0}; d = opendir("/dev"); while ((dir = readdir(d)) != NULL) { - if(strncmp(dir->d_name, "media", 5) == 0) { + 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){ + if (strcmp(mdi.driver, media_drv_name) == 0) { media_fd = fd; return 0; } @@ -839,10 +837,10 @@ on_camera_switch_clicked(GtkWidget *widget, gpointer user_data) { stop_capturing(video_fd); close(current_fd); - if(current_is_rear == 1){ + if (current_is_rear == 1) { setup_front(); current_is_rear = 0; - }else{ + } else { setup_rear(); current_is_rear = 1; }