Exemplo n.º 1
0
void	prepare_client(t_data *data)
{
  prepare_players(data);
  prepare_window(data);
  prepare_network(data);
  prepare_pseudo(data);
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
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;
}
Exemplo n.º 4
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);
}
Exemplo n.º 5
0
/*
 * 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;
}
Exemplo n.º 6
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;
}
Exemplo n.º 7
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;
}