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; }
// 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; }
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; }