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

📄 xmenus.c

📁 speech signal process tools
💻 C
📖 第 1 页 / 共 3 页
字号:
      page(v, s, (v->start_time) - width);  }}/*********************************************************************/voide_zoom_full_out(canvas, event, arg)     Canvas canvas;     Event *event;     caddr_t arg;{  SINGLE_HIT {    View *v;    static double time;        v = (View *)xv_get(canvas, WIN_CLIENT_DATA);        zoom_view(v,v->cursor_time, ref_size/(ET(v) - v->start_time));  }} /*********************************************************************/void e_position_view(canvas, event, arg)     Canvas canvas;     Event *event;     caddr_t arg;{  SINGLE_HIT {    View *v;      v = (View *)xv_get(canvas, WIN_CLIENT_DATA);    position_view(v, v->lmarker_time, v->rmarker_time);  }}/*********************************************************************/void e_zoom_in(canvas, event, arg)     Canvas canvas;     Event *event;     caddr_t arg;{  SINGLE_HIT {    View *v;        v = (View *)xv_get(canvas, WIN_CLIENT_DATA);        zoom_view(v,v->cursor_time,v->zoom_ratio);  }}/*********************************************************************/void e_blow_up(canvas, event, arg)     Canvas canvas;     Event *event;     caddr_t arg;{  View *v;  extern int zoom_ganged;  int holdit;  v = (View *)xv_get(canvas, WIN_CLIENT_DATA);  if(event_id(event) != LOC_DRAG) {    holdit = zoom_ganged;    zoom_ganged = 0;    if(event_is_down(event))      zoom_view(v,v->cursor_time,0.1);    else      zoom_view(v,v->cursor_time,10.0);    zoom_ganged = holdit;  } else    transform_xy(v, event_x(event), event_y(event));}/*********************************************************************/void e_blow_up_call_function(canvas, event, arg)     Canvas canvas;     Event *event;     caddr_t arg;{  View *v;  extern int zoom_ganged;  int holdit;  v = (View *)xv_get(canvas, WIN_CLIENT_DATA);      if(event_id(event) != LOC_DRAG) {    holdit = zoom_ganged;    zoom_ganged = 0;    if(event_is_down(event))      zoom_view(v,v->cursor_time,0.1);    else {      zoom_view(v,v->cursor_time,10.0);      if(blowup_op && blowup_op->proc) {	event_set_down(event);	blowup_op->proc(canvas, event, blowup_op->data);      }    }    zoom_ganged = holdit;  } else    transform_xy(v, event_x(event), event_y(event));}/*********************************************************************/void e_zoom_out(canvas, event, arg)     Canvas canvas;     Event *event;     caddr_t arg;{  SINGLE_HIT {    View *v;        v = (View *)xv_get(canvas, WIN_CLIENT_DATA);        zoom_view(v,v->cursor_time,1.0/v->zoom_ratio);  }}/*********************************************************************/void e_align_views(canvas, event, arg)     Canvas canvas;     Event *event;     caddr_t arg;{  View *v;  Object *obj;  v = (View *)xv_get(canvas, WIN_CLIENT_DATA);  if (!v || !v->sig || !(obj = (Object *)v->sig->obj))  return;    SINGLE_HIT do_align_views(obj,v);}/*********************************************************************/void e_save_segment(canvas, event, arg)     Canvas canvas;     Event *event;     caddr_t arg;{  SINGLE_HIT {    View *v, *v2;    extern int edit_ganged;    Signal *s, *s2;    double start,duration;    extern char outputname[];    char next[200];    int itsok = TRUE;    v2 = v = (View *)xv_get(canvas, WIN_CLIENT_DATA);    start = v->lmarker_time;    duration = v->rmarker_time - v->lmarker_time;    if(!save_segment(v->sig,start,duration)) itsok = FALSE;    if(itsok) {      get_output_file_names(outputname, next);      update_filename_display(next);    }    if(edit_ganged) {      s = v->sig;      s2 = ((Object*)(s->obj))->signals;      while(s2) {	if((s2 != s) && (s2->views) && (s2->views->sig == s2)) {	  if(!save_segment(s2,start,duration)) itsok = FALSE;	  if(itsok) {	    get_output_file_names(outputname, next);	    update_filename_display(next);	  }	}	s2 = s2->others;      }    }  }  return;}/*********************************************************************/void e_insert_file(canvas, event, arg)     Canvas canvas;     Event *event;     caddr_t arg;{  SINGLE_HIT {    View *v;    Signal *s, *s2;    double start,end;      v = (View *)xv_get(canvas, WIN_CLIENT_DATA);    paste(v->sig,v->cursor_time);  }  return;}/*********************************************************************/voide_kill(canvas, event, arg)    Canvas  canvas;    Event   *event;    caddr_t arg;{  SINGLE_HIT {    Frame   frame;    frame = (Frame) xv_get(canvas, XV_OWNER);    xv_set(frame,		FRAME_NO_CONFIRM, TRUE,		0);    dt_xv_destroy_safe(8,frame);  }}/*********************************************************************/void e_delete_segment(canvas, event, arg)     Canvas canvas;     Event *event;     caddr_t arg;{  SINGLE_HIT  {    View *v, *v2;    extern int edit_ganged;    Signal *s, *s2;    double start,end;      v2 = v = (View *)xv_get(canvas, WIN_CLIENT_DATA);    start = v->lmarker_time;    end = v->rmarker_time;    do_deletions(v,start,end);    if(edit_ganged) {      s = v->sig;      s2 = ((Object*)(s->obj))->signals;      while(s2) {	if((s2 != s) && (s2->views) && (s2->views->sig == s2))	  do_deletions(s2->views,start,end);	s2 = s2->others;      }    }  }  return;}/*********************************************************************/void e_wb_spectrogram(canvas, event, arg)     Canvas canvas;     Event *event;     caddr_t arg;{  View *v;  v = (View *)xv_get(canvas, WIN_CLIENT_DATA);    SINGLE_HIT spectrogram(v->sig,"wideband",v->lmarker_time,v->rmarker_time,NULL);}/*********************************************************************/void c_print_graphic(canvas, event, arg)     Canvas canvas;     Event *event;     caddr_t arg;{  SINGLE_HIT e_print_graphic(canvas, event, arg);}/*********************************************************************/void e_print_ensemble(canvas, event, arg)    Canvas  canvas;    Event   *event;    caddr_t arg;{  View *v;  Object *obj;  v = (View *) xv_get(canvas, WIN_CLIENT_DATA);  if (!v || !v->sig || !(obj = (Object *) v->sig->obj)) return;    SINGLE_HIT do_print_ensemble(obj);}/*********************************************************************/void e_nb_spectrogram(canvas, event, arg)     Canvas canvas;     Event *event;     caddr_t arg;{  View *v;  v = (View *)xv_get(canvas, WIN_CLIENT_DATA);    SINGLE_HIT spectrogram(v->sig,"narrowband",v->lmarker_time,v->rmarker_time,NULL);}/*********************************************************************/void e_up_down_move_marks(canvas, event, arg)     Canvas canvas;     Event *event;     caddr_t arg;{  View *v;  v = (View *)xv_get(canvas, WIN_CLIENT_DATA);  if(event_id(event) != LOC_DRAG) {    if(!event_shift_is_down(event))      move_markers(v, v->cursor_time, event_is_down(event));    else      move_ord_markers(v, event_x(event), event_y(event), event_is_down(event));  } else    transform_xy(v, event_x(event), event_y(event));  if (write_common && event_is_up(event))     markers_to_common(v);}/*********************************************************************/void e_move_closest_mark(canvas, event, arg)     Canvas canvas;     Event *event;     caddr_t arg;{  View *v = (View *)xv_get(canvas, WIN_CLIENT_DATA);  if(event_is_down(event)) {    if(event_shift_is_down(event)) {      int do_top = 1, y = event_y(event), yt, yb, x = event_x(event);      v->cursor_channel = v->tmarker_chan;      yt = v->yval_to_y(v, v->tmarker_yval);      v->cursor_channel = v->bmarker_chan;      yb = v->yval_to_y(v, v->bmarker_yval);      if(iabs(yt - y) > iabs(yb - y))	do_top = 0;      v->cursor_channel = v->xy_to_chan(v,x,y);      move_ord_markers(v, x, y, do_top);    } else {      double time = v->cursor_time;      if(fabs(v->lmarker_time - time) < fabs(v->rmarker_time - time))	move_markers(v, time, 1);      else	move_markers(v, time, 0);    }  }  if (write_common && event_is_up(event))     markers_to_common(v);}/*********************************************************************/voide_repeat_previous(canvas, event, arg)    Canvas	canvas;    Event	*event;    caddr_t	arg;{    Menuop *mo;    SINGLE_HIT {      mo = (Menuop*) xv_get(canvas, XV_KEY_DATA, menu_item_key);      if(mo && mo->proc)	mo->proc(canvas, event, mo->data);    }}/*********************************************************************/voide_exec_waves(canvas, event, arg)    Canvas	canvas;    Event	*event;    caddr_t	arg;{    extern char	*dispatch(),		*receiver_prefixed();    extern void exec_waves();    if (debug_level)	fprintf(stderr, "e_exec_waves: command \"%s\"\n", (char *) arg);    SINGLE_HIT exec_waves((char *) arg);}/**************************************************************/char **get_ops(mop)     Menuop *mop;{  Menuop *mo = mop;  int no = 0;  char **wopl = NULL, **sort_a_list();    while(mo) {    no++;    mo = mo->next;  }  if(no) {    wopl = (char**) malloc(sizeof(char**) * (no+1));    no = 0;    while(mop) {      if(mop->name && mop->name[0] && mop->proc)	wopl[no++] = mop->name;      mop = mop->next;    }    wopl[no] = NULL;  }  return(sort_a_list(wopl));}/**************************************************************/char **get_full_op_list(){  char **wops = NULL;  char **fop = NULL, **sort_a_list(), **uniq_list(), **fopp = NULL;  int n = 0, ns = 0;  Moplist  *menu_get_op_lists(), *mol = menu_get_op_lists();  while(mol) {    if((wops = get_ops(mol->first_op))) {      n = 0;      while(wops[n]) n++;            ns += n;            if(!fop)	fop = (char**)malloc(sizeof(char**) * (ns+1));      else	fop = (char**)realloc(fop, sizeof(char**) * (ns+1));      fopp = fop + ns - n;      for(n=0; wops && wops[n]; n++)	*fopp++ = wops[n];      free(wops);      *fopp = NULL;    }    mol = mol->next;  }  return(uniq_list(sort_a_list(fop)));}/**************************************************************/char *pack_up_list_items(ol)     char **ol;{  static char *the_list = NULL;  static int llen = 0;  if(ol) {    int i, slen, j;    for(i = 0, slen = 0; ol[i]; i++)      slen += strlen(ol[i]) + 3;    slen++;        if(slen > llen) {      if(the_list)	free(the_list);      the_list = NULL;      llen = 0;      if(!(the_list = malloc(slen))) {	show_notice(1 ," allocation failure in pack_up_list_items().");	return(NULL);      } else	if(debug_level)	  fprintf(stderr,"Allocated %d bytes in pack_up_list_items()\n",slen);           llen = slen;    }    for(j=0, *the_list = 0; j < i; j++)      if(strchr(ol[j], ' '))	/* embedded space? */	sprintf(the_list + strlen(the_list), "\"%s\" ", ol[j]);      else	sprintf(the_list + strlen(the_list), "%s ", ol[j]);    free(ol);    return(the_list);  }  return(NULL);}/**************************************************************/char *get_string_list(op_type)     char *op_type;{  static char *the_list = NULL;  static int llen = 0;  char **ol;  extern char **waves_get_commands(), **object_get_commands(),              **view_get_variable_names(), **get_new_files_list(),              **get_objects_list();  if(!strcmp(op_type,"view"))    ol = get_full_op_list();  if(!strcmp(op_type,"waves"))    ol = waves_get_commands();  if(!strcmp(op_type,"object"))    ol = object_get_commands();  if(!strcmp(op_type,"settables"))    ol = get_ops(view_get_settable_list());  if(!strcmp(op_type,"variables"))    ol = view_get_variable_names();  if(!strcmp(op_type,"new_files"))    ol = get_new_files_list();  if(!strcmp(op_type,"objects"))    ol = get_objects_list();  return(pack_up_list_items(ol));}

⌨️ 快捷键说明

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