⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmethods.c

📁 speech signal process tools
💻 C
📖 第 1 页 / 共 5 页
字号:
  Object *o;    while(o = program.next)    kill_object(o);    return(TRUE);}/**********************************************************************/char *  meth_make_panel(ob, args)Object	*ob;char	*args;{  extern int	def_panel_loc_x, def_panel_loc_y;  static int	loc_x, loc_y, cols, quit, panel_choice, choice_horiz;  static char	input_file[200], panel_name[50],  panel_title[100], icon_title[50];  static Selector    a7 = {"quit_button", "%d", (char *) &quit,    NULL},    a6 = {"columns",     "%d", (char *) &cols,    &a7},    a5 = {"loc_y",      "%d", (char *) &loc_y,   &a6},    a4 = {"loc_x",      "%d", (char *) &loc_x,   &a5},    a3 = {"icon_title",  "#qstr", icon_title,    &a4},    a2 = {"title",      "#qstr", panel_title,    &a3},    a1b = {"choice_horiz",      "%d", (char*)&choice_horiz,    &a2},    a1a = {"panel_choice",      "%d", (char*)&panel_choice,    &a1b},    a1 = {"name",      "%s", panel_name,    &a1a},    a0 = {"file",      "%s", input_file,    &a1};    input_file[0] = '\0';  panel_name[0] = '\0';  panel_title[0] = '\0';  icon_title[0] = '\0';  loc_x = def_panel_loc_x;  loc_y = def_panel_loc_y;  panel_choice = 0;  choice_horiz = 0;  cols = 10;  quit = 0;  CHECK_QUERY(args, &a0)    if (get_args(args, &a0)) {      if (FIND_WAVES_MENU(input_file, input_file))	if(make_auxpanel(input_file, panel_name, quit, cols,			 panel_title, icon_title, loc_x, loc_y, panel_choice,			 choice_horiz)) 	  return ok;    }  return null;}/**********************************************************************/do_something(cmd)     char *cmd;{  if(cmd && *cmd) {    strip_trailing_spaces(cmd);        if(!strcmp(dispatch(receiver_prefixed(cmd)), ok))      return(TRUE);  }  return(FALSE);}/**********************************************************************/char *meth_make_add_op_panel(ob, args)Object	*ob;char	*args;{  extern int	def_panel_loc_x, def_panel_loc_y;  static int	loc_x, loc_y, ops_win, vars_win;  static char   panel_name[50],  help_file[NAMELEN];  static Selector    a7 = {"show_ops", "%d", (char *) &ops_win,    NULL},    a6 = {"show_vars",     "%d", (char *) &vars_win,    &a7},    a5 = {"loc_y",      "%d", (char *) &loc_y,   &a6},    a4 = {"loc_x",      "%d", (char *) &loc_x,   &a5},    a3 = {"help_file",  "#qstr", help_file,    &a4};    help_file[0] = '\0';  loc_x = def_panel_loc_x;  loc_y = def_panel_loc_y;  ops_win = vars_win = 0;  CHECK_QUERY(args, &a3)    get_args(args, &a3);  if(make_add_op_panel(help_file, loc_x, loc_y, ops_win, vars_win, do_something))	return ok;  return null;}/**********************************************************************/char *  meth_close_panel(ob, args)Object	*ob;char	*args;{  static char	panel_name[50];  static int inv;  static Selector    a0 = {"name",   "%s",   panel_name,     NULL},    a1 = {"invisible", "%d", (char*)&inv, &a0};  inv = 0;  panel_name[0] = '\0';  CHECK_QUERY(args, &a1)  if (get_args(args, &a1) && close_auxpanel(panel_name, inv))    return ok;  else return null;}/**********************************************************************/char *  meth_open_panel(ob, args)Object	*ob;char	*args;{  static char	panel_name[50];  static Selector    a0 = {"name",   "%s",   panel_name,	NULL};    panel_name[0] = '\0';  CHECK_QUERY(args, &a0)  if (get_args(args, &a0) && open_auxpanel(panel_name))    return ok;  else return null;}/**********************************************************************/char *  meth_kill_panel(ob, args)Object	*ob;char	*args;{  static char	panel_name[50];  static Selector    a0 = {"name",   "%s",   panel_name,	NULL};    panel_name[0] = '\0';  CHECK_QUERY(args, &a0)  if (get_args(args, &a0) && kill_auxpanel(panel_name))    return ok;  else return null;}/***********************************************************************/char *meth_add_waves(ob, args)     Object	    *ob;     char	    *args;{  extern void	    e_exec_waves();  extern Menuop   *wave_get_ops();    static char	    name[50];  static char	    command[100];  static char	    menu[50];  static char	    builtin[50];  static char	    submenu[50];  static Selector    a4 = {"submenu", "#qstr", submenu, NULL},    a3 = {"builtin", "#strq", builtin, &a4},    a2 = {"menu",	 "%s",	  menu,	   &a3},    a1b = {"command", "#strq",  command, &a2},    a1 = {"op", "#strq",  builtin, &a1b},    a0 = {"name",	 "#qstr", name,	   &a1};    *name = '\0';  *command = '\0';  strcpy(menu,"all");  *builtin = '\0';  *submenu = '\0';  CHECK_QUERY(args, &a0)  (void) get_args(args, &a0);    if(debug_level) {    fprintf(stderr,	    "%s: name \"%s\" menu \"%s\" builtin \"%s\" submenu \"%s\"\n",	    "meth_add_waves", name, menu, builtin, submenu);    fprintf(stderr, "\tcommand \"%s\"\n", command);  }    if(!!*command + !!*builtin + !!*submenu > 1) {    sprintf(notice_msg, 	    "%s: can specify only one of command, builtin, and submenu.",	    "meth_add_waves");    show_notice(1, notice_msg);    return null;  }    if(*command) {    menu_change(name, name,		new_menuop(menu, name, e_exec_waves, savestring(command)),		menu);    return ok;  }    if(*builtin) {    Menuop	*m, *find_op_in_list();    char    *namep = (*name) ? name : builtin;    if((!strcmp(menu,"all") || !strcmp(menu,"wave")) &&       ((m = find_op_in_list(builtin, "wave")) ||	(m = find_op_in_list(builtin, "all"))) && m->proc)      menu_change(namep, namep, m, "wave");    if((!strcmp(menu,"all") || !strcmp(menu,"spect")) &&       ((m = find_op_in_list(builtin, "spect")) ||	(m = find_op_in_list(builtin, "all"))) && m->proc)      menu_change(namep, namep, m, "spect");          return ok;  }    if(*submenu) {    if(add_button_submenu(name, menu))      return ok;  }    return null;}/**********************************************************************/char *meth_open_ctlwin(ob, str)     Object *ob;     char *str;{  CHECK_QUERY(str,NULL)    if (daddy) {    xv_set(daddy, FRAME_CLOSED, FALSE, 0);      xv_set(daddy, XV_SHOW, TRUE, 0);    return ok;  }  else return null;}/**********************************************************************/char *meth_close_ctlwin(ob, str)     Object *ob;     char *str;{  static int invisible = 0;  static Selector  a2 = {"invisible", "%d", (char*)&invisible, NULL};  Frame fr;    invisible = 0;  CHECK_QUERY(str, &a2)    get_args(str, &a2);  if (daddy) {    xv_set(daddy, FRAME_CLOSED, TRUE, 0);     if(invisible)      xv_set(daddy, XV_SHOW, FALSE, 0);     return ok;  }  else return null;}/**********************************************************************/char *meth_make_object(ob,args)     Object *ob;     char *args;{  extern double ref_size, ref_start;  extern int def_w_width, def_w_height, next_x, next_y;  extern char objectname[], inputname[], active_ids[], active_numbers[];  Object *o;  Signal *s;  View *v;  int oline;  static Selector    a11 = {"identifiers", "#strq", active_ids, &g1}, /* note linkage to globals!*/    a10 = {"numbers", "#strq", active_numbers, &a11},    a9 = {"duration", "%lf", (char *) &ref_size, &a10},    a8 = {"start", "%lf", (char *) &ref_start, &a9},    a7 = {"width", "%d", (char *) &new_width, &a8},    a6 = {"height", "%d", (char *) &new_height, &a7},    a5 = {"loc_y", "%d", (char *) &next_y, &a6},    a4 = {"loc_x", "%d", (char *) &next_x, &a5},    a1 = {"name", "%s", objectname, &a4},    a0 = {"file", "%s", inputname, &a1};    oline = line_type;  *active_ids = *active_numbers = 0;  new_width = new_height = 0;  CHECK_QUERY(args,&a0)    if (get_args(args,&a0)) {      post_set_process();      if (*inputname) {	(void)apply_waves_input_path(inputname,inputname);	panel_set_value(newFile_item,inputname);	create_new_signal_view(inputname);	new_width = new_height = 0;	if ((o = find_object(objectname))	    && (s = find_signal(o,inputname))	    && (v = s->views))	  set_active_channels(v);      }      *active_ids = *active_numbers = 0;      line_type = oline;      return(ok);    }  line_type = oline;  new_width = new_height = 0;  *active_ids = *active_numbers = 0;  return(null);}/***********************************************************************/insert_mark(o, mark)     Object *o;     register Marks *mark;{  register Marks *ma;    if(! (ma = o->marks)) {    o->marks = mark;    return TRUE;  }  if(ma->time >= mark->time) {    if((ma->time == mark->time) && (ma->color == mark->color))      return(FALSE);    o->marks = mark;    mark->next = ma;    return(TRUE);  }  while( ma->next && (ma->next->time < mark->time)) ma = ma->next;  while( ma->next && ma->next->time == mark->time) {    if(ma->next->color == mark->color) return(FALSE);    ma = ma->next;  }  mark->next = ma->next;  ma->next = mark;  return(TRUE);}/***********************************************************************/object_enter_mark(o,time,color)     Object *o;     double time;     int color;{  Marks *mark, *new_mark();    if(! (mark = new_mark(time, color))) {    fprintf(stderr,"Can't allocate another mark structure!\n");    return(FALSE);  }    if(! insert_mark(o, mark)) {    free((char *)mark);    return;  }  object_xor_mark(o, time, color);}/***********************************************************************/Marks *  new_mark(time, color)double time;int color;{  Marks *m;    if( ! (m = (Marks *)malloc(sizeof(Marks)))) return(NULL);    m->next = NULL;  m->time = time;  m->color = color;  return(m);}/***********************************************************************/kill_all_marks(o)     Object *o;{  Marks *m, *m2;    if(o && (m = o->marks)) {    while(m2 = m) {      object_xor_mark(o,m->time, m->color);      m = m->next;      free((char *)m2);    }    o->marks = NULL;  }}/***********************************************************************/object_kill_mark(o, time, color)     Object *o;     double time;     int color;{  Marks *ma, *map = NULL;    if((ma = o->marks)) {    while(ma) {      if((ma->time == time) && (ma->color == color)) {	object_xor_mark(o, time, color);	if(ma == o->marks)	  o->marks = ma->next;	else	  map->next = ma->next;	free((char *)ma);	return(TRUE);      }      map = ma;      ma = ma->next;    }  }  return(FALSE);}/***********************************************************************/char *meth_chdir(o,str)     Object *o;     char *str;{  static char path[NAMELEN];  static Selector a0 = {"path", "%s", path, NULL};  *path = 0;  CHECK_QUERY(str,&a0)  get_args(str,&a0);  if(*path) {    char scrat[NAMELEN];    (void)build_filename(scrat,"", path);    if( !chdir(scrat))      return(ok);  }  return(null);}/***********************************************************************/char *meth_setenv(o,str)     Object *o;     char *str;{  static char *val, var[MAXPATHLEN];  static int specsiz = 0;  static Selector a0 = {"variable", "%s", var, NULL},                  a1 = {"value", "#strq", NULL, &a0};  int nc;  if(str && strlen(str)) {    if((nc = strlen(str)) > (specsiz)) {      if(val)	free(val);      if(!(val = malloc(nc+1))) {	show_notice(1, "Allocation problems in meth_putenv().");	specsiz = 0;	return(null);      }      specsiz = nc;      a1.dest = val;    }    *val = *var = 0;    CHECK_QUERY(str,&a1)      get_args(str,&a1);    if(*var) {#if defined(SONY_RISC) || defined(CONVEX)      setenv(var,val,1);#else      char *tch = malloc(strlen(val)+strlen(var)+3); /* NOTE that this is a memory leak! */      sprintf(tch,"%s=%s",var,val);      putenv(tch);#endif      return(ok);    }  }  return(null);}/***********************************************************************/char *meth_get(o,str)Object *o;char *str;{  static char attr[20], file[MAXPATHLEN], foutput[MAXPATHLEN], func[MAXPATHLEN],  aname[MES_BUF_SIZE];  static int id = 0;  static Selector    a2 = {"output", "%s", foutput, NULL},    a1b = {"aname", "#strq", aname, &a2},    a1 = {"attributes", "%s", attr, &a1b},    a0b = {"function", "%s", func, &a1},    a0 = {"file", "%s", file, &a0b},    am1 = {"return_id", "%d", (char*)&id, &a0};  static char reply[200];  static char *oblock = NULL;  static int oblocksize = 0;  char scrat[MAXPATHLEN];  double start, seccm;  Frame frm;  Rect  rec;  FILE *fp = stdout, *fopen();  Signal *s;  View *v;    id = 0;  *aname = *foutput = *file = *func = 0;  strcpy(attr,"view");  CHECK_QUERY(str, &am1)    if(get_args(str,&am1)) {        if(*foutput && (*foutput != '-')) {      /* expand any environment variables */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -