T* emplace(Args&& ...args) { auto size = sizeof(T); if (available() < size) return nullptr; T* ptr = new(front_ptr()) T(std::forward<Args>(args)...); move_front(size); return ptr; }
void move_next_word(void) { char *tmp; int i; int max; tmp = g_main_line.cmd; i = g_main_line.curs_x; max = g_main_line.size_x; while (i < max && tmp[i] != ' ' && tmp[i] != '\t') { move_front(); i++; } while (i < max && (tmp[i] == ' ' || tmp[i] == '\t')) { move_front(); i++; } }
int move(int keyboard, t_pos *wolf) { if (keyboard == 126) move_front(wolf); else if (keyboard == 125) move_back(wolf); else if (keyboard == 124) move_right(wolf); else if (keyboard == 123) move_left(wolf); return (0); }
void complete_word(char *word, size_t start) { char *end; int i; end = ft_strsub(word, start, ft_strlen(word) - start); i = g_main_line.curs_x; while (i < g_main_line.size_x && ft_isalpha(g_main_line.cmd[i])) { move_front(); i++; } g_main_line.cmd = ft_str_insert(g_main_line.cmd, end, g_main_line.curs_x); g_main_line.curs_x += ft_strlen(end); g_main_line.size_x += ft_strlen(end); g_main_line.curs_x_win = (g_main_line.size_x + g_main_line.prompt) % g_main_line.win_col; g_main_line.curs_y = (g_main_line.size_x + g_main_line.prompt) / g_main_line.win_col; print_line(0); }
int main(int argc, char *argv[]) { in1=mraa_gpio_init(7); in2=mraa_gpio_init(8); in3=mraa_gpio_init(9); in4=mraa_gpio_init(10); en1=mraa_pwm_init(6); en2=mraa_pwm_init(5); mraa_gpio_dir(in1,MRAA_GPIO_OUT); mraa_gpio_dir(in2,MRAA_GPIO_OUT); mraa_pwm_period_ms(en1,20); mraa_pwm_enable(en1,1); mraa_gpio_dir(in3,MRAA_GPIO_OUT); mraa_gpio_dir(in4,MRAA_GPIO_OUT); mraa_pwm_period_ms(en2,20); mraa_pwm_enable(en2,1); char* ptr1 = argv[1]; char* ptr2 = argv[2]; char* ptr3 = argv[3]; float param,result; int i= atoi(ptr1); int j=atoi(ptr2); int k= atoi(ptr3); if (i == -2) { rotate_right(2);//because 20 degrees } else if( i == -1) { rotate_right90(); //calcualte for 90 degrees move_front(29); // 20 cms rotate_left90(); //calculate for 90 degrees } else { param=i/j; //convert to our metrix, in terms of distance moved by robot// result = atan((param) * 180 / PI); if(result < 0) { rotate_left((int)(result/10)); } else { rotate_right((int)(result/10)); } float dist=sqrt(((i*i)+(j*j))); if(k == 0) { dist = dist/3; } int num = (int) dist/(0.7) ; move_front(num); } return 0; }