Пример #1
0
void					init_maze(register t_maze *const maze,
									register const char **const argv)
{
	maze->width = atoi(argv[1]);
	maze->height = atoi(argv[2]);
	parse_pos(argv[3], &maze->start);
	parse_pos(argv[4], &maze->end);
	maze->name = argv[5];
	maze->data = NULL;
	maze->file = NULL;
}
Пример #2
0
// unary-expr ::= - unary expr
//                + unary expr
//                ! unary expr
//                primary expr
Expr*
parse_unary_expr(Parser& p, Token_stream& ts)
{
  if(ts.next()) {
    switch (ts.next()->kind()) {
      // negative
      case minus_tok: return parse_neg(p, ts);
      case plus_tok: return parse_pos(p, ts);
      case bang_tok: return parse_not(p, ts);
      default:
        return parse_primary_expr(p, ts);
    }
  }

  return nullptr;
}
Пример #3
0
void	get_curs_pos(t_env *e)
{
	int		fd_input;
	char	*buf;

	buf = NULL;
	fd_input = open("/tmp/.parse", O_RDWR | O_CREAT | O_TRUNC, 0644);
	write(fd_input, "\033[6n", 20);
	close(fd_input);
	fd_input = open("/tmp/.parse", O_RDONLY);
	get_next_line(fd_input, &buf);
	close(fd_input);
	ft_putstr(buf);
	parse_pos(e, buf);
	ft_strdel(&buf);
}
static pa_hook_result_t sink_input_fixate_hook_callback(pa_core *core, pa_sink_input_new_data *data, struct userdata *u) {
    const char *hpos, *vpos, *role, *id;
    double f;
    char t[PA_CVOLUME_SNPRINT_MAX];
    pa_cvolume v;

    pa_assert(data);

    if (!(role = pa_proplist_gets(data->proplist, PA_PROP_MEDIA_ROLE)))
        return PA_HOOK_OK;

    if (!pa_streq(role, "event"))
        return PA_HOOK_OK;

    if ((id = pa_proplist_gets(data->proplist, PA_PROP_EVENT_ID))) {

        /* The test sounds should never be positioned in space, since
         * they might be triggered themselves to configure the speakers
         * in space, which we don't want to mess up. */

        if (pa_startswith(id, "audio-channel-"))
            return PA_HOOK_OK;

        if (pa_streq(id, "audio-volume-change"))
            return PA_HOOK_OK;

        if (pa_streq(id, "audio-test-signal"))
            return PA_HOOK_OK;
    }

    if (!(hpos = pa_proplist_gets(data->proplist, PA_PROP_EVENT_MOUSE_HPOS)))
        hpos = pa_proplist_gets(data->proplist, PA_PROP_WINDOW_HPOS);

    if (!(vpos = pa_proplist_gets(data->proplist, PA_PROP_EVENT_MOUSE_VPOS)))
        vpos = pa_proplist_gets(data->proplist, PA_PROP_WINDOW_VPOS);

    if (!hpos && !vpos)
        return PA_HOOK_OK;

    pa_cvolume_reset(&v, data->sink->sample_spec.channels);

    if (hpos) {
        if (parse_pos(hpos, &f) < 0)
            return PA_HOOK_OK;

        if (pa_channel_map_can_balance(&data->sink->channel_map)) {
            pa_log_debug("Positioning event sound '%s' horizontally at %0.2f.", pa_strnull(pa_proplist_gets(data->proplist, PA_PROP_EVENT_ID)), f);
            pa_cvolume_set_balance(&v, &data->sink->channel_map, f*2.0-1.0);
        }
    }

    if (vpos) {
        if (parse_pos(vpos, &f) < 0)
            return PA_HOOK_OK;

        if (pa_channel_map_can_fade(&data->sink->channel_map)) {
            pa_log_debug("Positioning event sound '%s' vertically at %0.2f.", pa_strnull(pa_proplist_gets(data->proplist, PA_PROP_EVENT_ID)), f);
            pa_cvolume_set_fade(&v, &data->sink->channel_map, f*2.0-1.0);
        }
    }

    pa_log_debug("Final volume factor %s.", pa_cvolume_snprint(t, sizeof(t), &v));
    pa_sink_input_new_data_add_volume_factor_sink(data, u->name, &v);

    return PA_HOOK_OK;
}