int main (int argc, char **argv) { if (argc > 1 && !strcmp (argv[1], "--verbose")) verbose = 1; else if (argc > 1 && !strcmp (argv[1], "--debug")) verbose = debug = 1; if (!gcry_check_version (GCRYPT_VERSION)) die ("version mismatch\n"); xgcry_control (GCRYCTL_DISABLE_SECMEM, 0); xgcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); if (debug) xgcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1u, 0); list_curves (); check_matching (); check_get_params (); return error_count ? 1 : 0; }
int main(int argc, char **argv) { int c = -1; int option_index; int img_height = DEFAULT_HEIGHT; int img_width = DEFAULT_WIDTH; int listen_port = LISTEN_PORT; for (;;) { c = getopt_long(argc, argv, short_options, long_options, &option_index); if (c == -1) { break; } switch(c) { case 'h': { if (optarg != NULL) { img_height = atoi(optarg); } break; }; case 'w': { if (optarg != NULL) { img_width = atoi(optarg); } break; }; case 'p': { if (optarg != NULL) { listen_port = atoi(optarg); } break; }; }; } if (open_socket(LISTEN_ADDR, listen_port) != 0) { printf("ERROR: cannot open socket\n"); return 1; } if (open_camera() != 0) { printf("Camera file error, exiting...\n"); return 1; } if (init_camera(img_height, img_width) != 0) { printf("Camera error, exiting...\n"); return 1; } else { printf("INFO: image size is %dx%d;\n\n", img_width, img_height); } while (1) { while (1) { if (wait_for_connect() == 0) { break; } } while (1) { if (read_current_socket() == 0) { if (check_get_params("exit") == 1) { goto APP_EXIT; } else if (check_get_params("bmp") == 1) { if (check_get_params(GETPARAM_SEND_HTTP_HEADERS)) { send(get_current_socket(), http_headers, strlen(http_headers), 0); send(get_current_socket(), header_ct_bmp, strlen(header_ct_bmp), 0); } read_camera(IMAGE_TYPE_BMP, get_current_socket(), check_get_params(GETPARAM_COLOR_IMAGE)); close_current_socket(); break; } else if (check_get_params("jpg") == 1) { //print_time(0); if (check_get_params(GETPARAM_SEND_HTTP_HEADERS)) { send(get_current_socket(), http_headers, strlen(http_headers), 0); send(get_current_socket(), header_ct_jpeg, strlen(header_ct_jpeg), 0); } read_camera(IMAGE_TYPE_JPG, get_current_socket(), check_get_params(GETPARAM_COLOR_IMAGE)); close_current_socket(); //print_time(1); break; } else if (check_get_params("yuyv") == 1) { // GET:yuyv read_camera(IMAGE_TYPE_YUYV, get_current_socket(), 0); close_current_socket(); break; } } } } APP_EXIT: printf("Exiting...\n"); close_camera(); close_current_socket(); close_main_socket(); return 0; }