static int insert_var(RStr *output, FmtInfo *fi, int pn) { switch(fi->cvt_spec) { case 'm': expanding_strcat(output,tf_mipname()); /* calling module */ break; case 't': expanding_strcat(output,tf_strgettime()); /* current simulator time */ break; case '%': expanding_strcat(output,"%"); /* percent sign */ break; default: /* don't need this check if checktf errors */ if(strchr(has_nfld,fi->cvt_spec)) { char *text; /* translate x's to h's for hex; NC segfaults if you don't */ if(fi->cvt_spec=='x') fi->cvt_spec='h'; if(fi->cvt_spec=='X') fi->cvt_spec='H'; text= format_val(fi, fi->cvt_spec=='s' ? tf_getcstringp(pn) : tf_strgetp(pn,fi->cvt_spec)); expanding_strcat(output,text); free(text); pn++; } } return pn; }
/** * @fn int _printf(const char *format, ...) * @brief Prints a formatted string on UART1 * * @param format The string */ int _printf(const char *format, ...) { int format_cntr=0; char temp_str[20]; int return_flag=0,cntr_val; long double f1,f2; char *str_temp; int *cntr=&cntr_val; va_list ap; va_start(ap, format); *cntr=0; while(*format) { temp_str[format_cntr]='\0'; if(*format=='%') { *format++; while(*format==' ') { format++; _putchar(' '); } while(condition) { temp_str[format_cntr++]=*format++; } temp_str[format_cntr]='\0'; if(*format=='%') { _putchar('%'); (*cntr)++; format_cntr=0; format++; continue; } /************** print unsigned ****************/ else if(*format=='u') { return_flag=format_val(temp_str,0,cntr,0); if(return_flag!=-1) print_hex_oct(va_arg(ap,unsigned int),10,0,return_flag,0,cntr); else { _putchar(*format); (*cntr)++; } format++; format_cntr=0; continue; }
CAMLprim value ocaml_gstreamer_appsrc_set_format(value _as, value _fmt) { CAMLparam2(_as, _fmt); appsrc *as = Appsrc_val(_as); GstFormat fmt = format_val(_fmt); caml_release_runtime_system(); g_object_set(G_OBJECT(as->appsrc), "format", fmt, NULL); caml_acquire_runtime_system(); CAMLreturn(Val_unit); }
CAMLprim value ocaml_gstreamer_element_duration(value _e, value _fmt) { CAMLparam2(_e, _fmt); GstElement *e = Element_val(_e); GstFormat fmt = format_val(_fmt); gint64 dur; gboolean ret; caml_release_runtime_system(); ret = gst_element_query_duration(e, fmt, &dur); caml_acquire_runtime_system(); if (!ret) caml_raise_constant(*caml_named_value("gstreamer_exn_failure")); CAMLreturn(caml_copy_int64(dur)); }
NODE * r_force_string(register NODE *s) { NODE *ret; #ifdef GAWKDEBUG if (s == NULL) cant_happen(); if (s->type != Node_val) cant_happen(); if (s->stref <= 0) cant_happen(); if ((s->flags & STR) != 0 && (s->stfmt == -1 || s->stfmt == CONVFMTidx)) return s; #endif ret = format_val(CONVFMT, CONVFMTidx, s); return ret; }
CAMLprim value ocaml_gstreamer_element_seek_simple(value _e, value _fmt, value _flags, value _pos) { CAMLparam4(_e, _fmt, _flags, _pos); GstElement *e = Element_val(_e); GstFormat fmt = format_val(_fmt); GstSeekFlags flags = 0; gint64 pos = Int64_val(_pos); gboolean ret; int i; for (i = 0; i < Wosize_val(_flags); i++) flags |= seek_flags_val(Field(_flags,i)); caml_release_runtime_system(); ret = gst_element_seek_simple(e, fmt, flags, pos); caml_acquire_runtime_system(); if (!ret) caml_raise_constant(*caml_named_value("gstreamer_exn_failure")); CAMLreturn(Val_unit); }
CAMLprim value ocaml_gstreamer_format_to_string(value _f) { GstFormat f = format_val(_f); return caml_copy_string(gst_format_get_name(f)); }