void prepare_client(t_data *data) { prepare_players(data); prepare_window(data); prepare_network(data); prepare_pseudo(data); }
int main(int argc, char* argv[]) { int ch; int i = 0; int f_flag = 0; char *filename = "data"; ToxWindow* a; for(i = 0; i < argc; i++) { if(argv[i][0] == '-') { if(argv[i][1] == 'f') { if(argv[i + 1] != NULL) filename = argv[i + 1]; else { f_flag = -1; } } } } init_term(); init_tox(); load_data(filename); init_windows(); if(f_flag == -1) { attron(COLOR_PAIR(3) | A_BOLD); wprintw(prompt->window, "You passed '-f' without giving an argument!\n" "defaulting to 'data' for a keyfile...\n"); attroff(COLOR_PAIR(3) | A_BOLD); } while(true) { // Update tox. do_tox(); // Draw. a = &windows[w_active]; prepare_window(a->window); a->blink = false; draw_bar(); a->onDraw(a); // Handle input. ch = getch(); if(ch == '\t') { w_active = (w_active + 1) % w_num; } else if(ch == KEY_BTAB) { w_active = (w_active + w_num - 1) % w_num; } else if(ch != ERR) { a->onKey(a, ch); } } return 0; }
int main(int argc, char *argv[]) { int ch; int f_flag = 0; char *filename = "data"; ToxWindow* a; int i = 0; for (i = 0; i < argc; ++i) { if (argv[i] == NULL) break; else if (argv[i][0] == '-') { if (argv[i][1] == 'f') { if (argv[i + 1] != NULL) filename = argv[i + 1]; else f_flag = -1; } } } init_term(); init_tox(); load_data(filename); init_windows(); init_window_status(); if (f_flag == -1) { attron(COLOR_PAIR(3) | A_BOLD); wprintw(prompt->window, "You passed '-f' without giving an argument!\n" "defaulting to 'data' for a keyfile...\n"); attroff(COLOR_PAIR(3) | A_BOLD); } while(true) { /* Update tox */ do_tox(); /* Draw */ a = &windows[active_window]; prepare_window(a->window); a->blink = false; draw_bar(); a->onDraw(a); /* Handle input */ ch = getch(); if (ch == '\t' || ch == KEY_BTAB) set_active_window(ch); else if (ch != ERR) a->onKey(a, ch); } return 0; }
void draw_active_window(Messenger * m) { ToxWindow *a = &windows[active_window]; prepare_window(a->window); a->blink = false; draw_bar(); a->onDraw(a); /* Handle input */ int ch = getch(); if (ch == '\t' || ch == KEY_BTAB) set_active_window(ch); else if (ch != ERR) a->onKey(a, m, ch); }
/* * A spatial file manager. Treat directories as independent resources with * fixed positions. Useful for navigating your filesystem with a predictable * GUI. */ int main(int argc, char *argv[]) { struct geometry *geometry; GtkWidget *window; WnckWindow *w; struct state *d; char *dir, ch; if ((d = state_new(argv[0])) == NULL) err(1, "could not build the callback data"); gtk_init(&argc, &argv); while ((ch = getopt(argc, argv, "")) != -1) switch (ch) { default: usage(); /* NOTREACHED */ } argc -= optind; argv += optind; dir = getdir(argc, argv); if (((w = window_by_title(dir)) != NULL) && window_activate(w) != -1) goto done; if (state_add_dir(d, dir) < 0) err(1, "state_add_dir"); if ((geometry = malloc(sizeof(struct geometry))) == NULL) err(1, "malloc"); getgeometry(dir, geometry); window = prepare_window(dir, geometry, d); free(geometry); gtk_widget_show(window); gtk_main(); done: state_free(d); return 0; }
int main(int argc, char* argv[]) { int ch; ToxWindow* a; init_term(); init_tox(); load_data(); init_windows(); while(true) { // Update tox. do_tox(); // Draw. a = &windows[w_active]; prepare_window(a->window); a->blink = false; draw_bar(); a->onDraw(a); // Handle input. ch = getch(); if(ch == '\t') { w_active = (w_active + 1) % w_num; } else if(ch == KEY_BTAB) { w_active = (w_active + w_num - 1) % w_num; } else if(ch != ERR) { a->onKey(a, ch); } } return 0; }
int main(int argc, char *argv[]) { char infile[255]; char outfile[255] = ""; char fmt_s[255]; char window_s[255] = "blackman"; // Default args. format_t fmt = FORMAT_FLOAT32; int verbose = 0; uint64_t skip = 0; waterfall_params_t params; params.overlap = 0; params.fftsize = 2048; params.clip = 0; int c; struct option long_options[] = {/*These options set a flag.*/ {"verbose", no_argument, &verbose, 1}, {"brief", no_argument, &verbose, 0}, /*These options don’t set a flag.*/ /*We distinguish them by their indices.*/ {"help", no_argument, NULL, 'h'}, {"fftsize", required_argument, NULL, 'n'}, {"format", required_argument, NULL, 'f'}, {"window", required_argument, NULL, 'w'}, {"outfile", required_argument, NULL, 'o'}, {"offset", required_argument, NULL, 's'}, {"overlap", required_argument, NULL, 'l'}, {"clip", required_argument, NULL, 'c'}, {"beta", required_argument, NULL, 'b'}, {0, 0, 0, 0} }; int option_index; while ((c = getopt_long(argc, argv, "hvf:n:o:s:w:l:c:", long_options, &option_index)) != -1) { switch (c) { case 0: // Flag option break; case 'h': usage(argv[0]); return EXIT_SUCCESS; case 'v': verbose = true; break; case 'n': if (!parse_uint32_t(optarg, &(params.fftsize))) { fprintf(stderr, "Invalid fftsize: %s\n", optarg); return EXIT_FAILURE; } if (!is_power_of_2(params.fftsize)) { fprintf(stderr, "Invalid fftsize (must be power of 2): %s\n", optarg); return EXIT_FAILURE; } break; case 'l': if (!parse_uint32_t(optarg, &(params.overlap))) { fprintf(stderr, "Invalid overlap: %s\n", optarg); return EXIT_FAILURE; } break; case 'f': strcpy(fmt_s, optarg); if (parse_format(&fmt, fmt_s) < 0) { fprintf(stderr, "Unknown format: %s\n", optarg); return EXIT_FAILURE; } break; case 'w': strcpy(window_s, optarg); break; case 'o': strcpy(outfile, optarg); break; case 's': if (!parse_uint64_t(optarg, &skip)) { fprintf(stderr, "Invalid value for byte offset\n"); return EXIT_FAILURE; } break; case 'b': if (!parse_double(optarg, &beta)) { fprintf(stderr, "Invalid value for beta\n"); return EXIT_FAILURE; } break; case 'c': if (!parse_uint64_t(optarg, &(params.clip))) { fprintf(stderr, "Invalid value for clip\n"); return EXIT_FAILURE; } break; case '?': if (optopt == 'c') fprintf(stderr, "Option -%c requires an argument.\n", optopt); else if (isprint(optopt)) fprintf(stderr, "Unknown option `-%c'.\n", optopt); else fprintf(stderr, "Unknown option character `\\x%x'.\n", optopt); usage(argv[0]); return EXIT_FAILURE; default: fprintf(stderr, "Error parsing arguments.\n"); return EXIT_FAILURE; } } if ((argc - optind) > 1) { fprintf(stderr, "Excess arguments.\n"); usage(argv[0]); return EXIT_FAILURE; } else if ((argc - optind) < 1) { fprintf(stderr, "Must supply an input filename.\n"); usage(argv[0]); return EXIT_FAILURE; } window_t win; if (prepare_window(&win, window_s, params.fftsize, verbose) < 0) { fprintf(stderr, "Unknown window function: %s", window_s); return EXIT_FAILURE; } params.win = win; if (verbose) printf("Opening input file...\n"); strcpy(infile, argv[optind]); FILE *readfp = fopen(infile, "rb"); if (readfp == NULL) { fprintf(stderr, "Failed to open input file: %s\n", infile); return EXIT_FAILURE; } fseek(readfp, 0, SEEK_END); int size = ftell(readfp); fseek(readfp, skip, SEEK_SET); size_t sample_size; read_samples_fn reader; switch (fmt) { case FORMAT_INT8: sample_size = sizeof(int8_t) * 2; reader = read_samples_int8; break; case FORMAT_UINT8: sample_size = sizeof(uint8_t) * 2; reader = read_samples_uint8; break; case FORMAT_INT16: sample_size = sizeof(int16_t) * 2; reader = read_samples_int16; break; case FORMAT_UINT16: sample_size = sizeof(uint16_t) * 2; reader = read_samples_uint16; break; case FORMAT_INT32: sample_size = sizeof(int32_t) * 2; reader = read_samples_int32; break; case FORMAT_UINT32: sample_size = sizeof(uint32_t) * 2; reader = read_samples_uint32; break; case FORMAT_FLOAT32: sample_size = sizeof(float) * 2; reader = read_samples_float32; break; case FORMAT_FLOAT64: sample_size = sizeof(double) * 2; reader = read_samples_float64; break; } params.reader = reader; uint64_t nsamples = size / sample_size; if ((params.clip > 0) && (nsamples > params.clip)) { nsamples = params.clip; } if (params.overlap > params.fftsize) { fprintf(stderr, "Overlap of %d is greater than FFT frame size of %d.\n", params.overlap, params.fftsize); return EXIT_FAILURE; } params.frames = nsamples / (params.fftsize - params.overlap); if (!strcmp(outfile, "")) { strcpy(outfile, infile); strcat(outfile, ".png"); } if (verbose) { printf("Reading %s samples from %s...\n", fmt_s, infile); printf("Writing %d x %d output to %s...\n", params.fftsize, params.frames, outfile); } FILE *writefp = fopen(outfile, "wb"); if (!writefp) { fprintf(stderr, "Error: failed to write to %s.\n", outfile); return EXIT_FAILURE; } png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); if (!png_ptr) { fprintf(stderr, "Error: could not initialize write struct.\n"); return EXIT_FAILURE; } png_infop info_ptr = png_create_info_struct(png_ptr); if (!info_ptr) { fprintf(stderr, "Error: could not initialize info struct.\n"); png_destroy_write_struct(&png_ptr, NULL); return EXIT_FAILURE; } if (setjmp(png_jmpbuf(png_ptr))) { fprintf(stderr, "Error: libpng error.\n"); png_destroy_write_struct(&png_ptr, &info_ptr); fclose(writefp); return EXIT_FAILURE; } if (verbose) printf("Writing PNG header..\n"); png_init_io(png_ptr, writefp); png_set_IHDR(png_ptr, info_ptr, params.fftsize, params.frames, 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); png_write_info(png_ptr, info_ptr); if (verbose) printf("Rendering (this may take a while)...\n"); waterfall(png_ptr, readfp, params); if (verbose) printf("Writing PNG footer...\n"); png_write_end(png_ptr, NULL); png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1); png_destroy_write_struct(&png_ptr, NULL); if (verbose) printf("Cleaning up...\n"); fclose(writefp); fclose(readfp); destroy_window(win); if (verbose) print_scale_stats(); return EXIT_SUCCESS; }