void end_listitem_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { close_link(state); if( state->doc_type == DocType_HTML || state->doc_type == DocType_PHP ) fwrite( "</DD>", 1, 5, state->dest_fp ); }
void start_variablelist_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { close_link(state); if( state->doc_type == DocType_HTML || state->doc_type == DocType_PHP ) fprintf( state->dest_fp, "<DL class=\"dense\">" ); }
void add_local_link( xml_elem_t *attr, ASXMLInterpreterState *state ) { while( attr ) { if( attr->tag_id == DOCBOOK_linkend_ID || attr->tag_id == DOCBOOK_url_ID ) { char *ptr ; int l ; close_link(state); ptr = strchr( attr->parm, '#' ); if( ptr != NULL ) { *ptr = '\0' ; state->curr_url_page = mystrdup( attr->parm ); state->curr_url_anchor = mystrdup( ptr+1 ); *ptr = '#' ; }else { state->curr_url_page = mystrdup( attr->parm ); state->curr_url_anchor = NULL ; } l = strlen(state->curr_url_page); clear_flags( state->flags, ASXMLI_LinkIsLocal ); if( state->curr_url_page[l-1] != '/' && ( l < 5 || mystrcasecmp( &(state->curr_url_page[l-5]), ".html" ) != 0) && ( l < 4 || mystrcasecmp( &(state->curr_url_page[l-4]), ".php" ) != 0) && ( l < 4 || mystrcasecmp( &(state->curr_url_page[l-4]), ".htm" ) != 0) && ( l < 4 || mystrcasecmp( &(state->curr_url_page[l-4]), ".jpg" ) != 0) && ( l < 4 || mystrcasecmp( &(state->curr_url_page[l-4]), ".png" ) != 0)) { set_flags( state->flags, ASXMLI_LinkIsLocal ); } if( state->doc_type == DocType_HTML || (state->doc_type == DocType_PHP && !get_flags( state->flags, ASXMLI_LinkIsLocal ))) { fprintf( state->dest_fp, "\n<A href=\"%s", state->curr_url_page ); if( get_flags( state->flags, ASXMLI_LinkIsLocal ) ) fwrite( ".html", 1, 5, state->dest_fp ); if( state->curr_url_anchor != NULL ) fprintf( state->dest_fp, "#%s", state->curr_url_anchor ); fwrite( "\">", 1, 2, state->dest_fp ); }else if( state->doc_type == DocType_PHP ) { if (TopicIndexName == NULL) /* added for php part of data catalogue */ { fprintf( state->dest_fp, "<? local_doc_url(\"graphics.php\",\"" ); } else fprintf( state->dest_fp, "<? local_doc_url(\"visualdoc.php\",\"" ); } set_flags( state->flags, ASXMLI_InsideLink|ASXMLI_LinkIsURL ); break; } attr = attr->next ; } }
void end_varlistentry_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { if( state->doc_type == DocType_HTML || state->doc_type == DocType_PHP ) close_link(state); // else if( state->doc_type == DocType_NROFF ) // fprintf( state->dest_fp, "\n"); }
void end_ulink_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { if( state->doc_type == DocType_HTML || state->doc_type == DocType_PHP ) close_link(state); if( state->doc_type == DocType_NROFF ) fputc( ' ', state->dest_fp ); }
void end_imagedata_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { close_link(state); if( state->doc_type == DocType_HTML || state->doc_type == DocType_PHP ) fwrite( "</IMG>", 1, 6, state->dest_fp ); // fprintf( state->dest_fp, "\n", NULL ); fputc( '\n', state->dest_fp ); }
void end_para_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { close_link(state); if( state->doc_type == DocType_HTML || state->doc_type == DocType_PHP ) { fwrite( "</P>", 1, 4, state->dest_fp ); }else if( state->doc_type == DocType_NROFF ) fprintf( state->dest_fp, "\n" ); }
void start_para_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { if( state->doc_type == DocType_HTML || state->doc_type == DocType_PHP ) { close_link(state); fprintf( state->dest_fp, "<P class=\"dense\">" ); }else if( state->doc_type == DocType_NROFF ) fprintf( state->dest_fp, "\n" ); }
void start_literallayout_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { close_link(state); set_flags( state->flags, ASXMLI_LiteralLayout ); if( state->doc_type == DocType_HTML || state->doc_type == DocType_PHP) { fprintf( state->dest_fp, "<PRE>"); }else if( state->doc_type == DocType_NROFF ) fprintf( state->dest_fp, "\n.fi\n"); }
void start_code_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { if( state->doc_type == DocType_HTML || state->doc_type == DocType_PHP ) { add_anchor( parm, state ); close_link(state); fprintf( state->dest_fp, "<P class=\"dense\">" ); fprintf( state->dest_fp, "<div class=\"container\">"); }else if( state->doc_type == DocType_NROFF ) fprintf( state->dest_fp, "\n.in +4n\n"); }
void start_example_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { set_flags( state->flags, ASXMLI_InsideExample ); if( state->doc_type == DocType_HTML || state->doc_type == DocType_PHP ) { add_anchor( parm, state ); close_link(state); fprintf( state->dest_fp, "<P class=\"dense\"> <B>Example : </B> " ); fprintf( state->dest_fp, "<div class=\"container\">"); }else if( state->doc_type == DocType_NROFF ) fprintf( state->dest_fp, "\nExample : "); }
void start_cmdsynopsis_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { ++(state->header_depth); if( state->doc_type == DocType_HTML || state->doc_type == DocType_PHP ) { add_anchor( parm, state ); if( state->doc_type == DocType_PHP ) fprintf( state->dest_fp, "<LI><b>SYNOPSIS</b><p>" ); else fprintf( state->dest_fp, "<LI><h%d>SYNOPSIS</h%d>", state->header_depth, state->header_depth ); close_link(state); }else if( state->doc_type == DocType_NROFF ) fprintf( state->dest_fp, ".SH SYNOPSIS\n"); }
void start_title_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { if( state->doc_type == DocType_HTML ) { if( get_flags( state->flags, ASXMLI_FormalPara ) ) { add_glossary_item( doc, state ); close_link(state); fprintf( state->dest_fp, "<B>" ); }else if( get_flags( state->flags, ASXMLI_RefSection ) ) fprintf( state->dest_fp, "<p class=\"refsect_header\"><B>" ); else fprintf( state->dest_fp, "<p class=\"sect_header\"><B>" ); }else if( state->doc_type == DocType_PHP ) { if( get_flags( state->flags, ASXMLI_FormalPara ) ) { add_glossary_item( doc, state ); close_link(state); } fprintf( state->dest_fp, "<B>"); } }
void add_anchor( xml_elem_t *attr, ASXMLInterpreterState *state ) { while( attr ) { if( attr->tag_id == DOCBOOK_id_ID ) { close_link(state); if( state->doc_type == DocType_HTML || state->doc_type == DocType_PHP) fprintf( state->dest_fp, "\n<A NAME=\"%s\">", attr->parm ); state->curr_url_anchor = mystrdup(attr->parm); clear_flags( state->flags, ASXMLI_LinkIsLocal|ASXMLI_LinkIsURL ); set_flags( state->flags, ASXMLI_InsideLink ); break; } attr = attr->next ; } }
void end_title_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { if( state->doc_type == DocType_HTML ) { fprintf( state->dest_fp, "</B>" ); if( !get_flags( state->flags, ASXMLI_FormalPara ) ) fprintf( state->dest_fp, "</p>"); }else if( state->doc_type == DocType_PHP ) { fprintf( state->dest_fp, "</B>"); if( !get_flags( state->flags, ASXMLI_FormalPara ) ) fprintf( state->dest_fp, "<br>"); } else if (state->doc_type == DocType_NROFF && !strcmp(state->doc_name, ASFAQ_NAME)) { fprintf( state->dest_fp, "\n"); } close_link(state); }
void start_term_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { #if 1 if( state->doc_type == DocType_HTML || state->doc_type == DocType_PHP ) { if( get_flags( state->flags, ASXMLI_InsideLink ) && state->curr_url_anchor != NULL ) { add_glossary_item( doc, state ); close_link(state); } } #endif if( state->doc_type == DocType_HTML || state->doc_type == DocType_PHP ) fprintf( state->dest_fp, "<DT class=\"dense\"><B>" ); else if( state->doc_type == DocType_NROFF ) { fprintf( state->dest_fp, "\n.IP "); fprintf( state->dest_fp, "\""); set_flags( state->flags, ASXMLI_EscapeDQuotes); } }
static void try_to_plug (GstPad *pad, const GstCaps *caps) { GstObject *parent = GST_OBJECT (GST_OBJECT_PARENT (pad)); const gchar *mime; const GList *item; GstCaps *res, *audiocaps; /* don't plug if we're already plugged - FIXME: memleak for pad */ if (GST_PAD_IS_LINKED (gst_element_get_pad (audiosink, "sink"))) { g_print ("Omitting link for pad %s:%s because we're already linked\n", GST_OBJECT_NAME (parent), GST_OBJECT_NAME (pad)); return; } /* as said above, we only try to plug audio... Omit video */ mime = gst_structure_get_name (gst_caps_get_structure (caps, 0)); if (g_strrstr (mime, "video")) { g_print ("Omitting link for pad %s:%s because mimetype %s is non-audio\n", GST_OBJECT_NAME (parent), GST_OBJECT_NAME (pad), mime); return; } /* can it link to the audiopad? */ audiocaps = gst_pad_get_caps (gst_element_get_pad (audiosink, "sink")); res = gst_caps_intersect (caps, audiocaps); if (res && !gst_caps_is_empty (res)) { g_print ("Found pad to link to audiosink - plugging is now done\n"); close_link (pad, audiosink, "sink", NULL); gst_caps_unref (audiocaps); gst_caps_unref (res); return; } gst_caps_unref (audiocaps); gst_caps_unref (res); /* try to plug from our list */ for (item = factories; item != NULL; item = item->next) { GstElementFactory *factory = GST_ELEMENT_FACTORY (item->data); const GList *pads; for (pads = gst_element_factory_get_static_pad_templates (factory); pads != NULL; pads = pads->next) { GstStaticPadTemplate *templ = pads->data; /* find the sink template - need an always pad*/ if (templ->direction != GST_PAD_SINK || templ->presence != GST_PAD_ALWAYS) { continue; } /* can it link? */ res = gst_caps_intersect (caps, gst_static_caps_get (&templ->static_caps)); if (res && !gst_caps_is_empty (res)) { GstElement *element; gchar *name_template = g_strdup (templ->name_template); /* close link and return */ gst_caps_unref (res); element = gst_element_factory_create (factory, NULL); close_link (pad, element, name_template, gst_element_factory_get_static_pad_templates (factory)); g_free (name_template); return; } gst_caps_unref (res); /* we only check one sink template per factory, so move on to the * next factory now */ break; } } /* if we get here, no item was found */ g_print ("No compatible pad found to decode %s on %s:%s\n", mime, GST_OBJECT_NAME (parent), GST_OBJECT_NAME (pad)); }
void end_anchor_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { if( state->doc_type == DocType_HTML || state->doc_type == DocType_PHP ) close_link(state); }
void end_formalpara_tag( xml_elem_t *doc, xml_elem_t *parm, ASXMLInterpreterState *state ) { close_link(state); clear_flags( state->flags, ASXMLI_FormalPara ); }
int main ( void ) { char* line; time_t* led_flash_timer; time_t* reboot_timer; socket_t* socket = socket0_g; int reboot_stage = 0; /* Turn off all LEDs as a starting point */ led_clear(); /* this must be first, because all the other init functions call malloc */ init_malloc(); /* Initialize current time and some timers */ init_current_time(); led_flash_timer = init_timer(); set_timer(led_flash_timer, 500); reboot_timer = init_timer(); /* receive packet buffer */ rx_packet_g = malloc(sizeof(packet_t)); /* socket init */ socket0_g = init_socket(0); socket1_g = init_socket(1); /* open ethernet port and wait for connection requests keep trying forever */ while (!open_link()); /* infinite loop. Everything is timer, interrupt and queue driven from here on down */ while (1) { /* Flash a heartbeat LED */ if (timer_expired(led_flash_timer)) { led_flip(0); set_timer(led_flash_timer, 500); } /* Check for newly downloaded tftp file. Add to all tx buffers */ /* Has a file been uploaded via tftp ? */ if (udp_file_g != NULL) { /* Notify telnet clients that file has been received */ if (udp_file_g->ready) { udp_file_g->ready = 0; telnet_broadcast("Received file %s, %d bytes, linux %d\r\n", udp_file_g->filename, udp_file_g->total_bytes, udp_file_g->linux_boot); if (process_file(socket0_g) == 0) /* Disconnect in 1 second */ set_timer(reboot_timer, 1000); else telnet_broadcast("Not an elf file\r\n"); } } /* reboot timer expired */ if (timer_expired(reboot_timer)) { /* First stage of reboot sequence is to nicely disconnect */ if (reboot_stage == 0) { set_timer(reboot_timer, 1000); reboot_stage = 1; socket0_g->tcp_disconnect = 1; socket1_g->tcp_disconnect = 1; } else { /* Second stage of reboot sequence is to turn off ethmac and then jump to restart vector */ close_link(); reboot(); } } /* Poll both sockets in turn for activity */ if (socket == socket0_g) socket = socket1_g; else socket = socket0_g; /* Check if any tcp packets need to be re-transmitted */ tcp_retransmit(socket); /* Handle exit command */ if (socket->tcp_disconnect && socket->tcp_connection_state == TCP_OPEN) { tcp_disconnect(socket); } /* Reset connection */ if (socket->tcp_reset) { socket->tcp_connection_state = TCP_CLOSED; socket->telnet_connection_state = TELNET_CLOSED; socket->telnet_options_sent = 0; tcp_reply(socket, NULL, 0); socket->tcp_reset = 0; } /* Send telnet options */ if (socket->tcp_connection_state == TCP_OPEN && !socket->telnet_options_sent){ telnet_options(socket); socket->telnet_options_sent = 1; } /* telnet connection open Communicate with client */ else if (socket->telnet_connection_state == TELNET_OPEN) { /* Send telnet greeting */ if (!socket->telnet_sent_opening_message){ put_line (socket->telnet_txbuf, "Amber Processor Boot Loader\r\n> "); socket->telnet_sent_opening_message = 1; } /* Parse telnet rx buffer */ if (get_line(socket->telnet_rxbuf, &line)) parse_command (socket, line); /* Transmit text from telnet tx buffer */ telnet_tx(socket, socket->telnet_txbuf); } } }