int RpiTiming::run(void(*u)(), void(*r)()) { debug("Running Timer"); update = u; render = r; get_time(&ct); mt.tv_sec = ct.tv_sec; mt.tv_nsec = ct.tv_nsec; while (!q) { while (mark() > period) { update(); num_ticks++; printf("%ld",mark()); add_mark(period); } render(); num_frames++; // Optionally, check how much time remains and sleep } // Add try except for above loop? debug("Ended Timer Loop"); return q; // Return reason for quitting }
static void keypress_process(int keypress) { switch (keypress) { case KEYCODE_DOWN: case 'e': case 'j': case 0x0d: buffer_down(1); break; case KEYCODE_UP: case 'y': case 'k': buffer_up(1); break; case KEYCODE_PAGEDOWN: case ' ': case 'z': case 'f': buffer_down(max_displayed_line + 1); break; case KEYCODE_PAGEUP: case 'w': case 'b': buffer_up(max_displayed_line + 1); break; case 'd': buffer_down((max_displayed_line + 1) / 2); break; case 'u': buffer_up((max_displayed_line + 1) / 2); break; case KEYCODE_HOME: case 'g': case 'p': case '<': case '%': buffer_line(0); break; case KEYCODE_END: case 'G': case '>': cur_fline = MAXLINES; read_lines(); buffer_line(cur_fline); break; case 'q': case 'Q': less_exit(EXIT_SUCCESS); break; #if ENABLE_FEATURE_LESS_MARKS case 'm': add_mark(); buffer_print(); break; case '\'': goto_mark(); buffer_print(); break; #endif case 'r': case 'R': buffer_print(); break; /*case 'R': full_repaint(); break;*/ case 's': save_input_to_file(); break; case 'E': examine_file(); break; #if ENABLE_FEATURE_LESS_FLAGS case '=': m_status_print(); break; #endif #if ENABLE_FEATURE_LESS_REGEXP case '/': option_mask32 &= ~LESS_STATE_MATCH_BACKWARDS; regex_process(); break; case 'n': goto_match(match_pos + 1); break; case 'N': goto_match(match_pos - 1); break; case '?': option_mask32 |= LESS_STATE_MATCH_BACKWARDS; regex_process(); break; #endif #if ENABLE_FEATURE_LESS_DASHCMD case '-': flag_change(); buffer_print(); break; #ifdef BLOAT case '_': show_flag_status(); break; #endif #endif #if ENABLE_FEATURE_LESS_BRACKETS case '{': case '(': case '[': match_right_bracket(keypress); break; case '}': case ')': case ']': match_left_bracket(keypress); break; #endif case ':': colon_process(); break; } if (isdigit(keypress)) number_process(keypress); }
/* * ms_mark - server message handler */ int ms_mark(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { struct Client* acptr; if (!IsServer(sptr)) return protocol_violation(sptr, "MARK from non-server %s", cli_name(sptr)); if (!strcmp(parv[2], MARK_WEBIRC)) { if(parc < 4) return protocol_violation(sptr, "MARK webirc received too few parameters (%u)", parc); if ((acptr = FindUser(parv[1]))) { ircd_strncpy(cli_webirc(acptr), parv[3], BUFSIZE); sendcmdto_serv_butone(sptr, CMD_MARK, cptr, "%s %s :%s", cli_name(acptr), MARK_WEBIRC, parv[3]); } } else if (!strcmp(parv[2], MARK_GEOIP)) { if(parc < 5) return protocol_violation(sptr, "MARK geoip received too few parameters (%u)", parc); if ((acptr = FindUser(parv[1]))) { geoip_apply_mark(acptr, parv[3], parv[4], (parc > 5 ? parv[5] : NULL)); if (parc > 5) sendcmdto_serv_butone(sptr, CMD_MARK, cptr, "%s %s %s %s :%s", cli_name(acptr), MARK_GEOIP, parv[3], parv[4], parv[5]); else sendcmdto_serv_butone(sptr, CMD_MARK, cptr, "%s %s %s %s", cli_name(acptr), MARK_GEOIP, parv[3], parv[4]); } } else if (!strcmp(parv[2], MARK_CVERSION)) { if(parc < 4) return protocol_violation(sptr, "MARK client version received too few parameters (%u)", parc); if ((acptr = FindUser(parv[1]))) { ircd_strncpy(cli_version(acptr), parv[3], VERSIONLEN); sendcmdto_serv_butone(sptr, CMD_MARK, cptr, "%s %s :%s", cli_name(acptr), MARK_CVERSION, parv[3]); } } else if (!strcmp(parv[2], MARK_SSLCLIFP)) { if(parc < 4) return protocol_violation(sptr, "MARK SSL client certificate fingerprint received too few parameters (%u)", parc); if ((acptr = FindUser(parv[1]))) { ircd_strncpy(cli_sslclifp(acptr), parv[3], BUFSIZE); sendcmdto_serv_butone(sptr, CMD_MARK, cptr, "%s %s :%s", cli_name(acptr), MARK_SSLCLIFP, parv[3]); } } else if (!strcmp(parv[2], MARK_KILL)) { if(parc < 4) return protocol_violation(sptr, "MARK kill received too few parameters (%u)", parc); if ((acptr = FindUser(parv[1]))) { ircd_strncpy(cli_killmark(acptr), parv[3], BUFSIZE); sendcmdto_serv_butone(sptr, CMD_MARK, cptr, "%s %s :%s", cli_name(acptr), MARK_KILL, parv[3]); } } else if (!strcmp(parv[2], MARK_MARK) || !strcmp(parv[2], MARK_DNSBL_DATA)) { if(parc < 4) return protocol_violation(sptr, "MARK MARK (tag) received too few parameters (%u)", parc); if ((acptr = FindUser(parv[1]))) { add_mark(acptr, parv[3]); SetMarked(acptr); sendcmdto_serv_butone(sptr, CMD_MARK, cptr, "%s %s :%s", cli_name(acptr), MARK_MARK, parv[3]); } } return 0; }
static void keypress_process(int keypress) { switch (keypress) { case KEY_DOWN: case 'e': case 'j': case '\015': buffer_down(1); buffer_print(); break; case KEY_UP: case 'y': case 'k': buffer_up(1); buffer_print(); break; case PAGE_DOWN: case ' ': case 'z': buffer_down(height - 1); buffer_print(); break; case PAGE_UP: case 'w': case 'b': buffer_up(height - 1); buffer_print(); break; case 'd': buffer_down((height - 1) / 2); buffer_print(); break; case 'u': buffer_up((height - 1) / 2); buffer_print(); break; case 'g': case 'p': case '<': case '%': buffer_line(0); break; case 'G': case '>': buffer_line(num_flines - height + 2); break; case 'q': case 'Q': tless_exit(0); break; #ifdef CONFIG_FEATURE_LESS_MARKS case 'm': add_mark(); buffer_print(); break; case '\'': goto_mark(); buffer_print(); break; #endif case 'r': buffer_print(); break; case 'R': full_repaint(); break; case 's': if (inp_stdin) save_input_to_file(); break; case 'E': examine_file(); break; #ifdef CONFIG_FEATURE_LESS_FLAGS case '=': clear_line(); m_status_print(); break; #endif #ifdef CONFIG_FEATURE_LESS_REGEXP case '/': match_backwards = 0; regex_process(); break; case 'n': goto_match(match_pos + 1); break; case 'N': goto_match(match_pos - 1); break; case '?': match_backwards = 1; regex_process(); break; #endif #ifdef CONFIG_FEATURE_LESS_FLAGCS case '-': flag_change(); buffer_print(); break; case '_': show_flag_status(); break; #endif #ifdef CONFIG_FEATURE_LESS_BRACKETS case '{': case '(': case '[': match_right_bracket(keypress); break; case '}': case ')': case ']': match_left_bracket(keypress); break; #endif case ':': colon_process(); break; default: break; } if (isdigit(keypress)) number_process(keypress); }