byte *tf_get_block(int i) { seg_desc[0] = '\0'; if(jump_to_segment(i, &tf_cseg)) { tf_segoffs = ftell(tapefd); if(read_header(rbuf, &tf_cseg) && interpret_header(rbuf, &tf_cseg)) return rbuf; } return NULL; }
int next_segment(void) { if(endnext) { endnext = 0; tf_cseg.segtype = endtype; tf_cseg.pause = endpause; playstate = endplay; return tf_cseg.segtype; } seg_desc[0] = '\0'; lead_pause = tf_cseg.pause; if(end_seg(&tf_cseg)) { currsegi = segi; if(read_header(rbuf, &tf_cseg)) interpret_header(rbuf, &tf_cseg); } if(tf_cseg.segtype >= SEG_DATA) { playstate = PL_PAUSE; if(lead_pause) finished = 1; } else playstate = PL_NONE; if(tf_cseg.segtype <= SEG_STOP && !finished) { endnext = 1; endtype = tf_cseg.segtype; endpause = tf_cseg.pause; endplay = playstate; if(lead_pause > 0) lead_pause--; tf_cseg.pause = 1; tf_cseg.segtype = SEG_VIRTUAL; playstate = PL_END; } return tf_cseg.segtype; }
static void interpret_one(gpointer d, gpointer ud) { Atom* a = (Atom*) d; GSList** stack = (GSList**) ud; /* g_debug("a->level=%i; e->last_level=%i", a->level, e->last_level); */ if ( a->level < g_slist_length(*stack) ) { fold_to(stack, a->level); } else if ( a->level > g_slist_length(*stack) ) { /* implicit multipart */ implicit_level_increase(stack); } switch (a->type) { case at_Header: interpret_header(stack, a->args); break; case at_Text: interpret_text(stack, a->args); break; case at_Message: interpret_message(stack, a->args); break; case at_Att: interpret_att(stack, a->args); break; case at_Multi: interpret_mlt(stack, a->args); break; case at_Empty: case at_Invalid: default: ; } }
static int on_headers_complete(http_parser* parser) { print_debug("headers complete\n"); return interpret_header((evweb_http_processer*)parser); }